提问者:小点点

将web服务器根目录更改为拥有775权限的所有者root:www-data是否安全?


我遇到了一个PHP fwrite函数不能写任何东西的问题,我想这是因为权限的问题。

一个apache进程由root运行,其他几个由www-data运行:

$ps-AUX grep Apache
root 21239 0.0 0.3 222104 26524?Ss 02:31 0:00/usr/sbin/apache2-k启动
www-data 21240 0.0 0.1 222316 13736?S 02:31 0:00/usr/sbin/apache2-k启动
。。。

web根目录由root拥有:root没有组所有者的写权限(755):

/var/www#ls-l
drwxr-xr-x 9 root root 4096 Feb 29 02:11 html

所以我将根目录的组所有者更改为www-data,并授予写权限:

/var/www#chown root:www-data html
/var/www#chmod 775 html
/var/www#ls-l
drwxrwxr-x 9 root www-data 4096 Feb 29 02:11 html

现在起作用了。我的问题是,这是否是一个正确的,最重要的是安全的设置。


共1个答案

匿名用户

null

因此,如果您需要更改Apache的默认用户和组change/add行:

User <your-username> # (Without angle-bracket)
Group <your-group> # (Without angle-bracket), this setting is usually the same as the user

您不能使用PHP编写,因为您使用的是Apache中的PHP模块。如果您要使用PHP-FPM,那么您必须更改PHP-FPM的www.conf文件中的默认用户和组。您并不是根据您给出的信息使用PHP-FPM,因此,当您更改Apache的用户和组时,它也应用于PHP,因为PHP是在Apache中运行的。如果您有很多访问者,并且您的网站需要更快,那么,通过执行以下操作启用PHP-FPM:

1)通过运行以下命令卸载mod_php(版本号):

sudo a2dismod php(version-number)

(可选步骤)2)您可能需要使用mpm_event并卸载mpm_prefork.您可能会看到一条奇怪的消息,说冲突之类的,但忽略它。您可以通过运行:

sudo a2dismod prefork && sudo a2enmod event

3)安装PHP-FPM:

sudo apt install php(version-number)-fpm && sudo service php(version-number)-fpm start

4)在Apache中启用proxy_fcgi模块:

sudo a2enmod proxy_fcgi

5)将以下内容添加到apache2.conf文件:

<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>

6)运行:

sudo service apache2 restart

你就完蛋了!