CentOS7: 搭建LNMP环境+WordPress

2020-08-27 WP排行榜

CentOS7: 搭建LNMP环境+WordPress

CentOS7 (CentOS 7.6 64位)
Nginx (Nginx 1.17)
MySQL (Server version 5.7)
PHP (PHP 7.3)

1. 安装Nginx

1yum install nginx       # 安装nginx
2systemctl start nginx       # 启动nginx
3systemctl enable nginx.service      # 设置为开机启动

设置完成后在浏览器输入:127.0.0.1(服务器 公网ip)能看到nginx页面则表示安装成功

2. 安装MySQL

添加MySQL官方源

1wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
2yum localinstall mysql57-community-release-el7-11.noarch.rpm

以上下载地址如果有变,点击这里查看最新的就行

使用下面的命令查看有哪些版本可选择安装:
yum repolist all | grep mysql

 1[root@K ~]#  yum repolist all | grep mysql
 2mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community   disabled
 3mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - disabled
 4mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community   disabled
 5mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - disabled
 6mysql-connectors-community/x86_64  MySQL Connectors Community    enabled:     74
 7mysql-connectors-community-source  MySQL Connectors Community -  disabled
 8mysql-tools-community/x86_64       MySQL Tools Community         enabled:     74
 9mysql-tools-community-source       MySQL Tools Community - Sourc disabled
10mysql-tools-preview/x86_64         MySQL Tools Preview           disabled
11mysql-tools-preview-source         MySQL Tools Preview - Source  disabled
12mysql55-community/x86_64           MySQL 5.5 Community Server    disabled
13mysql55-community-source           MySQL 5.5 Community Server -  disabled
14mysql56-community/x86_64           MySQL 5.6 Community Server    disabled
15mysql56-community-source           MySQL 5.6 Community Server -  disabled
16mysql57-community/x86_64           MySQL 5.7 Community Server    enabled:    307
17mysql57-community-source           MySQL 5.7 Community Server -  disabled
18mysql80-community/x86_64           MySQL 8.0 Community Server    disabled
19mysql80-community-source           MySQL 8.0 Community Server -  disabled

可以看到,除了MySQL 5.7,MySQL官方源也提供别的版本,比如说5.5、5.6、8.0,如果对别的版本有需求,按需安装即可,需用yum-config-manager启用或禁用相关的源(启用需要的版本),比如说禁用MySQL5.6启用MySQL5.7:

1yum-config-manager --disable mysql56-community
2yum-config-manager --enable mysql57-community

确定需要安装的版本,安装:
yum install mysql-community-server
只需上面一行命令即可安装好,安装过程不需要人工干预,直接就完成了安装过程。

注意:MySQL Server的root密码在安装过程中生成了随机密码,如果安装之后发现不知道MySQL的root密码而无法登录千万别方,可以通过下述命令找到MySQL的root随机密码:

1systemctl start mysqld       #启动MySQL
2
3grep 'temporary password' /var/log/mysqld.log    #执行此命令查看随机密码
4
52019-08-25T04:07:08.536233Z 1 [Note] A temporary password is generated for 
6root@localhost: DlKq&l6PMT1X

localhost: 后面的字符串就是MySQL的临时root密码了。

找到密码后进行MySQL初始化操作,执行命令:
mysql_secure_installation

 1[root@K ~]#mysql_secure_installation
 2
 3Securing the MySQL server deployment.
 4
 5Enter password for user root:          ##输入上面的临时root密码
 6
 7The existing password for the user account root has expired. Please set a new password.
 8
 9New password:     ##设置新密码
10
11【这里有一点需要注意的是,由于validate_password的存在,
12所更改的密码不能太简单,必须符合validate_password要求才能更改成功,
13根据官方文档,MySQL密码要求是:
14至少包含一个大写字母,一个小写字母,一个数字,一个特殊符号,且不能少于8位】
15
16
17Re-enter new password:  ##重复密码
18The 'validate_password' plugin is installed on the server.
19The subsequent steps will run with the existing configuration
20of the plugin.
21Using existing password for root.
22
23Estimated strength of the password: 100
24Change the password for root ? ((Press y|Y for Yes, any other key for No) :y #是否更改root密码
25
26 ... skipping.
27By default, a MySQL installation has an anonymous user,
28allowing anyone to log into MySQL without having to have
29a user account created for them. This is intended only for
30testing, and to make the installation go a bit smoother.
31You should remove them before moving into a production
32environment.
33
34Remove anonymous users? (Press y|Y for Yes, any other key for No) :y ##y是否移除匿名用户
35
36 ... skipping.
37
38
39Normally, root should only be allowed to connect from
40'localhost'. This ensures that someone cannot guess at
41the root password from the network.
42
43Disallow root login remotely? (Press y|Y for Yes, any other key for No) :y ##是否禁止root远程登录
44Success.
45
46By default, MySQL comes with a database named 'test' that
47anyone can access. This is also intended only for testing,
48and should be removed before moving into a production
49environment.
50
51
52Remove test database and access to it? (Press y|Y for Yes, any other key for No) :y ##是否删除测试数据库
53 - Dropping test database...
54Success.
55
56 - Removing privileges on test database...
57Success.
58
59Reloading the privilege tables will ensure that all changes
60made so far will take effect immediately.
61
62Reload privilege tables now? (Press y|Y for Yes, any other key for No) :y ##是否立即刷新权限
63Success.
64
65All done!

如果觉得麻烦,也可以把这个插件关闭,但是不建议:

1vi /etc/my.conf
2
3[mysqld]
4validate_password=Off

接下来执行:

1mysql -u root -p     #用上面设置的密码登陆mysql
2mysql>create database wordpress character set utf8mb4 collate utf8mb4_unicode_ci;    # 创建wordpress数据库
3mysql>use wordpress;    #切换到wordpress数据库
4mysql>exit  # 退出mysql
  • 出于兼容性考虑,我们最好在新建数据库的时候指定字符集,这样在后面的开发中可以减少很多莫名其妙的问题:
    ncreate database if not exists zocodev default character set utf8 collate utf8_unicode_ci;
  • 如果有emoji需求,也可以指定为utf8mb4字符集:
    create database if not exists zocodev default character set utf8mb4 collate utf8mb4_unicode_ci;

3. 安装PHP

(1)安装5.X版本

1yum install php-fpm php-mysql   #php-fpm使php与nginx关联,php-mysql为php与mysql关联

(2)安装7.X版本

在CentOS7中,安装PHP7.X可能会报错误
libargon2.so.0()(64bit) 依赖错误
执行:

1yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode php73-php-snmp php73-php-soap php73-php-xmll

报错:

1Error: Package: php-cli-7.2.12-1.el7.remi.x86_64 (remi-php72)
2           Requires: libargon2.so.0()(64bit)
3Error: Package: php-7.2.12-1.el7.remi.x86_64 (remi-php72)
4           Requires: libargon2.so.0()(64bit)

解决方法是到 /etc/yum.repos.d 中 将对应的源开启,即把对应的enabled设置为1:
vi /etc/yum.repos.d/epel.repo

打开后 修改 下面节点里的 enabled

1[epel]
2name=Extra Packages for Enterprise Linux 7 - $basearch
3#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
4mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
5failovermethod=priority
6enabled=1     #此处修改为1
7gpgcheck=1
8gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

另一处修改:
vi /etc/yum.repos.d/remi-php73.repo

打开后 修改 下面节点里的 enabled

1[remi-php73]
2name=Remi's PHP 7.3 RPM repository for Enterprise Linux 7 - $basearch
3#baseurl=http://rpms.remirepo.net/enterprise/7/php73/$basearch/
4#mirrorlist=https://rpms.remirepo.net/enterprise/7/php73/httpsmirror
5mirrorlist=http://cdn.remirepo.net/enterprise/7/php73/mirror
6enabled=1          #此处修改为1
7gpgcheck=1
8gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

保存以上两个修改,重试安装命令:

1yum install php73w-fpm php73w-mysql   # php-fpm使php与nginx关联,php-mysql为php与mysql关联
2 systemctl start php-fpm     # 启动php-fpm
3systemctl enable php-fpm    # 设置开机启动

4. 修改nginx配置

打开nginx主配置文件
vi /etc/nginx/nginx.conf
在http内加入:

 1server {
 2    listen       80 default_server;
 3    listen       [::]:80 default_server;
 4    server_name  binnear.com.cn; # 此处修改为域名或者公网IP
 5    root         /usr/share/nginx/html; # 站点的目录
 6
 7    # Load configuration files for the default server block.
 8    include /etc/nginx/default.d/*.conf;
 9
10    location / {
11        index index.php index.html index.htm;
12        try_files $uri $uri/ /index.php?$args;
13    }
14
15    rewrite /wp-admin$ $scheme://$host$uri/ permanent;
16
17    location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
18                access_log off; log_not_found off; expires max;
19    }
20
21    location ~ \.php$ {
22        try_files $uri =404;
23        fastcgi_split_path_info ^(.+\.php)(/.+)$;
24        fastcgi_pass 127.0.0.1:9000;
25        fastcgi_index index.php;
26        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
27        include fastcgi_params;
28    }
29}

输入完成后,按ESC进入命令模式,输入:wq,回车保存并退出,输入:
nginx -t -c /etc/nginx/nginx.conf
检查配置文件
重载:
systemctl reload nginx

5. 测试php-fpm是否安装成功

输入vi /usr/share/nginx/html/index.php,按i进入编辑模式,输入以下内容:

1<?php
2    echo "<title>Test Page</title>";
3    echo "Hello World!";
4?>

输入完成后,按ESC进入命令模式,输入:wq,回车保存并退出;
接着在浏览器中输入http://当前服务器公网IP/index.php;
如果浏览器中出现Hello World!则表示配置成功,可继续进行以下步骤,若出现文件下载弹窗,则配置失败,检查以上步骤是否出错。

6. 安装wordpress与配置wordpress

 1wget https://cn.wordpress.org/latest-zh_CN.tar.gz  # 下载wordpress安装包
 2tar zxvf latest-zh_CN.tar.gz   # 解压缩
 3cd wordpress/   # 进入到wordpress目录
 4cp wp-config-sample.php wp-config.php   # 复制wp-config-sample.php并重命名为wp-config.php
 5vi wp-config.php   # 打开该文件
 6找到mysql设置的配置部分,按i进入编辑模式,将步骤2中配置的mysql信息填入以下内容中
 7
 8// ** MySQL settings - You can get this info from your web host ** //
 9/** The name of the database for WordPress */
10define('DB_NAME', 'wordpress'); # 数据库名
11
12/** MySQL database username */
13define('DB_USER', 'root');  # 数据库用户名
14
15/** MySQL database password */
16define('DB_PASSWORD', '123456');    # 数据库密码
17
18/** MySQL hostname */
19define('DB_HOST', 'localhost'); # 一般不修改
20输入完成后,按ESC进入命令模式,输入:wq,回车保存并退出;
21
22rm /usr/share/nginx/html/index.html # 删除nginx中的主页文件
23mv * /usr/share/nginx/html/ # 将wordpress文件移动web站点的根目录

完成后,在浏览器中输入
http://你的主机IP或者域名/wp-admin/install.php
进入到wordpress的配置页面,输入网站标题,用户名和密码后,就可以进入wordpress后台管理界面,到此便大功告成。

7. 后续

  • 关于网站更新需要FTP账户

    在 WordPress 目录下找到 wp-config.php 文件并编辑,在最后一行加上
    define('FS_METHOD', "direct");

  • 如果这个时候提示无法创建目录,则可输入以下内容:
    chown -Rf apache:root /usr/share/nginx/html/
    刷新便可顺利更新。



助你挑选高品质的WordPress主题
WP排行榜官方QQ:1227810339
主营:网站建设,SEO推广服务!

wordpress托管建站