当我尝试在 wordpress 中上传任何内容时,我似乎无法弄清楚为什么会得到以下信息……对于媒体上传和 wordpress 导入 xml:
“抱歉,出现错误。文件为空。请上传更多内容。此错误也可能是由 php.ini 中禁用上传或 post_max_size >定义为小于 php.ini 中的 upload_max_filesize 引起的。 "
似乎很少有关于如何通过 nginx/php-fpm 在线解决此问题...其中大部分是关于 php.ini max configs 或 chmod,其中...在我的设置中post_max_size
足够大以及(以及超时)......并且 chmod/chown 似乎对于使用单独的 php 池是正确的。也许有人可以对此做出正面或反面?upload_max_filesize
/etc/php5/fpm/php.ini
这是我的设置:
- Cloudflare(已关闭)到浮动 IP
- Digitalocean 浮动 IP 到 droplet
- Droplet 是带有 nginx 的 Ubuntu 14.04,使用 php-fpm 并为每个 wordpress ms 安装创建池(x4 atm)
- SSL with Let's encrypt 用于每个 wpms 安装
- Chmod 755 用于站点根目录中的所有 wpms 目录
- chmod 644 用于每个站点根目录中的所有 wpms 文件
- chmod 660 用于 wp-config.php
- chown 每个 php5-fpm 池用户在他们自己的站点根目录中的所有文件/目录,例如:
chown -R example1:example1 /home/example1/*
- Wordpress 是其 nginx conf 根目录下的一个目录。例如
/home/example1/app/wordpress_files_here
- php.ini 已使用定义的目录(/home/tmp/)启用上传
用户不在 www-data 组或 sudo 组中,我读到这样做是一种安全风险,但即便如此,我还是暂时尝试将它们添加到 www-data 组以查看 wordpress 上传是否可以工作......它没有。我也尝试过 chown example1:www-data 所有权,但没有用。我也试过 chmod 777 上传文件夹,没有用。
错误日志有以下内容:在 wpms-error.log 中(这对我来说也没有意义)
2016/05/20 01:12:00 [crit] 1584#0: *1251 open() "/home/example1/example1.com-access.log" failed (13: Permission denied) while logging request, client: [my IP address], server: example1.com, request: "POST /wp-admin/admin-ajax.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm-example1.sock", host: "example1.com", referrer: "https://example1.com/wp-admin/admin.php?import=wordpress&step=1&_wpnonce=dad4d82487"
在这些站点的 nginx conf 文件中,我有:
access_log /home/example1/$host-access.log;
在 nginx.conf 中启用了访问日志(即使不推荐),但每个站点的访问日志并未写入其站点根目录。
所以...在尝试了我在网上阅读的所有内容之后...我什至还没有找出根本问题是什么...因为仅文件权限似乎不是吗?.. 是吗???
以下(将用户名更改为 example1 等后)是ps aux | grep php
结果:
root 993 0.0 0.2 266688 11396 ? Ss May18 0:10 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
example1 1003 0.0 1.1 302568 45856 ? S May18 0:32 php-fpm: pool example1
example1 1004 0.0 1.1 304620 47808 ? S May18 0:31 php-fpm: pool example1
example2 1005 0.0 1.1 304360 47648 ? S May18 0:30 php-fpm: pool example2
example2 1007 0.0 1.1 302308 45956 ? S May18 0:30 php-fpm: pool example2
example3 1008 0.0 0.1 268640 7704 ? S May18 0:00 php-fpm: pool example3
example3 1009 0.0 0.1 268640 7744 ? S May18 0:00 php-fpm: pool example3
www-data 1010 0.0 0.1 266680 7560 ? S May18 0:00 php-fpm: pool www
www-data 1011 0.0 0.1 266680 7564 ? S May18 0:00 php-fpm: pool www
example4 1013 0.0 0.9 296016 39704 ? S May18 1:24 php-fpm: pool example4
example4 1014 0.0 1.3 310952 55024 ? S May18 1:23 php-fpm: pool example4
example5 1015 0.0 1.0 297352 40940 ? S May18 0:32 php-fpm: pool example5
example5 1016 0.0 1.1 305104 48232 ? R May18 0:32 php-fpm: pool example5
example4 1105 0.0 0.9 296016 39596 ? S May18 1:20 php-fpm: pool example4
example1 1313 0.0 0.9 296284 39884 ? S May18 0:31 php-fpm: pool example1
example2 1317 0.0 1.1 304364 47628 ? S May18 0:29 php-fpm: pool example2
example5 1332 0.0 0.9 296880 39056 ? S May18 0:29 php-fpm: pool example5
example3 3727 0.0 0.0 11744 932 pts/1 S+ 18:42 0:00 grep --color=auto php
上面的 example3 不是 wpms 站点,它只是一个空的 root atm,并且该用户也在 sudo 组中,并且拥有自己的 ssh 登录名。我不知道这是否相关。
这对我来说听起来像是一个权限问题,可能是围绕组。我将在本教程中详细介绍,但要点如下
首先是我用来重置权限的脚本
以下是我教程中的要点——其中的信息来自 wordpress.org 网站,大部分情况下,我的教程中有参考资料