将 /var/www/site1 提供给 www-data:www-data 会使服务器上的所有 WP 站点崩溃
Posted
技术标签:
【中文标题】将 /var/www/site1 提供给 www-data:www-data 会使服务器上的所有 WP 站点崩溃【英文标题】:giving /var/www/site1 to www-data:www-data crashes all WP sites on server 【发布时间】:2017-07-25 14:52:14 【问题描述】:-- 请参阅下面的 Tl;dr 以获得简短版本--
在我的 ubuntu-16.04 droplet apache2 和 php7 上都使用用户 www-data。在某个时候,wordpress-4.7.2 的所有三个安装似乎无缘无故地开始要求 FTP 凭据,表明它们没有足够的权限。每个 wp 实例都有自己的 mysql 数据库。
我试图为 /site1 解决这个问题
sudo chown www-data:www-data /var/www/site1/* -R
这不应该改变任何东西,因为这是已经设置权限的方式。无论出于何种原因,这都会导致浏览器返回一个
HTTP ERROR 500
对于 /var/www/site1、/var/www/site2 和 /var/www/site3 中的站点 - 不再有效。
我发现摆脱这种情况的唯一方法是恢复液滴。但是每次我尝试获得正确的权限时,我最终都会再次关闭所有网站。
这些是当前的权限设置:
drwxr-xr-x 14 root root 4096 Feb 3 XX:14 /var/
drwxrwxr-x 8 www-data www-data 4096 Mar 5 XX:27 /var/www/
drwxr-sr-x 3 www-data www-data 4096 Mar 5 XX:13 /var/www/site1/
drwxrwxr-x 3 www-data www-data 4096 Feb 25 XX:51 /var/www/site2/
drwxrwxr-x 3 www-data www-data 4096 Feb 28 XX:06 /var/www/site3/
sudo 用户是 www-data 的成员:
user1@droplet:~$ members www-data
www-data user2 user1
/site1 上新安装的主题导致了数十个类似这样的 PHP 致命错误:
[Sun Mar 05 19:24:04.003189 2017] [:error] [pid 5632] [client 31.10.138.238:50870]
PHP Fatal error: Uncaught Error: Call to undefined function mysql_escape_string()
in /var/www/site1/html/wp-content/themes/gloria/functions.php:60\nStack trace:\n#0
/var/www/site1/html/wp-settings.php(425): include()\n#1 /var/www/bw/html/wp-config.php(89):
require_once('/var/www/site1/htm...')\n#2 /var/www/bw/html/wp-load.php(37):
require_once('/var/www/site1/htm...')\n#3 /var/www/bw/html/wp-admin/admin.php(31):
require_once('/var/www/site1/htm...')\n#4 /var/www/bw/html/wp-admin/themes.php(10):
require_once('/var/www/site1/htm...')\n#5 main\n thrown in
/var/www/site1/html/wp-content/themes/gloria/functions.php on line 60
删除主题后,/site1 重新上线。我不知道为什么。前两次我最终恢复了液滴,因为
HTTP ERROR 500
没有涉及这个主题。即使 /site1 已备份,/site2 和 /site3 仍然卡在
HTTP ERROR 500
自从 /site1 中的主题被删除后,Apache 错误日志中没有任何可疑条目:
[Sun Mar 05 19:56:35.456584 2017] [mpm_prefork:notice] [pid 1671] AH00171: Graceful restart requested, doing restart
[Sun Mar 05 19:56:35.662742 2017] [mpm_prefork:notice] [pid 1671] AH00163: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
[Sun Mar 05 19:56:35.662765 2017] [core:notice] [pid 1671] AH00094: Command line: '/usr/sbin/apache2'
有什么想法吗?
编辑: /var/www/site2/activecollab/ 中的 ActiveCollab 实例在整个问题期间从未停止工作。 ActiveCollab 对其自己的文件、文件夹和数据库所做的所有连接和权限检查都是肯定的。
Tl;dr: WP1 请求 FTP,我说
sudo chown www-data:www-data /var/www/site1/* -R
WP1、WP2 和 WP3 告诉浏览器
HTTP ERROR 500
而 WP2 的子文件夹中的 ActiveCollab 没有给出任何结果并继续运行。
【问题讨论】:
【参考方案1】:试试这些
sudo chmod -R 774 /var/www/yourwordpressfolder
然后
sudo chown -R www-data:www-data /var/www/yourwordpress
终于
sudo chmod -R 777 /var/www/yourwordpressfolder
【讨论】:
试过了,没用。可能与权限无关。昨晚我恢复了液滴,所有站点都恢复了。今天早上没有我改变任何东西,site2 和 site3 再次离线,而 site1 继续运行。以上是关于将 /var/www/site1 提供给 www-data:www-data 会使服务器上的所有 WP 站点崩溃的主要内容,如果未能解决你的问题,请参考以下文章