将 /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 站点崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Apache环境下配置多个站点的SSL证书

配置301转发服务器

Gin 路由器:路径段与现有通配符冲突

将 GMail 地址分配给另一个域

通过提供邮政编码获得位置名称

关于有偿提供拼图响应式后台的通知---------pintuer ui的官方通知(www.pintuer.com)