LNMP环境下使用WordPress的一些问题

姚洪楼 发表于 学习备忘录 分类,
0
 

帮老婆安装WordPress,环境是 Linux+Nginx+MySql+PHP,安装相对还是很顺利的,但是使用过程发现两个问题:

1、伪静态无法使用

具体表现:新增站点的时候,选择了伪静态功能,并且指定为wp2模板(wp2是在二级目录下的WordPress);但修改后的伪静态地址无法使用,会出现404错误。

解决办法:wp2模板内容需要修改为WordPress实际所在的具体目录,譬如我安装的是 www.tanglan.com.cn/blog 那么我就要修改 /usr/local/nginx/conf/wp2.conf

location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /blog/index.php;
}
}

如果有多个博客,譬如第一个博客的目录是blog,第二个博客的目录是blog2,那么就这样修改:

location /blog/ {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /blog/index.php;
}
}
location /blog2/ {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /blog2/index.php;
}
}

修改完毕之后执行 /usr/local/nginx/sbin/nginx -s  reload 重启一下Nginx的web环境,问题就解决了。

 

2、WordPress后台菜单无法打开

具体表现:进入WordPress后台管理页面,然后点击其中的任意菜单都提示“404 Not Found”找不到网页的错误。

解决方法:这是因为Nginx只有在后面有 / 的情况下才会认为是一个目录,所以点击的时候丢失了wp-admin这层菜单,所以使直接用 http://www.tanglan.com.cn/blog/wp-admin 这个链接会出现404错误。可正常使用的链接是:

http://www.tanglan.com.cn/blog/wp-admin/

http://www.tanglan.com.cn/blog/wp-login.php

当然,你也可以在wp-admin/admin-header.php添加如下代码,使不加/的wp-admin也可以正常使用

<base href="blog/wp-admin/" />

这段代码的用途是强制规定页面中所有相对链接的基准URL,这样就不会受到Nginx必须要看到 / 才认为是目录的影响,不过这个方法不是很推荐,主要是考虑到WordPress需要频繁升级的问题,所以最便捷的还是上面两种方法。

 

3、WordPress后台主题只有一个

具体表现:进入后台进行主题管理,只能看到一个主题,即便你在theme目录添加了其他主题,这里全都无法显示出来。所以,只能使用安装时默认的主题,无法修改为其他的主题。这个显然是不行的!

解决方法:这是因为WordPress从3.4版本开始需要scandir函数支持,而LNMP的默认配置是禁止scandir的(可以在php探针看到所有被禁用的函数),所以我们只要修改 /usr/local/php/etc/php.ini 删除其中的scandir参数即可。

修改完毕之后执行 /etc/init.d/php-fpm restart 重启php进程,问题就解决了。

 

4、WordPress无法进行在线升级

具体表现一:提示 Couldn’t resolve host ‘downloads.wordpress.org’ 错误

解决办法:这个一般是服务器的DNS服务器解析错误造成的,可以尝试修改 /etc/resolv.conf 里面的 nameserver 后面的服务器地址为 8.8.8.8 (这个是Google免费提供的DNS,当然你也可以设置成其它的,但是请注意不要直接使用自己电脑正在使用的DNS服务器,一般来说大陆用户电脑使用的DNS服务器大部分都是运营商私用的,比如你是电信ADSL用户,那么电信提供给你的DNS服务器地址设置在联通网络的电脑上面就可能无法解析了…. )

具体表现二:提示 wordpress 无法移除旧插件 错误

解决办法:这个应该是权限问题,假设用来升级的FTP账号隶属www组,那么就直接进入网站目录,执行如下命令:

chown -R www *

这段命令的意思是:将本目录所有文件的拥有者修改为www(-R是表示递归执行的意思)

如果修改后还是不行的话,那就检查插件目录的具体权限,修改为0777或0755;如果还不行,那我也不知道为啥了….


【版权声明】
 本文短地址:mpYes.com/871 本文版权属于:mpYes.com
 含有照片的文章谢绝转载,包括但不限于本人及本人亲友的照片
 涉及中国大陆现状的描述、本人的政治评论等相关文章谢绝转载
 其余文章允许非商用性质的转载,但请保留本文链接及本人署名

发表我的评论