ric*_*lla 15 permissions apache2
我在将我的符号链接/var/www/到Webroot我的主文件夹中的新目录时遇到了一些问题。我认为这些源于我对 linux 权限缺乏了解。
据我所知,符号链接应该采用您想要链接的目录和您想要链接到的目录的形式,所以在我的情况下,我跑了:
sudo ln -s ~/Webroot/* /var/www/
这有点奏效,如果我继续运行ls,/var/www/我可以看到我Webroot目录中的所有文件。
每当我尝试运行文件Webroot夹中的文件时,都会收到 403 权限错误,这是因为 Webroot 目录中的文件是我创建的,而 apache 实例正在作为 www-data 运行吗?
如果是这种情况,这是否意味着我需要更改我创建的每个文件的权限才能运行它?
我之前运行了一个本地 apache 实例,我将默认 vhost 的目录根指向该Webroot文件夹,在这种情况下,我不需要更改任何权限。任何帮助,将不胜感激。
ane*_*hep 15
这不是一个好习惯,我同意 Weboide。但是有一个简单的方法可以实现这个目标。
1)。启用 apache userdir 模块。
sudo a2enmod userdir
Run Code Online (Sandbox Code Playgroud)
这将启用 apache userdir 模块。现在您可以将网站的内容~/Webroot/放入您的主目录中。
注意:默认文件夹是 ~/public_html
2)。对 进行必要的更改 /etc/apache2/mods-enabled/userdir.conf。
3)。重启apache
sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)
现在,您可以通过将浏览器导航到http://ip-address/~username来访问该站点。您还可以为此站点设置虚拟主机。
如果你想运行 php 文件,你需要再做一个步骤
编辑/etc/apache2/mods-enabled/php5.conf并注释以下几行:
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>
</IfModule>
Run Code Online (Sandbox Code Playgroud)
然后重启apache。
就是这样。你完成了。
参考:https://wiki.ubuntu.com/UserDirectoryPHP
希望这可以帮助。如果您遇到任何困难,请随时在此处发布。
这不是实现您想要的目标的好习惯。
如果您使用的是 PHP,您可能需要查看suexec、suphp或php-fpm和fastcgi。
您的问题是对的,这是一个权限问题,因为您的Webroot文件由与www-data.
这是一个不错的解决方案来解决您的问题。请注意,您可能需要使用 sudo 或以 root 身份登录。确保您完全理解将要执行的所有命令!!
更改您的Webroot文件夹和子文件夹以及文件以将组所有权设置为www-data并设置适当的权限:
# set the group ownership to be www-data
chgrp -R www-data /path/to/home/Webroot/
# make sure www-data has read & write permissions (change it to `g=r` if you want to only give read-only access)
chmod -vR g=rw /path/to/home/Webroot/
# make sure www-data can access the folders by adding the group execute bit field to directories
find /path/to/home/Webroot/ -type d -print0 | xargs -0p chmod -v g+x
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,如果您使用常规用户帐户添加文件/文件夹,您肯定需要再次运行这些命令。
| 归档时间: |
|
| 查看次数: |
29614 次 |
| 最近记录: |