阿里云安装wordpress,Centos8使用Dnf搭建LNMP环境

阿里云Centos8使用Dnf安装LNMP,WordPress安装教程

在阿里云中设置好centos8的操作系统后,先做一些基本的设置。

1.阿里云安装centos8中文语言包

通过 yum search 命令搜索中文语言包

yum search langpacks

发现简体中文的安装包是:langpacks-zh_CN.noarch
直接通过命令: dnf install langpacks-zh_CN.noarch
安装中文字体
dnf install wqy\*

修改语言:

vi /etc/locale.conf

将原来的内容修改成下面内容
LANG="zh_CN.UTF-8"
最后通过命令:locale -a 查看一下zh_CN有没有安装成功

2.阿里云在centos8下配置EPEL和REMI源

首先配置aliyun的软件源:

vim /etc/yum.repos.d/CentOS-AppStream.repo

[AppStream]
name=CentOS-$releasever - AppStream
baseurl=http://mirrors.cloud.aliyuncs.com/$contentdir/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

vim /etc/yum.repos.d/CentOS-Base.repo
[BaseOS]
name=CentOS-$releasever - Base
baseurl=http://mirrors.cloud.aliyuncs.com/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

vim /etc/yum.repos.d/CentOS-Epel.repo
[epel]
name=Extra Packages for Enterprise Linux 8 - $basearch
baseurl=http://mirrors.cloud.aliyuncs.com/epel/8/Everything/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8

yum源配置成功后,清除yum缓存元数据。

yum clean all

安装epel存储库:

dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

确认epel库是否安装成功
rpm -qa | grep epel

安装remi存储库:

dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

确认remi库是否安装成功

rpm -qa | grep remi

重新建立yum缓存
yum makecache

获取所有正在运行的服务:

systemctl list-units --type=service

查看端口占用情况:
netstat -lntup

3.阿里云在cnetos8下通过DNF安装php7.4/nginx1.18/sql8.0

3.1阿里云安装php7.4

成功添加EPEL和Remi存储库后,执行以下命令以获取可用PHP模块流的列表:

dnf module list php

重置php模块:
dnf module reset php

启用对应php版本的流模块,这里我们安装的是php7.4的版本,所以启用remi-7.4版本的流:
dnf module enable php:remi-7.4

安装PHP,此命令还安装许多其他软件包:

dnf install php-mysqlnd php-gd

安装好PHP后,修改PHP权限:
vi /etc/php-fpm.d/www.conf

user = nginx
group = nginx

当安装wordpress 无法创建目录时候要确保,wp文件存放目录,nginx的用户组还有PHP的用户组在同一用户下。
修改wp存放目录的权限:

chown -R nginx:nginx /home/www

查看php-fpm属于哪个用户组:
ps -ef | grep php-fpm

修改PHP配置文件:

vi /etc/php.ini

cgi.fix_pathinfo, 修改为=0;
upload_max_filesize = 2M 文件上传大小,默认值太小,建议修改1024M
display_errors = on 打印错误
post_max_size = 8M 表单最大值,建议1024M
max_execution_time=600 php脚本最大执行时间

权限设置:

chown -R nginx:nginx /run/php-fpm/www.sock

查看php是否安装成功:

php -v

设置开机启动、运行服务:

systemctl enable php-fpm

systemctl start php-fpm

常用操作命令:
重启:

systemctl restart php-fpm

启动:

systemctl start php-fpm

关闭:

systemctl stop php-fpm

状态:

systemctl status php-fpm

3.2阿里云安装nginx1.18

成功添加EPEL和Remi存储库后,执行以下命令以获取可用nginx模块流的列表:

dnf module list nginx

重置nginx模块:
dnf module reset nginx

启用对应nginx版本的流模块,这里我们安装的是nginx1.18的版本,所以启用nginx1.18版本的流:

dnf module enable nginx:1.18

安装nginx,此命令还安装许多其他软件包:

dnf install nginx -y

查看nginx是否安装成功:
nginx -v

查看端口占用情况:

netstat -lntup

设置开机启动、运行服务:

systemctl enable nginx

systemctl start nginx

常用命令:
重启:

systemctl restart nginx

启动:

systemctl start nginx

关闭:

systemctl stop nginx

状态:

systemctl status nginx

nginx生成域名证书ssl

先安装socat:

dnf install socat

acme.sh
curl  https://get.acme.sh | sh

注意脚本安装后,一定要重新启动。
reboot

证书申请:
在nginx里设置好域名后,再进行证书申请,例如:

acme.sh  --issue  -d www.uzbox.tk -d uzbox.tk --webroot  /home/www/

也可以使用读取nginx配置的命令,如果nginx里没有设置站点请先设置站点。
acme.sh  --issue  -d www.uzbox.tk -d uzbox.tk --nginx

证书申请成功后,进行证书安装:
acme.sh --installcert -d  uzbox.tk --key-file /home/ssl/uzbox.tk.key --fullchain-file /home/ssl/fullchain.cer --reloadcmd "service nginx force-reload"

3.3在阿里云CentOS 8下通过dnf安装MySQL 8.0

使用最新的包管理器安装MySQL

dnf install @mysql

开启启动
systemctl enable --now mysqld

检查MySQL服务器是否正在运行
systemctl status mysqld

添加密码及安全设置
运行mysql_secure_installation脚本,该脚本执行一些与安全性相关的操作并设置MySQL根密码:

sudo mysql_secure_installation

步骤如下:
要求你配置VALIDATE PASSWORD component(验证密码组件): 输入y ,回车进入该配置
选择密码验证策略等级, 我这里选择0 (low),回车
输入新密码两次
确认是否继续使用提供的密码?输入y ,回车
移除匿名用户? 输入y ,回车
允许root远程登陆? 输入n ,回车
移除test数据库? 输入y ,回车
重新载入权限表? 输入y ,回车
配置mysql远程登陆,如果需要设置root账户远程登陆,重复上一步骤中,允许root远程登陆?这一步需要设为y。
接下来本机登录MySQL,将root用户的host字段设为'%',意为接受root所有IP地址的登录请求。
设置之后重启mysql服务
systemctl restart mysqld

MySQL8.0默认已经是utf8mb4字符集,所以字符集不再修改

4.阿里云安装phpMyAdmin 5.0.4

phpMyAdmin网站:https://www.phpmyadmin.net/
下载最新版本的phpMyAdmin,phpMyAdmin是可视化的mysql管理工具。

wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.tar.gz

下载之后解压缩文件
tar -zxvf phpMyAdmin-5.0.4-all-languages.tar.gz

将解压缩后的文件改名
mv phpMyAdmin-5.0.4-all-languages phpMyAdmin

移动文件夹到网站目录下
mv phpMyAdmin /home/wwwroot

安装过后需要php安装php-mysqlnd扩展
dnf install php-mysqlnd

修改配置文件:
进入libraries目录

cd /home/wwwroot/phpMyAdmin/libraries

编辑config.default.php文件
vi config.default.php

$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'mysql密码';
$cfg['blowfish_secret'] = ''; 改成 $cfg['blowfish_secret'] = '123456'; (注:其中的'123456′为随意的大于32个字符的密码)
修改后保存退出,:qw
返回到phpMyAdmin主目录下,将配置文件改名。
cd  /home/wwwroot/phpMyAdmin/

mv config.sample.inc.php config.inc.php

vi config.inc.php

$cfg['Servers'][$i]['host'] = 'localhost';改成 $cfg['Servers'][$i]['host'] = '127.0.0.1';
然后修改phpMyAdmin用于cookies的短密码。
$cfg['blowfish_secret'] = ''; 改成 $cfg['blowfish_secret'] = '123456'; (注:其中的'123456′为任意大于32位的字符。)
这个密码用于Cookies的加密,以免多个PhpMyAdmin或者和其他程序共用Cookies时搞混。

修改session路径(例如/var/lib/php/session)的用户组以及权限,然后去到相应session路径

cd /var/lib/php

chown www:www ./session

chmod -R 777 ./session

在phpmyadmin目录下新建tmp文件夹,权限设置777
chmod -R 777 /home/wwwroot/phpMyAdmin/tmp

解决phpMyAdmin中高级功能尚未完全设置,部分功能未激活的问题。
在phpMyAdmin里点击创建一个phpmyadmin的空数据库就可以解决了。
最后在Nginx中配置phpMyAdmin的访问路径后就可以正常访问了。

phpMyAdmin 5.1.1于 2021 年 6 月 4 日发布。

修复了几个 PHP 错误:

  • 修复了“$cfg['DefaultTabDatabase']”和其他相关配置指令无法正常工作的问题
  • 修复 Yaml 导出以引用字符串,即使它们是数字
  • 修复由于来自 TCPDF 的内部猜测代码导致的 TCPDF open_basedir 问题
  • 修复使用多个已配置服务器时快速搜索不起作用的问题修复编辑后显示的日期时间小数(.00000)
  • 修复文本字段中的新行加倍
  • 通过删除不需要的 & 转义 & 字符来修复 URL 生成
  • 使用 PHP 8.1 的改进
  • 改进了使用 Percona 数据库服务器添加新用户的处理

当然,您可以在此版本中包含的 ChangeLog 文件或在线 https://demo.phpmyadmin.net/master-config/index.php?route=/changelog 中看到更多修复

现在可以在 https://phpmyadmin.net/downloads/ 下载

5.阿里云安装WordPress

WordPress官方网站:https://cn.wordpress.org/
首先下载最新版本的WordPress。

wget https://cn.wordpress.org/latest-zh_CN.tar.gz

下载完毕后解压缩文件。
tar -xzvf latest-zh_CN.tar.gz

移动文件夹到网站目录下
mv wordpress /var/wwwroot

cd /var/wwwroot

将wp--sample.php文件改名
cp wp-config-sample.php wp-config.php

修改网站配置文件:
vim wp-config.php

WordPress数据库的名称:define( 'DB_NAME', 'WordPress' );
MySQL数据库用户名:define( 'DB_USER', 'root' );
MySQL数据库密码:define( 'DB_PASSWORD', 'mysql密码' );
MySQL主机:define( 'DB_HOST', '127.0.0.1' );
创建数据表时默认的文字编码:define( 'DB_CHARSET', 'utf8' );
在文件末尾添加以下代码:
if(is_admin()) {add_filter('filesystem_method', create_function('$a', 'return "direct";' ));define( 'FS_CHMOD_DIR', 0751 );}

修改好配置文件后,将phpMyAdmin放置在wordpress目录下
mv phpMyAdmin  /var/wwwroot/phpMyAdmin

https://你的网站域名/phpMyAdmin
然后打开phpMyAdmin,新建WordPress数据库,数据库名称WordPress,建立空库就可以。这个数据库名称与上面wp-.php中配置的要一样。
之后在浏览器中配置网站,按照步骤一步一步安装。建议使用谷歌浏览器。
https://网站域名/wp-admin/install.php

网站插件更新安装与模板安装权限配置:
这一步有些人会把目录权限配置成777,这个存在一定的安全隐患,正确配置是将用户组和用户全部统一,即php的用户组,NGINX的用户组,还有wordpress的存放目录的用户组。
首先进入网站存放目录,查看文件夹用户组和权限

cd /var/wwwroot/

使用ls -l命令查看一下目录所属用户组,默认的用户组与用户都是root。
ls -l

修改网站存放目录的用户组权限。
chown -R nginx:nginx <code>/var/wwwroot/

例如nginx中是使用nginx用户启动的,这里就要修改成nginx用户组和nginx用户。
php中一样要使用nginx用户组启动。
vi /etc/php-fpm.d/www.conf

user =
group =
修改成nginx用户组与用户
user = nginx
group = nginx
php的用户组,NGINX的用户组,还有wordpress的存放目录的用户组修改过后,reboot重新启动服务器就可以了。
NGINX的nginx.conf配置,仅供参考:
server配置:

server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
server_name www.uzbox.tk; # 你的域名
return 301 https://uzbox.tk$request_uri; # 将www域名301重定向到uzbox.tk
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name uzbox.tk;
root /home/wwwroot;

ssl_certificate "/home/ssl/fullchain.cer";
ssl_certificate_key "/home/ssl/uzbox.tk.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;

# Config for 0-RTT in TLSv1.3
ssl_early_data on;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000";
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args; #用来支持wordpress中伪静态的设置。
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

用于伪静态的插件安装:
首先要修改WordPress的固定链接,进入后台,打开设置固定链接。
自定义结构后面填入%category%/%post_id%
“No Category Base”插件用来去掉分类目录/category/

最后查看一下服务器上所有正在运行的服务

systemctl list-units --type=service

订阅
提醒
guest
0 评论
内联反馈
查看所有评论