Apache无法访问我的主目录中的文件夹
我已将Apache的配置更改为指向我的主目录中的文件夹:
ServerAdmin webmaster@localhost DocumentRoot /home/dbugger/html Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128
我甚至给了我的/home/dbugger/html
权限777.但我仍然在http://localhost
:“403 Forbidden”仍然收到相同的错误消息
我错过了什么?
这对我有用
Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted Allow from all
重要的是改变
Order allow, deny
至
Require all granted
启用userdir
模块:
sudo a2enmod userdir
在用户目录中启用PHP执行:
sudo nano /etc/apache2/mods-available/php5.conf
评论这部分:
# # # php_admin_flag engine Off # #
按Ctrl + X保存
启用目录列表:
sudo nano /etc/apache2/apache2.conf
添加这个:
Options Indexes FollowSymLinks AllowOverride None Require all granted
按Ctrl + X保存
重启apache(这里也需要sudo):
sudo service apache2 restart
现在将您的php文件放在/ home / yourname / public_html目录中并转到
您的Web浏览器中的http:// localhost /〜yourname 。
Apache以用户www-data
运行。 如果它在您的家中没有执行权限,则apache将无法读取任何文件。
将您的家庭组更改为www-data
:
chgrp www-data /home/dbugger
并且只允许遍历您的主目录:
chmod g+x /home/dbugger
您还可以限制/home/dbugger/html
permisions:
chgrp www-data /home/dbugger/html chmod 750 /home/dbugger/html
如果要使用主目录来托管开发环境,则不需要更改权限,至少需要对某些应用程序具有写入权限。 你需要apache mod_userdir模块,你可以访问/ home / user_name / public_html / *这样的http://domain.local/~user_name/dir_name/ *使用虚拟主机,使用mod_userdir模块你需要创建一个sym像这样的链接:
$ sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/ $ sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/ $ sudo service apache2 restart