首先了解一下环境
平台: Centos7.6
- Nginx: 1.12.2
- MySQL: 8 (或者 Mariadb: 10.3.16-MariaDB)
- PHP: 7.2.19
- WordPress: 5.2.2
另外, 由于 mysql8 的官方 yum 源安装速度非常慢 (亲测 20 多分钟至几个小时), 而且一些配置也会稍微复杂一点, 所以推荐安装 mariadbb10 的版本替代.
安装开发工具包
可先通过 yum grouplist 查看一下安装列表, 这里我们只安装其中一个开发工具包 Developmennt Tools
yum groupinstall 'Development Tools' -y
nginx 安装与配置
安装
yum isntall -y nginx
一般 nginx 的默认配置目录是 / etc/nginx/conf.d/, 这里我们新建一个配置文件
VIM /etc/nginx/conf.d/web.conf
并在 Web.conf 文件中写入以下内容, 注意
server_name t1.xiaoxiangti.com;
为你的域名.
- #======================== Web options ============================
- server {
- listen 80;
- server_name t1.xiaoxiangti.com;
- root /var/WordPress;
- index index.PHP index.html;
- charset utf-8;
- #======================== Pseudo static ==========================
- 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 (.*) /index.PHP; }
- }
- #======================== PHP options ============================
- location ~ \.PHP {
- root /var/WordPress;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.PHP;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- #======================== Error page =============================
- error_page 400 403 404 /40x.HTML;
- location = /40x.HTML {
- }
- error_page 500 502 503 504 /50x.HTML;
- location = /50x.HTML {
- }
- }
最后启动 nginx 服务, 并设为开机启动
- systemctl start nginx
- systemctl enable nginx
mysql8 安装与配置
清除旧版本
centos7 下默认安装有 mariadb 数据库, 但是是旧版本, 在安装新版本前需要先把旧版本删除, 有些系统还默认安装 MySQL, 也必须删除, 否则有可能会产生冲突.
检查是否安装了 MySQL 及相关依赖
- [root@iZwz9dsrvtc901nh4f4tbyZ ~]# rpm -qa |grep MySQL
- mysql80-community-release-el7-3.noarch
- MySQL-community-common-8.0.17-1.el7.x86_64
- MySQL-community-client-8.0.17-1.el7.x86_64
- MySQL-community-server-8.0.17-1.el7.x86_64
- MySQL-community-libs-8.0.17-1.el7.x86_64
- MySQL-community-libs-compat-8.0.17-1.el7.x86_64
如上, 如果有安装的话, 则依次卸载
- # 通过 rpm -e 卸载
- rpm -e mysql80-community-release-el7-3.noarch
- # 卸载不成功时使用此命令强制卸载
- rpm -e --nodeps mysql80-community-release-el7-3.noarch
- # 也可通过 yum remove -y 卸载
- yum remove -y mysql80-community-release-el7-3.noarch
- ...
查找分散的 MySQL 目录及配置文件
通过 find 命令
- [root@iZwz9dsrvtc901nh4f4tbyZ ~]# find / -iname MySQL
- /usr/lib64/MySQL
- /usr/bin/MySQL
- /etc/logrotate.d/MySQL
- /var/lib/MySQL
- /var/lib/MySQL/MySQL
通过 which 命令
- [root@iZwz9dsrvtc901nh4f4tbyZ ~]# which MySQL
- /usr/bin/MySQL
上面 find 命令后面 / 表示需要查找的路径,-iname 参数表示忽略大小写, 查找名字中包含 MySQL 的结果.
上面查找到的目录或文件需要 rm -rf 依次删除
- rm -rf /usr/lib64/MySQL
- ...
mariadb 同理, 把上面命令中的 MySQL 换成 mariadb 再执行一遍即可.
配置 yum 源及安装
下载 MySQL 官方的 yum 源仓库
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
安装 yum 源
- yum localinstall mysql80-community-release-el7-3.noarch.rpm -y
- # 这里也可执行这个命令
- rpm -ivh mysql80-community-release-el7-3.noarch.rpm --force --nodeps
完成后, 会再 yum 的配置目录 / etc/yum.repos.d / 目录下生成对应的 yum 源文件, 例如查看一下 yum 源的列表:
- [root@iZwz9dsrvtc901nh4f4tbyZ ~]# yum repolist
- mysql80-community/x86_64
- MySQL-tools-community/x86_64
- MySQL-connectors-community/x86_64
- ...
更新 yum 源
- yum clean all && yum makecache
- yum upgrade -y
安装 MySQL
做了半天准备, 终于可以安装了. 这里安装的是 MySQL 的社区版. 这一步会比较慢, 我试了几次, 最快的也要 20 多分钟, 慢的话可能需要一两个小时..
yum install MySQL-community-server -y
启动 MySQL
安装完成后, 启动 MySQL, 并设置为开机启动
- systemctl start mysqld
- systemctl enable mysqld
修改配置文件
这一环节主要针对 mysql8 及以上的版本, 如果是 mysql8 以下版本则不需要, 可以直接跳过到 "创建 wordpress" 的环节.
因为以往的 MySQL 版本验证机制是 "mysql_native_password", 而 mysql8 使用的身份验证机制, 所以需要修改下配置文件 my.cnf.
打开配置文件: VIM /etc/my.cnf 并新增以下内容:
- [client]
- default-character-set=utf8
- [MySQL]
- default-character-set=utf8
- [mysqld]
- collation-server = utf8_unicode_ci
- character-set-server = utf8
- default_authentication_plugin = mysql_native_password
登录
mysql8 及以后的版本会生成一个默认的 root 用户临时登录密码, 所以如果直接通过 MySQL 登录, 可能会提示没有密码:
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- .
我们需要先通过 grep "temporary password" /var/log/mysqld.log 查看临时密码
- [root@iZwz9dsrvtc901nh4f4tbyZ log]# grep "temporary password" /var/log/mysqld.log
- 2019-08-02T07:20:30.072655Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: g5+(wMKsdq*C
可以看到临时密码为 g5+(wMKsdq*C, 接着登录:
MySQL -uroot -p'g5+(wMKsdq*C'
修改 root 用户的临时密码
通过临时密码登录后, 需要先修改密码. mysql8 对密码要求比较高, 要包含字母大小写, 数字和符号.
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Slevin@123456';
创建 WordPress 数据库及用户
- create database wpdb; # 创建 wpdb 数据库
- create user 'slevin'@'localhost' identified with mysql_native_password by 'Slevin@123456'; # 创建 slevin 账号及登录密码
- grant all privileges on wpdb.* to 'slevin'@'localhost'; # 赋予 slevin 账号权限
刷新权限及退出
完成以上操作后, 刷新权限即可退出 MySQL
- flush privileges;
- exit;
重启 MySQL
systemctl restart mysqld
mariadb10 安装及配置
清除旧版本
配置阿里云的 mariadb yum 源
在目录下 /etc/yum.repos.d/ 创建文件 MariaDB.repo , 并把以下内容添加到所建文件中:
- #MariaDB 10.3 CentOS repository list - created 2018-10-16 15:18 UTC
- #http://downloads.mariadb.org/mariadb/repositories/
- [mariadb]
- name = MariaDB
- baseurl = http://mirrors.aliyun.com/mariadb/yum/10.3/centos7-amd64/
- gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
- gpgcheck=1
更新 yum 源缓存
- yum clean all && yum makecache
- yum upgrade -y
安装 mariadb 及相关拓展
yum install -y MariaDB-server MariaDB-client
启动 mariadb 并设为开机启动
- systemctl start mariadb
- systemctl enable mariadb
创建 worpdress 使用的数据库及用户
输入 MySQL 登录数据库, 然后依次执行
- create database wpdb;
- grant all privileges on wpdb.* to 'slevin'@'localhost' identified by 'Slevin@123456';
- flush privileges;
- exit;
php7 安装及配置
配置 yum 源
由于 Linux 的 yum 源不存在 php7.x, 所以我们要更改 yum 源. 而 php7.x 有两个源可以选择, 一个是 webtatic 提供的, 也就是 php70w, 那个 w 指得就是 webtatic, 另一个可以使用 remi 源. 这里主要以 webtatic 进行展开讲解.
首先配置 epel 源
- yum install -y epel-release
- # 或者配置阿里云镜像的 epel 源
- cd /etc/yum.repos.d
- wget https://mirrors.aliyun.com/repo/epel-7.repo
再配置 wetatic 源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
更新 yum 源缓存
- yum clean all && yum makecache
- yum upgrade -y
可以通过 yum repolist 查看确认一下 yum 源列表
通过 yum list |grep php7 查看可安装的 php7 以上版本列表信息
安装
安装 PHP 及相应拓展. 这里安装的是 7.2 版本, 也就是 php72w, 对应的拓展都是以此为前缀, 如果需要其他版本如 php70w,php71w, 对应拓展的前缀也需更改.
- yum install -y php72w php72w-fpm php72w-MySQL php72w-common php72w-cli php72w-gd
- # 更全的依赖
- #yum install -y php72w php72w-fpm php72w-MySQL php72w-common php72w-cli php72w-gd php72wp-dba php72w-devel php72w-embedded php72w-imap php72w-interbase php72w-intl php72w-ldap php72w-mbbstring php72w-mysqlnd php72w-odbc php72w-opcache php72w-pdo php72w-pdo_dblib php72w-Pear php72w-pecl-apcu php72w-pecl-imagick php72w-pecl-Redis php72w-pecl-xdebug php72w-pgsql php72w-phpdbg php72w-process php72w-pspell php72w-recode php72w-snmp php72w-SOAP php72w-tidy php72w-xml php72w-xmlrpc
相关配置
使用 VIM 编辑器编辑此文件
VIM /etc/PHP-fpm.d/www.conf
在 www.conf 文件中, 修改 user,group 字段, 这里使用 "nginx" 用户运行 PHP 服务, 方便之后权限规划:
- user = nginx
- group = nginx
启动服务并设为开机启动
systemctl start PHP-fpm && systemctl enable PHP-fpm
安装 WordPress
依次执行以下命令:
- mkdir /var/WordPress && cd /var/WordPress/
- wget https://cn.wordpress.org/latest-zh_CN.zip && unzip latest-zh_CN.zip
- mv WordPress/*/var/WordPress/ && cd /var
- chmod 755 -R WordPress
- chown nginx:nginx -R WordPress
如果以上操作都没问题的话, 这个时候访问你的域名或者服务器的 ip 的 ip 地址, 就会看到 WordPress 的安装界面了.
安装界面这里填入上面我们创建好的 MySQL 账户即可.
参考
聊聊这两天在 Linux 安装 PHP7 遇到的坑, 真的是坑死人不偿命啊
CentOS 7.2 安装 PHP 7 记录
在 centos7 通过 yum 安装 PHP7
centos7.5 下 yum 安装 mariadb10.3 详解
来源: http://www.jianshu.com/p/f70abc33a575