在阿里云上部署WordPress

最近刚好因为活动买了一台新的服务器,空着也空着,刚好可以用来搭博客使用,搭建博客这件事。之前也做过很多次,不管是用静态博客生成器,还是手写一个博客项目。都尝试过,思来想去,这次打算用用WordPress,听闻许久,也该用用看了。

安装Nginx

yum -y install nginx

安装Mysql5.7

  • 安装 mysql 官方 yum 源
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
  • 查看 MySQL yum 源
yum list | grep mysql

发现只有 mysql80 的包,这是因为没有开启 mysql57 的包,关闭80包,开启57包。

yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community

报错

-bash: yum-config-manager: 未找到命令

这个是因为系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装就可以了。

  • 安装 yum-utils 包
yum -y install yum-utils
  • 再次查看Mysql包列表出现57安装包
  • 安装 Mysql57
yum -y install mysql-community-server
  • 启动 Mysql57服务
systemctl start mysqld
  • 查看初始密码
grep 'temporary password' /var/log/mysqld.log
  • 登录 Mysql,修改密码
mysql -uroot -p

set password for root@localhost = password('你的密码');

如果提示错误,那是因为 mysql57 对密码的复杂度进行了限制,依次执行下列命令,取消复杂度限制,再修改

set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=3;

提示错误

[root@izuf6fco0zwyipdq9485s2z ~]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  • 如下操作修复
# 先关闭服务
systemctl stop mysqld
# 跳过权限验证
mysqld --user=root --skip-grant-tables &
# 登录
mysql -u root mysql
# 设置密码
UPDATE user SET authentication_string=PASSWORD('new password') where USER='root';
# 刷新设置
FLUSH PRIVILEGES;

安装 PHP7.2

php7.2 版本的 yum 源在 webtatic 上,但还有一部分需要依赖 epel-release 。EPEL(Extra Packages for Enterprise Linux ),是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。

  • 安装 epel-release
yum -y install epel-release

安装完成后,在 /etc/yum.repos.d 目录下,就会多一个 epel.repo 的文件,还有一个 testing 的测试文件。当系统通过 yum 进行安装软件时,如果需要 epel 里的扩展包,就会自动下载安装。

  • 安装 webtatic yum 源
rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

安装完成后,在 /etc/yum.repos.d 目录下会多出 webtatic.repo 和 webtatic-archive.repo 两个文件,还有一个 testing 的测试文件。

  • 查看 php 可以安装的包
 yum list | grep php72

上面这些 rpm 包就是 webtatic 的 yum 源里面的包啦。我们要安装的就是 php72 的核心包 mod_php72w 和核心扩展包 php72w-cli 、php72w-fpm、php72w-common、php72w-devel。其它扩展选项包请根据需要安装,例如需要 php72w-gd 后期可单独安装。

  • 安装php72
yum -y install mod_php72w php72w-cli php72w-fpm php72w-common php72w-devel

通过这种方式安装的 php72 的 php.ini 文件与我们认识的不太一样,它类似于 nginx.conf 存在一个主配置,通过类型 include 方法,包含指定文件夹下的模块配置文件。

  • 启动php-fpm
systemctl start php-fpm

安装 WordPress

  • 下载wordpress
wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
  • 解压到/home/目录下
tar -zxvf wordpress-4.9.4-zh_CN.tar.gz -C /home/
  • 登陆mysql并添加数据库,命名为wordpress
mysql -uroot -p
create database wordpress;
show databases;
  • 备份nginx的配置文件
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
  • 修改配置文件
vim /etc/nginx/conf.d/default.conf

重启Nginx服务时候报错,查看错误日志

vim /var/log/nginx/error.log
2018/11/14 17:15:23 [emerg] 14151#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: bind() to [::]:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: bind() to [::]:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: bind() to [::]:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: bind() to [::]:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: bind() to [::]:80 failed (98: Address already in use)
2018/11/14 17:15:23 [emerg] 14151#0: still could not bind()

看错误信息提示80端口已经被占用,无法重启Nginx服务,查看80端口进程是哪一个,并kill掉后,重启服务成功

netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      11333/php-fpm: mast
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      10363/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      15636/sshd
tcp6       0      0 :::3306                 :::*                    LISTEN      10604/mysqld
tcp6       0      0 :::80                   :::*                    LISTEN      10363/nginx: master
kill 10363
service nginx restart
  • 访问域名后显示WP的安装,我们点击进行填写mysql的用户名和密码

数据用户名和密码填写后报错

抱歉,我不能写入wp-config.php文件 ......

查看wordpress文件夹,发现是权限问题

ll /home | grep wordpress
drwxr-xr-x 5 nobody 65534 4096 2月   8 2018 wordpress
  • 查看用户组
grep -E '^(user|group)' /etc/php-fpm.d/www.conf
user = apache
group = apache
  • 设置访问权限
chown -R apache:apache /home/wordpress

再次访问成功!

参开链接:
https://laravel-china.org/articles/10803/this-weekend-theres-a-lot-of-pits-on-the-website-for-a-friend-to-do
https://blog.csdn.net/u011475134/article/details/80222098
https://laravel-china.org/articles/17377#296073

Last modification:August 20th, 2019 at 06:14 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment