使用 Apache 在 Ubuntu 20.04 上更正 WordPress 目录和文件的权限

使用 Apache 在 Ubuntu 20.04 上更正 WordPress 目录和文件的权限

我客户的网站托管在 Digital Ocean 上,运行的是 Ubuntu 20.04 和 Apache。我安装了 WordPress 并运行了一些问题。由于权限问题,无法上传或更新插件和主题。我一直在关注 WordPress 官方的安全强化文章,但我相信我所应用的一些更改导致了权限问题。

我已将当前所有权限设置详述如下,以供参考。此帐户的用户是卡尔尼希尔

根 WordPress 目录 (callkneehill.ca) 和在 /var/www 中找到的文件:

  • 755
  • 644
  • 业主和团体称为kneehill

wp-admin 和 wp-include 目录和文件(递归应用):

  • 755
  • 644
  • 业主和团体称为kneehill

wp-content 目录和文件(递归应用):

  • 755
  • 644
  • 主人是 callkneehill
  • 群组为 www-data

插件和主题目录和文件(递归应用):

  • 755
  • 644
  • 所有者和团体是 callkneehill

有了这些权限,WordPress 会通知我需要使用 FTP/SFTP 来上传/更新插件和主题。在阅读强化文章之前,www-数据是 WordPress 根目录内权限的唯一所有者和组。

如果我使用www-数据在插件和主题目录上,尝试上传或更新时会显示相同的 FTP/SFTP 通知。

我该如何配置用户和组权限来增强安全性并具备在 WordPress 中上传/更新的能力?

使用每个用户池配置设置进行更新

chdir 应该是 /var/www/callkneehill.ca 吗?

/etc/php/7.4/fpm/pool.d

[callkneehill]
user = callkneehill
group = callkneehill

listen = /run/php/callkneehill.sock
chdir = /var/www

listen.owner = www-data
listen.group = www-data

/etc/apache2/站点可用

<FilesMatch \.php$>
   # SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
   SetHandler "proxy:unix:/run/php/callkneehill.sock|fcgi://localhost"
</FilesMatch>

答案1

核心问题可能不是文件权限,而是您以 的身份运行 PHP,而不www-data是以 用户 的身份运行 PHP-FPM 池callkneehill。当您以拥有脚本的同一用户身份运行脚本时,您不需要这种黑客攻击。在多用户系统上,这也很重要,因为它可以防止用户修改其他用户的网站。

关于在 Ubuntu 20.04 上安装 PHP-FPM 的教程有很多,这里就不重复了。因此,我仅在 中给出了一个按用户池的示例/etc/php/7.4/fpm/pool.d/callkneehill.conf

[callkneehill]
user = callkneehill
group = callkneehill

listen = /run/php/callkneehill.sock
chdir = /var/www

listen.owner = www-data
listen.group = www-data

VirtualHost通过添加使用 UNIX 套接字的处理程序,可以使用 Apache 配置中的池:

<FilesMatch \.php$> 
    SetHandler "proxy:unix:/run/php/callkneehill.sock|fcgi://localhost"
</FilesMatch>

相关内容