全新安装 Ubuntu 后,我尝试更改localhost
Apache2 (2.4.7) 的目录。一如既往,这并不简单,而且现在还不起作用。
以下是我目前所做的:
$sudo apt-get install apache2
然后在 /etc/apache2/apache2.conf 中:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /home/louisro/Documents/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
在/etc/apache2/sites-enabled/000-default.conf中:
#DocumentRoot /var/www/html
DocumentRoot /home/louisro/Documents/www
在/etc/apache2/sites-available/000-default.conf中:
#DocumentRoot /var/www/html
DocumentRoot /home/louisro/Documents/www
然后
$ sudo chmod go+r /home/louisro/Documents/www
$ sudo chown -R louisro:www-data /home/louisro/Documents/www
当我尝试通过浏览器访问本地主机时,我得到:
Forbidden
You don't have permission to access / on this server.
Apache/2.4.7 (Ubuntu) Server at localhost Port 80
日志显示:
$ cat /var/log/apache2/error.log
[Fri Jan 22 09:13:38.792577 2016] [core:error] [pid 12934:tid 140432965080832] (13)Permission denied: [client ::1:56772] AH00035: access to / denied (filesystem path '/home/louisro/Documents') because search permissions are missing on a component of the path
答案1
以下是解决问题的方法:
$ sudo chmod 745 /home/louisro/Documents ;
sudo chmod 745 /home/louisro ;
sudo chmod 745 /home
答案2
尝试改为apache2.conf
:
<Directory />
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<IfModule mod_userdir.c>
UserDir enable louisro
UserDir public_html
</IfModule>
<Directory /home/*/Documents/www>
Options +Indexes +Includes +FollowSymLinks +ExecCGI
AllowOverride All
Require all granted
</Directory>
命令:
$ sudo chmod 755 /home/louisro/Documents/www
$ sudo chown -R louisro /home/louisro/Documents/www
.htaccess
如果存在则删除并创建index.txt
文件然后尝试访问http://localhost/index.txt
答案3
你缺少一个关键步骤。在修改默认的 DocumentRoot 后000-default.conf
。要使它生效,你应该启用000-default.conf
并重新启动 apache2。
sudo a2ensite 000-default.conf
sudo service apache2 restart
答案4
我解决的是:
首先,我授予了目录 root 的权限。在我的例子中,这个目录是:
/home/paulo/Documentos/服务器
我运行以下命令:
$ sudo chmod 777 -R /home/paulo/Documentos/SERVER
之后,我使用以下命令编辑了文件 apache2.conf:
$ sudo nano /etc/apache2/apache2.conf
在 apache.conf 中我更改了以下几行:
到
然后我编辑了 /etc/apache2/sites-available/000-default.conf 和 /etc/apache2/sites-enabled/000-default.conf 中的 000-default.conf 文件。我更改了以下几行:
DocumentRoot /var/www/html to DocumentRoot /home/paulo/Documentos/SERVER
最后,我使用以下命令重新启动了 apache:
sudo systemctl restart apache2
我真的希望这能在你的机器上运行;