一个专注于IT互联网运维的技术博客

LNMP之安装WordPress之后需要做的几件事

2018.12.23

安装WordPress主题

本站使用的是github上的一款开源主题Kratos,作者Vtrois。只需要将主题git clone到WordPress的主题目录即可完成安装。

[admin@ityoudao ~]$ cd /u01/data/wordpress/wp-content/themes/
[admin@ityoudao themes]$ git clone -b master https://github.com/Vtrois/Kratos.git

安装WordPress插件

本站安装了如下插件:

  • Google XML Sitemaps:使用非常广泛的Sitemap生成插件,方便搜索引擎抓取博客的文章。
  • Image Watermark:图片水印插件,可以在网站的图片上面添加图片水印。
  • Table of Contents Plus:文章目录生成插件,而且还可以自动产生一个包括所有页面和目录的网站地图。
  • W3 Total Cache:大名鼎鼎的WordPress缓存插件,而且还支持Memcached和Redis。
  • ThirstyAffiliates:网站链接管理插件。
  • WP Mail SMTP by WPForms:本站没有安装,Kratos主题自带了配置邮件smtp功能,如果主题不支持配置smtp,可以安装该插件。
  • wpDiscuz:Wordpress评论与讨论插件。允许访客评论、讨论、投票与分享。本站目前没有开启该插件。

开启PHP的Opcache

OPcache通过将PHP脚本预编译的字节码存储到共享内存中来提升PHP的性能,存储预编译字节码的好处就是省去了每次加载和解析 PHP 脚本的开销。

PHP5.5.0及后续版本中已经绑定了OPcache扩展。OPcache只能编译为共享扩展。如果你使用--disable-all参数禁用了默认扩展的构建,那么必须使用--enable-opcache选项来开启OPcache。

编译之后,就可以使用zend_extension指令来将OPcache扩展加载到PHP中。在非Windows平台使用zend_extension=/full/path/to/opcache.so,Windows平台使用zend_extension=C:\path\to\php_opcache.dll。

参考文档:http://php.net/manual/zh/book.opcache.php

开启opcache扩展的具体步骤如下:

// 修改php.ini文件
[admin@ityoudao ~]$ vi /u01/app/php/lib/php.ini 
[opcache]
zend_extension = "/u01/app/php/lib/php/extensions/no-debug-non-zts-20180731/opcache.so"
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
# opcache.fast_shutdown=1 # 该选项从PHP7.2.0开始被移除

// 重启php-fpm服务
[admin@ityoudao ~]$ sudo systemctl restart php-fpm.service 

重启php-fpm.service之后就可以通过phpinfo()看到Zend OPcache,同时php -m也可以看到:

 phpinfo()页面 中的 Zend OPcache

[admin@ityoudao ~]$ /u01/app/php/bin/php -m
[PHP Modules]
...
[Zend Modules]
Zend OPcache

W3 Total Cache插件说明

网上关于W3 Total Cache插件的使用说明很多,这里不再赘述,只说明一下使用W3 Total Cache插件时需要对Nginx做的一些修改。

配置完W3 Total Cache插件后,如果提示“FTP credentials don't allow to write to file /u01/app/nginx/conf/nginx.conf”,说明PHP的运行用户nginx没有nginx.conf文件的写权限:

[admin@ityoudao ~]$ ll /u01/app/nginx/conf/nginx.conf
-rw-r--r-- 1 admin admin 2853 12月 22 13:04 /u01/app/nginx/conf/nginx.conf

可以简单地直接授权nginx用户nginx.conf文件的读写权限,但是W3 Total Cache插件傻瓜地直接将一大堆location和rewrite语句添加到nginx.conf文件结尾,导致Nginx重启报错。

这里的解决方法是在server{}里面尾部添加“include w3_total_cache.conf;”指令,并让W3 Total Cache插件将rewrite语句添加到该文件中:

[admin@ityoudao ~]$ vi /u01/app/nginx/conf/nginx.conf
...
http {
	...
	server {
		...
        include w3_total_cache.conf;
    }
}
[admin@ityoudao ~]$ touch /u01/app/nginx/conf/w3_total_cache.conf
[admin@ityoudao ~]$ sudo chown nginx:nginx /u01/app/nginx/conf/w3_total_cache.conf

然后配置W3 Total Cache,General=》Miscellaneous中“Nginx server configuration file path”设置为“/u01/app/nginx/conf/w3_total_cache.conf”。最后重启Nginx服务器。

修改评论文件名拒绝机器人垃圾评论

绝大部分的垃圾评论都是通过机器人post网站根目录下的wp-comments-post.php文件来提交的,如果我们修改wp-comments-post.php文件名,那么就能简单的拒绝机器人的垃圾评论了。具体操作步骤如下:

//修改评论文件名
[admin@ityoudao wordpress]$ ll wp-comments-post.php 
-rw-rw-r-- 1 nginx admin 1889 5月   3 2018 wp-comments-post.php
[admin@ityoudao wordpress]$ mv wp-comments-post.php wp-pinglun.php

//find查找调用评论文件的php代码
[admin@ityoudao wordpress]$ grep -n "wp-comments-post.php" $(find . -name "*.php")
./wp-includes/comment.php:2946: * Handles the submission of a comment, usually posted to wp-comments-post.php via a comment form.
./wp-includes/comment-template.php:2154: *     @type string $action               The comment form element action attribute. Default '/wp-comments-post.php'.
./wp-includes/comment-template.php:2258:		'action'               => site_url( '/wp-comments-post.php' ),

//其中前面以“*”开头的两行是评论,无需理会,修改第三行输出的./wp-includes/comment-template.php文件的第2258行即可
[admin@ityoudao wordpress]$ sed -i "2258s/wp-comments-post.php/wp-pinglun.php/g" wp-includes/comment-template.php
  • 注意,修改完成后如果评论时提示“No input file specified.”,检查是否正确修改了php文件中的评论文件名。
发表评论