《手动部署LNMP环境(CentOS 7)》在Centos7架构LNMP服务器后部署WordPress。

avatar
作者
猴君
阅读量:1

下载CentOS 7:参考VirtualBox虚拟机安装Centos7详细教程图解_virtualbox安装centos7-CSDN博客

准备环境:

1.首先关闭防火墙,在Xshell 7中

输入以下代码:

systemctl stop firewalld systemctl disable firewalld 

其中结果为:

第一步关闭防火墙显示这个就可OK。

 2.关闭SELinux

SELinux是一个Linux内核安全模块,最初由美国国家安全局(NSA)开发,后来被纳入Linux内核中。它提供了强制访问控制(MAC)机制,与传统的基于用户和组的访问控制(DAC)相比,它提供了更加细粒度和可配置的安全策略。

也是在Xshell中输入以下代码:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 

在Xshell中显示

 

如果在终端输入第一行时显示:

错误及解决方案:

可以先在第一行输入su -进入root模式,其中输密码时屏幕不会显示

输完代码后什么都不显示,就像这种即为成功

这段代码是用来修改SELinux的配置,将SELinux状态从强制模式改为禁用模式

  1. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config: 这部分代码使用sed命令在 /etc/selinux/config 文件中替换所有出现的 SELINUX=enforcing 字符串为 SELINUX=disabled。这样做是为了修改系统的SELinux配置文件,将SELinux状态设置为禁用。

  2. setenforce 0: 这一行命令则是立即将当前运行的SELinux状态设置为临时禁用,即切换到宽容模式(permissive),使得SELinux不再强制执行安全策略,而是仅仅记录违规操作而不阻止它们。这个设置是临时的,系统重启后会恢复到配置文件中的设定状态。

这段代码通常用于需要临时禁用SELinux的情况,例如在调试或者安装某些软件时,由于SELinux的严格限制导致操作受限。然而,禁用SELinux会降低系统的安全性,因此在生产环境中应谨慎使用,并在完成需要禁用SELinux的操作后及时恢复其状态。

安装:

1.安装 Nginx

在Xshell中输入以下代码即为安装Nginx

yum -y install nginx

显示这个即为成功:

在CentorOS中下载的话会有以下情况: 

错误及解决方案

有可能他会显示以下页面:

没有可用的nginx包:原因是nginx位于第三方的yum源里面,而不在centos官方yum源里面

解决方法:安装epel

输入以下代码:

sudo yum install epel-release

期间它会提示你【y/d/N】你一直输入y就行,等待一会就代表成功了

接着输入代码:

yum update

这个过程可能时间会长一点,是在更新。

显示的是为这个:

最后在输入代码yum -y install nginx就可以下载了

下载成功显示的是这个:

这段代码是用来通过yum包管理器安装Nginx Web服务器的。具体来说:

  • yum: 是一个基于RPM包管理的包管理器,用于在CentOS和其他基于Red Hat的Linux发行版上安装、更新和移除软件包。
  • -y: 这个选项告诉yum在执行安装操作时自动回答"是",而不需要用户手动确认。这样可以在安装过程中跳过确认提示,使得安装过程自动化。
  • install: 是yum的一个操作命令,表示要执行安装操作。
  • nginx: 是要安装的软件包名,这里指的是Nginx Web服务器。

综合起来,这段代码的作用是在系统上安装Nginx Web服务器,并且在安装过程中自动回答"是",以便自动化安装过程。

2.安装 MySQL

在终端中输入下述代码

 rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm  yum -y install mysql-community-server --nogpgcheck 

第一行代码是更新yum库

显示

即为成功

第二行代码是安装mysql,这个过程很长,需要等待他下载完

显示

即为成功

3.安装PHP

在终端中输入代码

 yum -y install https://repo.ius.io/ius-release-el7.rpm https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm  yum -y install php70w-devel php70w.x86_64 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 php70w-pecl-redis php70w-pecl-mongodb 

第一句代码是添加epel源

显示

第二句是添加 webtatic 源

第三句是安装PHP

配置

1.配置Nginx

a.备份:
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak 

b.添加Nginx对PHP的支持

先输入代码进入nginx.conf文件中

vim /etc/nginx/nginx.conf

然后把这串代码复制到 

include下 

要复制的代码为:

        location / {             index index.php index.html index.htm;         }          #添加下列信息,配置Nginx通过fastcgi方式处理您的PHP请求。         location ~ .php$ {             root /usr/share/nginx/html;    #将/usr/share/nginx/html替换为您的网站根目录,本文使用/usr/share/nginx/html作为网站根目录。             fastcgi_pass 127.0.0.1:9000;   #Nginx通过本机的9000端口将PHP请求转发给PHP-FPM进行处理。             fastcgi_index index.php;             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;             include fastcgi_params;   #Nginx调用fastcgi接口处理PHP请求。         }

输入后显示的整体页面为:

注意画框的就为所添加的

之后按下ESC键输入“:wq”退出vim模式

这段代码是用来配置Nginx以处理PHP请求

  1. location / { ... }: 这个配置块指定了当访问网站的根目录时应该如何处理请求。其中,index index.php index.html index.htm; 指定了当访问目录时,Nginx应该先尝试加载 index.php 文件,如果不存在再依次尝试加载 index.htmlindex.htm 文件。

  2. location ~ .php$ { ... }: 这个配置块定义了当请求以 .php 结尾时应该如何处理。这里使用了正则表达式 ~ .php$,表示匹配以 .php 结尾的URL。在这个配置块中:

    • root /usr/share/nginx/html;: 指定了PHP文件的根目录,即PHP文件所在的文件夹。
    • fastcgi_pass 127.0.0.1:9000;: 指定了Nginx将PHP请求通过本地的9000端口转发给PHP-FPM(FastCGI Process Manager)进行处理。PHP-FPM是PHP的一个处理器,用于管理PHP进程。
    • fastcgi_index index.php;: 指定了当请求不带文件名时,默认加载的PHP文件为 index.php
    • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;: 设置了fastcgi_param参数 SCRIPT_FILENAME,告诉PHP解析器要执行的PHP文件路径。
    • include fastcgi_params;: 包含了一个额外的文件 fastcgi_params,该文件中包含了一些默认的FastCGI参数设置。

通过以上配置,Nginx就能够正确地处理PHP请求,并将这些请求转发给PHP-FPM进行处理,从而实现了Nginx与PHP的集成。

2.配置Mysql

a.获取 root 用户的初始密码

在终端输入代码

systemctl start mysqld grep 'temporary password' /var/log/mysqld.log 

这是临时密码zT后面就是临时密码

不要单独输入第一行代码,不然会出现图示第二行现象,直接复制黏贴进去全部。

b.配置 MySQL 的安全性

 mysql_secure_installation 

 

第一行Enter password for user root:输入刚刚zT那个临时密码,然后输入过程不可见,屏幕不显示

New password是设置的:输入新密码。长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号

Re-enter new password是重复输入你刚刚设置的新密码

Chan the 后面输入大写Y就行

之后他还会显示New password:你就再输入你设置的密码 

Do you 后面输入Y即可

b.删除匿名用户

 

Y需要你自己手动输进去

c.禁止 root 远程登录

Y自己手动输入

d.删除test库以及用户对test库的访问权限

Y自己手动输入

e.重新加载授权表

3.配置PHP

a.获取网站根目录

输入命令

vim /etc/nginx/nginx.conf

进入后查看root后配置参数是否为图示 

是你在nginx.conf配置文件中location ~ .php$大括号内,配置的 root 参数值。

b.新建phpinfo.php文件,用于展示PHP信息

终端输入代码

vim /usr/share/nginx/html/phpinfo.php

进入这个页面

按i进入插入模式插入代码

<?php echo phpinfo(); ?>

 

之后按ESC退出插入模式,按“:wq”退出vim模式

启动服务 

在Xshell输入代码

systemctl restart nginx mysqld php-fpm systemctl enable nginx mysqld php-fpm 

显示

即为成功

验证LNMP是否部署成功

 a.在Windos浏览器中输入“你的阿里云公网ip地址+phpinfo.php”显示以下页面即为成功

b.验证 mysql 与 php 连通性是否正常

输入

mysql -uroot -p

登录数据库

输入刚刚创建的密码 

输入

create database wordpress;

创建库 

输入

 grant all on wordpress.*  to 'wordpress'@'%'  identified by '刚刚满足数字 字母特殊符号的密码'; grant all on wordpress.*  to 'wordpress'@'localhost'  identified by '和上述一样';

创建库并授权

 注意代码不要直接复制直接自己打上去

 接着输入

cat >/usr/share/nginx/html/mysql.php<<'EOF'

 

然后把这个代码复制进去

<?php $servername = "localhost"; $username = "wordpress"; $password = "123456";  // 创建连接 $conn = mysqli_connect($servername, $username, $password);  // 检测连接 if (!$conn) {     die("Connection failed: " . mysqli_connect_error()); } 	echo "php连接MySQL数据库成功"; ?> EOF 

在网站中输入你的阿里云ip地址+mysql.php就可以看到

 就为成功

一些错误及方案

有一些会打开后会显示无法连接问题

解决方案:打开阿里云服务器官网手动打开80端口,但默认是开启的

具体开启教程:阿里云服务器80端口开通教程(在安全组中配置规则)-阿里云开发者社区 (aliyun.com)

第二解决方案:下载telnet查看防火墙问题

代码:

yum install telnet

下载telnet

输入

telnet 127.0.0.1 80

 如果正常,那就是阿里云防火墙问题,如果不正常就是云服务器防火墙问题。前提是Nginx能打开

正常的情况是出现

输入 

 netstat -nap  |  grep 80 

这个命令 是查看80端口是否被Nginx正常绑定 

不要在虚拟机上运行整篇文章代码,在虚拟机上运行的话,结果是只能在你虚拟机网站上能看到部署成功,要在云服务器上来部署。

部署Wendasnsn

1.安装Apache

停止nginx服务

systemctl stop nginx

安装Apache

yum -y install httpd

 启动Apache

systemctl start httpd

验证Apache,浏览器输入http://云服务器实例的公网IP

 

验证PHP和Mysql功能

将nginx目录下的phpinfo.php和mysql.php复制至目录/var/www/html中,并在浏览器输入http://云服务器实例的公网IP/phpinfo.php和mysql.php 

复制的命令为:

cp /usr/share/nginx/html/phpinfo.php /var/www/html/ cp /usr/share/nginx/html/mysql.php /var/www/html/

在浏览器中输入云服务器IP+phpinfo.php显示

注意看第三行是Sever API

然后打开云服务器IP+mysql.php 

显示

即为成功

有些可能有错误会显示一长串未知代码

解决方案是把mysql.php文件清空,然后把这一串代码复制进去

<?php $servername = "localhost"; $username = "root"; $password = "xxxx";//替换成root的密码 // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if (!$conn)  {die("Connection failed: " . mysqli_connect_error()); } echo "php连接MySQL数据库成功"; ?>

 2.上传Wendasns软件包

先使用命令

sudo yum install lrzsz -y

下载rz命令包

然后使用命令

cd /var/www/html/ rz -b 

从Windows导入Wendasns软件包到云服务器

使用这俩命令后显示

选取文件名为 Wendasns-v2.0.2打开

接着解压至指定目录

使用命令

unzip Wendasns-v2.0.2.zip -d wendasns

是解压刚刚传的的压缩包至指定目录

使用这个命令可能会出现以下情况

原因是unzip命令没下载

下载unzip命令:

sudo yum install unzip

 

之后就可以用该命令了

因为Wendasns对环境版本要求较高所以改为WordPress

与上述一致,第一步下载WordPress官网下载地址:下载最新版本Download – WordPress.org China 简体中文

和上述一样用命令

cd /var/www/html/ rz -be  

 导入Wordpress软件包

使用命令

unzip wordpress-6.5.2-zh_CN.zip

 解压至指定目录

之后使用命令

cd wordpressls ls

查看内容

显示

即为成功

3.以Apache为例,修改Apache主目录至wordpress:

使用命令

vim /etc/httpd/conf/httpd.conf

 

把<Director 改为:

其他不要动,按ESC退出插入模式

 接着重启Apache

systemctl restart httpd

之后再浏览器输入云服务器IP后弹出这个即为成功

 点击现在开始

之后千万不要点提交! 

要先在数据库命令行中手动创建wordpress数据库再在上图中点击提交

进入数据库命令

mysql -u root -p

再mysql命令中输入以下代码

CREATE  DATABASE wordpress CHARACTER  SET  utf8mb4  COLLATE utf8mb4_unicode_ci;

输入之后如果显示

 

 代表数据库已创建

那么在上述页面中直接点提交就行了

接着,弹出来是这个页面

把框里面的东西复制一下,然后再xshell中手动创建一个名为wp-config.php的文件

手动创建的代码为:

vim wp-config.php

把你刚刚复制的东西粘贴进去就ok,之后点击运行安装程序

如果不想手动创建

则进入目录/var/www/html/修改权限即可

进入在这个目录 

cd /var/www/html/

使用代码

chmod 777 -R wordpress

 赋予权限

之后你点进去就会变成

继续点击运行安装程序就可 

 

登录后显示这个即为成功 

浏览器输入公网ip为这样

 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!