centos7 php多版本切换_腾讯云CVM搭建LNMP+WP(新版本)完整教程

f14c8bb33239599336b06e90664aaab6.png

购买腾讯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 安装配置成功:

a35caf64598538ae9f5174fe56df8efe.png

配置 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" 

a615630ec4da0ed57c5f9d7597d415cf.png

这时会找到三个地方符合要求,三个更改其中任何一个即可,需要保证生效的那一条,其他的应该前面有#将其注释掉了:

db242143a5a3314ad685145633f5d65e.png

更改/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 环境配置成功。

0843cc7a10a2c5d4e2ee217df501e85a.png

二、安装配置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。

88d1087aa3eb66e8d856ae5a4fa4994a.png

到这里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,查看后面的值:

d1c6cf7cd28ac80e19561e7bd7e15ce1.png

均为: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地址了:

b8c0b7958b56fe04ebf598c87446af26.png

然后在固定链接中更改常用设置的值为自定义结构,一般使用%post_id%,记住要在后面加上.html:

ae9ab92d4f3b7cdc58e74ff4394fa600.png

可能这时在访问次级页面时会提示404,这个需要修改Nginx的伪静态规则,打开Nginx的配置文件:

vim /etc/nginx/conf.d/default.conf 

默认内容的一部分为:

a102d323fd063897cc7fe4fe6c852269.png

这里在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;

插入完成后就像这样:

b8a923c74a8ecddc1d9cef0e971be410.png

这样次级页面就可以正常访问了!

五、修改WP的上传大小限制

默认上传大小的限制影响大图和主题的上传,需要我们手动修改Nginx.conf:

vim /etc/nginx/nginx.conf 

修改为client_max_body_size 1000m:

9c17e3d390ab1760995955e75a86f2e3.png

重启Nginx,问题解决。

六、其他问题

1.WordPress 提示"在裁剪您的图像时发生了错误"解决方案

原因:缺少 PHP GD 库,解决方案如下:

yum install php-gd 

安装完后重启Nginx即可。

(逐渐更新)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值