Ubuntu:14.04
WordPress:3.8.2
我正在将一个旧网站迁移到使用带有 nginx 前端的 wordpress 的新设置。大部分操作都很好,包括创建自定义主题,但当我上传图片时,它们只会显示为无效链接。
上传过程本身似乎可以正常工作。我检查了文件系统上的位置,文件大小各不相同。如果我进入上传图片的“编辑图片”,我可以看到它,但 wordpress 管理员和主网站中的其他每个位置都显示一个断开的链接。
以下是文件通过 wp-admin 成功上传的证明:
root@[hostname]:/srv/www/wp-content/[hostname]/uploads/2014/11# ls -al
total 284
drwxrwxr-- 2 www-data www-data 4096 Nov 8 01:12 .
drwxrwxr-- 3 www-data www-data 4096 Nov 8 01:03 ..
-rw-rw-r-- 1 www-data www-data 10450 Nov 8 01:03 SJB_0227-150x150.jpg
-rw-rw-r-- 1 www-data www-data 20732 Nov 8 01:03 SJB_0227-199x300.jpg
-rw-rw-r-- 1 www-data www-data 89325 Nov 8 01:03 SJB_0227.jpg
-rw-rw-r-- 1 www-data www-data 10069 Nov 8 01:12 SJB_0229-150x150.jpg
-rw-rw-r-- 1 www-data www-data 22616 Nov 8 01:12 SJB_0229-300x199.jpg
-rw-rw-r-- 1 www-data www-data 118579 Nov 8 01:12 SJB_0229.jpg
我的 /etc/wordpress/config-[hostname].php 包括:
define('WP_CONTENT_DIR', '/srv/www/wp-content/[hostname]');
我的 nginx 配置的相关部分:
root /var/www/html/wordpress;
index index.php;
server_name [hostname];
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
我应该注意到,ubuntu 自动创建了一个完整的 /var/www/html/wordpress/wp-content 目录,尽管我不确定该目录有何用途,因为通过 wp-admin 上传的文件会出现在上面定义的 WP_CONTENT_DIR 中。
在我的主网站上,链接不起作用,并且形成如下:
http://[hostname]/wp-content/uploads/2014/11/SJB_0229.jpg
除了查看图片之外,网站上的其他功能都很好。我遗漏了什么?
更新:
我有一个解决方案。我还应该注意,上面的 /var/www/html/wordpress 路径实际上是我创建并忘记的 /usr/share/wordpress 的符号链接。然而,当将其更改为实际位置时,问题仍然存在。
答案1
看来 Ubuntu 安装没有遵守 /etc/wordpress/config-[hostname].php 中的 WP_CONTENT_DIR 设置。
我解决了这个问题(至少目前是这样):
cd /usr/share/wordpress/wp-content
mv uploads uploads-old
ln -s /my/correct/upload/directory uploads