购买腾讯CVM之后,开始搭建自己的第一个Wordpress博客,大部分按照腾讯官方教程进行安装,但是官方教程里的LNMP环境的版本为CentOS 6.8、Nignx 1.10.2、Mysql 5.1.73、PHP 5.3.3,版本比较老,运行高版本的WP和安装插件时可能会被不支持。所以自己汇总了一下比较新的版本的安装方法。
环境:
服务器操作系统:CentOS | 7.5 64位
Web服务器: Nignx | 1:1.14.2-1.el7_4.ngx
数据库:Mysql | 5.7.24-1.el7
后台语言:PHP | 5.4.16-46.el7、7.0.32
前端框架:Wordpress | 5.0.2
一、搭建LNMP环境
因此不能直接使用教程里的:
yum install nginx php php-fpm php-mysql mysql-server -y
没有修改yum源,直接安装后为旧版本。首先修改yum源,这里提供两个办法:
法一:(摘自逐梦QQQ)
1.安装nginx
vim /etc/yum.repos.d/nginx.repo
##################写入如下源内容#######################
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
##################################################
# 查看yum源中的nginx版本:
yum list nginx
# 安装nginx: yum -y install nginx
# 查看安装的版本: nginx -v
# 打开80端口(适用于Centos7):
#查看防火墙状态,running为运行:
firewall-cmd --state
#重启firewall防火墙:
firewall-cmd --reload
#查看已经开放的端口:
firewall-cmd --list-ports
#永久开启80端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
#停止firewall防火墙:
systemctl stop firewalld.service
#禁止firewall防火墙开机启动:
systemctl disable firewalld.service
# 启动nginx:
service nginx start
# 重启:
service nginx restart
# 停止:
service nginx stop
# 设置开机启动
chkconfig nginx on
# 剩下安装PHP、Mysql步骤使用的是法二
法二:(摘自:奋进程序猿) 发现一个不错的技术博客:WEBTATIC.COM
# 1.修改yum源:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
# 2.安装nginx
yum install nginx
# 3.安装mysql5.7
yum -y install mysql-community-server
# 4.安装php yum install php70w-devel php70w.x86_64 php70w-pecl-redis php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-pdo.x86_64 php70w-mysqlnd php70w-fpm php70w-opcache
安装完必要的软件后,回到腾讯官方教程进行配置:
# 将各软件设置为开机启动:
chkconfig nginx on
chkconfig mysqld on
chkconfig php-fpm on
配置 Nginx:
取消对 IPv6 地址的监听同时配置 Nginx,实现与 PHP 的联动:
# 使用 Vim 命令打开default.conf文件
vim /etc/nginx/conf.d/default.conf
按字母“I”键或 “Insert” 键切换至编辑模式,将已有内容全部清除,复制并粘贴以下内容到 default.conf文件。
server {
listen 80;
root /usr/share/nginx/html;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
index index.php index.html index.htm;
}
#error_page 404 /404.html;
#redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
启动 Nginx:
service nginx start
测试 Nginx 服务是否正常运行,在浏览器中,访问 CentOS 云服务器实例公网 IP,查看 Nginx 服务是否正常运行。显示如下,则说明 Nginx 安装配置成功:
配置 MySQL:
# 下载yum源
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
# 安装mysql
yum -y install mysql-community-server
# 启动mysql
service mysqld start
# 查看自动生成的密码
grep "password" /var/log/mysqld.log #
修改初始密码,先输入随机密码,再设置新密码(新密码必须含有 大小写字母数字和字符)
mysql_secure_installation
# 登录
mysql -uroot -p
#设置Mysql开机自启
chkconfig mysqld on
配置 PHP:
# 启动 PHP-FPM 服务。
service php-fpm start
配置 PHP Session 的存储路径,打开/etc/php.ini文件。
vim /etc/php.ini
进入后直接输入以下内容,回车定位到 “session.save_path” 的位置:
/session.save_path
按字母“I”键或 “Insert” 键切换至编辑模式,将其改为 :
session.save_path = "/var/lib/php/session"
这时会找到三个地方符合要求,三个更改其中任何一个即可,需要保证生效的那一条,其他的应该前面有#将其注释掉了:
更改/var/lib/php/session目录下所有文件的属组都改成 nginx 和 nginx:
chown -R nginx:nginx /var/lib/php/session
验证环境配置:
在 Web 目录下创建index.php文件:
vim /usr/share/nginx/html/index.php
编辑模式,写入如下内容:
<?php
echo "<title>Test Page</title>";
echo "Hello World!";
?>
保存退出。
在浏览器中,访问该index.php文件,查看环境配置是否成功:
http://云服务器实例的公网 IP/index.php
页面显示 “Hello World!”,则说明 LNMP 环境配置成功。
二、安装配置WordPress
下载 WordPress:
从 WordPress 官方网站 下载 WordPress 中文版本并安装:
# 先删除网站根目录下的index.html文件
rm /usr/share/nginx/html/index.html
依次下载 WordPress 并解压到当前目录。
# 这里的地址直接从官网获得最新版本的下载地址
wget https://cn.wordpress.org/wordpress-5.0.2-zh_CN.tar.gz
# 解压到当前目录,注意这里的文件名
tar zxvf wordpress-5.0.2-zh_CN.tar.gz
配置数据库:
登录 MySQL 服务器,使用 root 用户登录到 MySQL 服务器:
# 这里的密码是上面更改初始密码后面的密码
mysql -uroot -p
为 WordPress 创建数据库并设置用户名和密码(部分内容参考:徐继收):
# 为 WordPress 创建 MySQL 数据库 “wordpress”
CREATE DATABASE wordpress;
# 为已创建好的 MySQL 数据库创建一个新用户 “user@localhost”
CREATE USER 'user'@'localhost' IDENTIFIED BY 'wordpresspassword';
# 为创建的用户授权,命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
# PS: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
GRANT ALL ON *.* TO 'user@localhost';
# 或者:为创建的用户开通数据库 “wordpress” 的完全访问权限。、
GRANT ALL PRIVILEGES ON wordpress.* TO user@localhost IDENTIFIED BY 'wordpresspassword';
# 使用以下命令使所有配置生效
flush privileges;
# 配置完成,退出 MySQL
exit
写入数据库信息:
完成数据库配置后,还需要将数据库信息写入 WordPress 的配置文件。WordPress 安装文件夹包含名为 wp-config-sample.php 的示例配置文件。本步骤将复制此文件并进行编辑以适应具体配置。
1.创建新配置文件
# 将wp-config-sample.php文件复制到名为wp-config.php的文件,使用以下命令创建新的配置文件,并将原先的示例配置文件保留作为备份。
cd wordpress/
cp wp-config-sample.php wp-config.php
2.打开并编辑新创建的配置文件
vim wp-config.php
找到文件中 MySQL 的部分,按字母“I”键或 “Insert” 键切换至编辑模式,将已配置好的数据库相关信息写入:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'user');
/** MySQL database password */
define('DB_PASSWORD', 'wordpresspassword');
/** MySQL hostname */
define('DB_HOST', 'localhost');
修改完成后,保存退出。
安装 WordPress:
已解压了安装文件夹、创建了 MySQL 数据库与用户并自定义了 WordPress 配置文件,此步骤开始完成 WordPress 的安装。
#移动安装文件至 Web 服务器文档根目录,以便可以运行安装脚本完成安装。
mv * /usr/share/nginx/html/
#记住这个路径,以后修改文件会用得到。
在 Web 浏览器地址栏输入 WordPress 站点的 IP 地址,可以看到 WordPress 安装屏幕,就可以开始配置 WordPress。
到这里LNMP+WP的环境就基本搭建好了,剩下的都是图形化的设置,切记首先应该设置WP的固定域名,避免后期出现麻烦。
三、解决WP权限不足的问题
WordPress安装完成后发现在更新版本和组件时提示权限不足,这些问题基本都是一个原因,wordpress目录不属于当前的用户和组,即web访问的用户没有权限操作wp的一切需要写权限的操作,其实就是linux下权限不足,无法写入造成的。解决这个问题的思路是进入apache的配置文件,找到apache所使用的用户和用户组,然后将wordpress文件的用户和用户组修改成与apache的配置一致就可解决此问题。
下面来解决这个问题,使用MobaXterm登录CVM,找到httpd.conf配置文件:
# 可以使用locate httpd.conf查找
vim /etc/httpd/conf/httpd.conf
在httpd.conf中找到 User和Group,查看后面的值:
均为:apache,使用:chown -R apache:apache /var/www/html/*(/var/www/html为wordpress安装目录)修改wp目录用户组为apache:
# 记住上面wp的安装路径为 /usr/share/nginx/html/
chown -R apache:apache /usr/share/nginx/html/*
这样wp目录就属于当前目录组了,更新wp和安装插件就不会显示权限不足了。
四、固定WP链接
首先在WP的后台修改WP和站点地址为申请的域名,这样在别的页面就不会出现IP地址了:
然后在固定链接中更改常用设置的值为自定义结构,一般使用%post_id%,记住要在后面加上.html:
可能这时在访问次级页面时会提示404,这个需要修改Nginx的伪静态规则,打开Nginx的配置文件:
vim /etc/nginx/conf.d/default.conf
默认内容的一部分为:
这里在Nginx的配置文件中站点目录字段后插入这段代码:
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 (.*) /index.php;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
插入完成后就像这样:
这样次级页面就可以正常访问了!
五、修改WP的上传大小限制
默认上传大小的限制影响大图和主题的上传,需要我们手动修改Nginx.conf:
vim /etc/nginx/nginx.conf
修改为client_max_body_size 1000m:
重启Nginx,问题解决。
六、其他问题
1.WordPress 提示"在裁剪您的图像时发生了错误"解决方案
原因:缺少 PHP GD 库,解决方案如下:
yum install php-gd
安装完后重启Nginx即可。
(逐渐更新)