手把手带你搭建LNMP架构!理论+实战教程

1、什么是LNMP架构

LNMP==Linux+Nginx+Mysql(mariabd)+PHP

Linux:

手把手带你搭建LNMP架构!理论+实战教程

Linux是一套免费使用和自由传播的开源程序,是一个基于POSIX和UNIX的多用户、多任务、支持多 线程和多CPU的操作系统。被广泛的用于服务器、安卓系统等其它各种设备系统中所使用。

nginx:

手把手带你搭建LNMP架构!理论+实战教程

Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP 缓存。 Nginx 是免费 的开源软件,根据类 BSD 许可证的条款发布。

mysql:

手把手带你搭建LNMP架构!理论+实战教程

MySQL 在 Web 托管应用程序中非常流行,因为它具有大量的 Web 优化功能,如 HTML 数据类型,并 且因为它是免费提供的。它是 Linux,Apache,MySQL,PHP(LAMP)架构的一部分,这是一种经 常用于交付和支持高级 Web 应用程序的平台组合。MySQL 运行着一些着名网站的后端数据库,包括 维基百科,谷歌和 Facebook–尽管它具有分散的,免费的哲学,但它的稳定性和稳健性的证明。

php:

手把手带你搭建LNMP架构!理论+实战教程

(一)开源性和免费性

由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外, PHP 运行环境的使用也是免费的。

(二)快捷性

PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操 作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性 很强。

(三)数据库连接的广泛性

PHP可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle等,PHP是利用编译的不同函数 与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。

(四)面向过程和面向对象并用

在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一 起混用,这是其它很多编程语言是做不到的。

2、LNMP原理

手把手带你搭建LNMP架构!理论+实战教程

lnmp架构简介

2.1 LNMP架构的基本定义

手把手带你搭建LNMP架构!理论+实战教程

LAMP=Linux+Apache+Mysql+PHP

LNMP=Linux+Nginx+Mysql+PHP

LAMP的架构LAMP是一个多C/S架构的平台,最初级为web客户端基于TCP/IP通过http协议发起传送, 这个请求可能是静态的也可能是动态的。所以web服务器通过发起请求的后缀来判断,如果是静态的就 由web服务器自行处理,然后将资源发给客户端。如果是动态的web服务器会通过CGI(Common Gateway Interfence)协议发起给php。这里但是如果php以模块形式与web服务器联系,那么它们是 通过内部共享内存的方式,如果是php与单独的放置与一台服务器,那么它们是以sockets套接字的方式 进行通信(这又是一个C/S架构),这时php会相应的执行一段程序,如果在程序执行时需要一些数据, 那么php就会通过 mysql协议发送给mysql服务器(这也可以看作是一个C/S架构),由mysql服务器处 理,将数据供给php程序。

2.2 LNMP架构的深层剖析

NGINX

NGinx是一款高性能的web服务器,本身是不能处理php请求的,当接收到请求时,判断如果是 php请求就会将请求交给php解析器处理然后将结果返回给client。Nginx一般把请求转发给fast-cgi管理 进程进行处理,fast-cgi管理进程再选择cgi子进程处理请求,然后把结果返回给Nginx。

Apache+php和nginx+php的区别:

apache一般是把php当作自己的一个模块来启动;而nginx则是把http请求变量转发给php进程,即 php独立进程,与Nginx通信,这种方式叫做fast-cgi运行方式,所以apache编译的php不能用于 nginx。

Fast-Cgi:

Fast-Cgi是一个可伸缩的,高速的HTPP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持fast-cgi,包括apache,nginx和lighttpd等。同时fast-cgi也被许多脚本语言支持,其中就 有php。Fast-CGI是从CGI发展改进而来的。传统的CGI接口方式的主要缺点是性能很差,因为每次 HTTP服务器遇到动态程序时都需要重新启动脚本解析器来进行解析,然后将结果返回给http服务器。 这里在处理高并发访问时几乎是不可用的。另外传统的CGI接口接口方式的安全性也很差,现在已经很 少使用了。

Fast-CGI接口方式采用C/S结构,可以将http服务器和脚本解析服务器分开,同时在脚本解析服务 器上启动一个或者多个脚本解析器守护进程。当HTTP服务器每次遇到动态程序时,可以直接将其交给 Fast-CGI进程来执行,然后将的得到的结果再返回给浏览器。这种方式可以让HTTP服务器专一的处理静 态请求或者将动态脚本服务器的结果返回给客户端。这再很大程度上提高了应用程序的性能。

Nginx+Fast-CGI的运行原理:

Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过fast-cgi接口 来调用。Fast-cgi接口在Linux下是socket(这个socket可以是文件socket,也可以是ip socket)。

wrapper:为了调用CGI程序,还需要一个Fast-cgi的wrapper(wrapper也可以理解为用于启动另外一 个程序的程序),这个wrapper绑定在某个固定的socket上,如端口或者文件socket。当Nginx将CGI请 求发送给这个socket的时候通过Fast-CGI的接口,wrapper接收到一个请求,然后fork派生出一个新的 线程,这个线程调用解析器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通 过Fast-cgi接口,沿着固定的socket传递给Nginx;最后Nginx将返回的数据(html页面或者图片)发送 给客户端。

下图为Nginx+Fast-CGI的整个运行过程:

手把手带你搭建LNMP架构!理论+实战教程

因此,首先需要一个wrapper,这个wrapper需要完成的工作:

(1)通过调用Fast-CGI(库)的函数通过socket和Nginx通信(读写socket是fast-cgi内部实现的功 能,对wrapper是非透明的)

(2)调度thread,进行fork和application进行通信

php-fpm简述:

PHP-FPM是一个PHP FastCGI管理器,是只用于php的,它其实是php源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的源代码中,在编译安装php后才可以使用。新版的 PHP已经集成了php-fpm,在./configure的时候带–enable-fpmp参数即可开启PHP-FPM。

fastcgi的特点。

LNMP架构工作流程

LNMP的工作原理

首先由浏览器发送http request请求给到服务器(Nginx),服务器响应并处理web请求,将一些 静态的资源(CSS,图片,视频)保存到服务器上,然后将php脚本通过接口传输协议(网关协议) PHP-FCGI(fast-cgi)传输给php-fpm(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用php 解析器进程,php解析器解析php脚本信息,php解析器进程可以启动多个,进行并发执行。然后将解 析后的脚本返回到PHP-FPM,PHP-FPM通过fast-cgi的形式将脚本信息传送给Nginx。服务器在通过 http reponse的形式传送给浏览器。浏览器再进行解析与渲染后进行呈现。

LNMP的工作流程

用户发送http请求到达http服务器

httpd解析URL获取需要的资源的路径,通过内核空间来读取硬盘资源,如果是静态资源,则构建响应报文发回给用户。

如果是动态资源,将资源地址发送给php解析器,解析php程序文件,解析完毕将内容发回给httpd, httpd构建响应报文,发回给用户。

如果涉及到数据库操作,则利用php-mysql驱动,获取数据库数据,返回给PHP解析器。

LNMP架构与LAMP架构

Lnmp架构与Lamp架构相似,只不过一个用的是Apache一个用的Nginx。Nginx和Apache一样都是web服务器。

LNMP架构里php会启动服务php-fpm,而LAMP中php只是作为Apache的一个模块存在。Nginx会把 用户的动态请求交给php服务去做处理,这个php服务就会去和数据库进行交互。用户的静态请求 Nginx会直接处理,Nginx处理静态请求的速度要比Apache快很多性能上要好,所以apache和Nginx在 动态请求处理上区别不大,但是如果是静态处理的话就会发现Nginx要快于apache,而且Nginx能承受 的并发量要比apache大,可以承受好几万的并发连接量,所以大一些的网站都会使用Nginx作为web服 务器。

3、LNMP搭建

手把手带你搭建LNMP架构!理论+实战教程

3.1、搭建WEB服务器

3.1.1、二进制部署nginx

nginx下载地址:http://nginx.org/download/

范例:

1、下载相关依赖包
[13:29:31 root@WEB ~]#yum install -y gcc gcc-c++ glibc glibc-devel pcre pcredevel openssl openssl-devel systemd-devel net-tools iotop bc zip unzip zlibdevel bash-completion nfs-utils automake libxml2 libxml2-devel libxslt libxsltdevel perl perl-ExtUtils-Embed

2、创建nginx用户
[13:31:45 root@WEB ~]#useradd -s /sbin/nologin nginx -u 2000

3、进入/usr/local/src/目录并下载nginx
[13:32:06 root@WEB ~]#cd /usr/local/src/;wget http://nginx.org/download/nginx1.18.0.tar.gz

4、解压nginx
[13:40:26 root@WEB src]#tar xf nginx-1.18.0.tar.gz

5、进入nginx解压好之后的目录,并生成编译环境。
[13:46:29 root@WEB src]#cd nginx-1.18.0/
[13:47:36 root@WEB nginx-1.18.0]#./configure --prefix=/apps/nginx --user=nginx -
-group=nginx --with-http_ssl_module --with-http_v2_module --withhttp_realip_module --with-http_stub_status_module --with-http_gzip_static_module
--with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

6、编译&安装
[13:50:58 root@WEB nginx-1.18.0]#make -j 4 && make install

7、修改nginx配置文件使其支持php-fpm服务。
[13:51:54 root@WEB nginx-1.18.0]#vim /apps/nginx/conf/nginx.conf

user nginx;
worker_processes 1;

events {
	worker_connections 1024;
	}

http {
	include mime.types;
	default_type application/octet-stream;
  
sendfile	 on;
  
keepalive_timeout 65 65;
server_tokens off;
  
server {
listen 80;
server_name 10.0.0.27;
charset utf-8;
  
location / {
	error_page 500 502 503 504 404 /50x.html;
	root /apps/nginx/html/;
	index index.php index.html index.htm;
}
location = /50x.html {
	root 	html;
	}
location ~ .php$ {
	root /apps/nginx/html/;
	fastcgi_pass 127.0.0.1:9000;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include fastcgi_params;
	}
}
}
8、启动nginx服务、查看端口80已打开
[13:55:29 root@WEB nginx-1.18.0]#/apps/nginx/sbin/nginx
[13:56:27 root@WEB nginx-1.18.0]#ss -ntl | grep 80
LISTEN 0 128 *:80 *:*

3.1.2、nginx配置文件解析

#因为我们在生成编译环境的时候--prefix=/apps/nginx 参数制定了nginx的安装目录,所以我们在编辑在nginx的配置文件就直接到/apps/nginx目录下。

#nginx配置文件详解:

user nginx; #全局配置端,对全局生效,主要设置nginx的启动用户/组,启动的工作进程数量,工作模式,Nginx的PID路径,日志路径等。

worker_processes 1; #启动工作进程数数量 ,这个值默认是1(正常情况下是我们

events { #events设置块,主要影响nginx服务器与用户的网络连接,比如是否允许同时接受多个网络连接,使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最大连接数,是否开启对多工作进程下的网络连接进行序列化等。

worker_connections 1024; #设置单个nginx工作进程可以接受的最大并发,作为web服务器的时 候最大并发数为worker_connections * worker_processes,作为反向代理的时候为 要除以2(worker_connections * worker_processes)/2 因为作为反向代理的时候是自身来处理,所以本身扛得住。
}

http { #http块是Nginx服务器配置中的重要部分,缓存、代理和日志格式定义等绝大多数功能和第三方模块都可以在这设置,http块可以包含多个server块,而一个server块中又可以包含多个location块,server块可以配置文件引入、MIME-Type定义、日志自定义、是否启用sendfile、连接超时时间和单个链接的请求上限等。

      include mime.types; #支持的mime类型,MIME(Multipurpose Internet MailExtensions)多用途互联网邮件扩展类型,MIME消息能包含文本、图像、音频、视频以及其他应用程序专用
的数据,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器
会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

default_type application/octet-stream; #默认类型应用程序/八进制

      sendfile on; #作为web服务器的时候打开sendfile加快静态文件传输,指定是否使用
sendfile系统调用来传输文件,sendfile系统调用在两个文件描述符之间直接传递数据(完全在内核中操
作),从 而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,操作效率很高,被称之为零拷贝,硬盘 >>
kernel buffer (快速拷贝到kernelsocket buffer) >>协议栈。

      keepalive_timeout 65 65; #长连接超时时间,单位是秒 通常加两个,让客户端和服务器的持续
链接时间相同

server_tokens off; #安全优化-隐藏版本号

      server { #设置一个虚拟机主机,可以包含自己的全局块,同时也可以包含多个location模
块。比如本虚拟机监听的端口、本虚拟机的名称和IP配置,多个server 可以使用一个端口,比如都使用80
端口提供web服务、本身可以多次监听同一个端口

listen 80; #配置server监听的端口默认监听所有80

server_name 10.0.0.7; #本server的名称,当访问此名称的时候nginx会调用当前serevr内
部的配置进程匹配nginx可以有多个虚拟主机,只要使用域名区分即可。

charset utf-8; #设置编码格式,默认是俄语格式,可以改为utf-8 让他支持全球标准语法

location / { #location其实是server的一个指令,为nginx服务器提供比较多而且灵活的指令,
都是在location中提现的,主要是基于nginx接受到的请求字符串,对用户请求的UIL进行匹配,并对特定
的指令进行处理,包括地址重定向、数据缓存和应答控制等功能都是在这部分实现,另外很多第三方模块的配
置也是在location模块中配置。

            error_page 500 502 503 504 404 /50x.html; #出现这几个状态即可跳转到
50x.html文件

            root /apps/nginx/html/; #定义错误页面的时候做的处理,这个50x.html其实是一个文件。

            index index.php index.html index.htm; #nginx配置默认首页
}

              location = /50x.html {
              root html;
}

      ocation ~ .php$ { #以http的方式转发php请求到指定web服务器

      root /apps/nginx/html/; #php文件存放路径

      fastcgi_pass 127.0.0.1:9000; #指明后端php-fpm服务器主机及端口

      fastcgi_index index.php; #默认使用的php文件

      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

      #这个配置的意思是 在浏览器中访问的.php文件,实际读取的是 $document_root(网站根目录)下的.php
文件 -- 也就是说当访问127.0.0.1/index.php的时候,需要读取网站根目录下面的index.php文件,如
果没有配置这一配置项时,nginx不回去网站根目录下访问.php文件,所以返回空白
include fastcgi_params; #这里面写的是一堆变量

3.1.3、测试web服务

搭建好了nginx之后我们就去通过浏览器访问测试

手把手带你搭建LNMP架构!理论+实战教程

3.2、二进制搭建php服务

编译好了nginx之后我们开始解决nginx的php问题。

php官方下载:https://www.php.net/downloads.php

范例:

1、进入/usr/local/src/目录
[13:56:31 root@WEB nginx-1.18.0]#cd /usr/local/src/
  
2、解决php依赖关系
[14:01:15 root@WEB src]#yum install libxml2-devel bzip2-devel libmcrypt-devel
sqlite-devel -y

3、php-fpm官方下载安装包
[14:04:09 root@WEB src]#wget https://www.php.net/distributions/php-7.4.7.tar.gz

4、解压php安装包
[14:04:37 root@WEB src]#tar xf php-7.4.7.tar.gz

5、进入php目录,并生成编译环境
[14:06:36 root@WEB src]#cd php-7.4.7/
[14:07:21 root@WEB php-7.4.7]#./configure --prefix=/app/php --enable-mysqlnd --
with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-freetype-dir
--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-configfile-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-mbstring --
enable-xml --enable-sockets --enable-fpm --enable-maintainer-zts --disablefileinfo --disable-mbregex

6、编译安装
[14:10:56 root@WEB php-7.4.7]#make -j 4 && make install

7、系统使用php.ini中的设置拷贝在/etc/目录下
[14:12:26 root@WEB php-7.4.7]#cp -f php.ini-production /etc/php.ini

8、拷贝启动脚本到systemd中、使用systemd启动服务
[14:12:28 root@WEB php-7.4.7]#cp -f sapi/fpm/php-fpm.service
/usr/lib/systemd/system/
  
9、拷贝www.conf.default配置文件为www.conf
[14:13:32 root@WEB php-7.4.7]#cp /app/php/etc/php-fpm.d/www.conf.default
/app/php/etc/php-fpm.d/www.conf
[14:14:56 root@WEB php-7.4.7]#ll /app/php/etc/php-fpm.d/
total 40
-rw-r--r-- 1 root root 19675 Jun 19 14:14 www.conf
-rw-r--r-- 1 root root 19675 Jun 19 14:10 www.conf.default

10、修改www.conf配置文件内容、主要修改user、group、listen这三项
[11:15:31 root@a7 etc]#vim /app/php/etc/php-fpm.d/www.conf
22 ; will be used.
23 user = nginx #改为用户为nginx、让nginx启动php
24 group = nginx #组也改为nginx
25
26 ; The address on which to accept FastCGI requests.
27 ; Valid syntaxes are:
28 ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific I
Pv4 address on
29 ; a specific port;
30 ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific I
Pv6 address on
31 ; a specific port;
32 ; 'port' - to listen on a TCP socket to all addresse s
33 ; (IPv6 and IPv4-mapped) on a specific port ;
34 ; '/path/to/unix/socket' - to listen on a unix socket.
35 ; Note: This value is mandatory.
36 listen = 0.0.0.0:9000 #网段写为0.0.0.0主要是为了好让nginx监听该端口
11、将php的配置文件目录下拷贝为php-fpm.conf
[14:18:02 root@WEB php-7.4.7]#cp /app/php/etc/php-fpm.conf.default
/app/php/etc/php-fpm.conf

启动php:

范例:

1、重新加载系统服务,并启动php-fpm、和查看9000端口
[14:20:03 root@WEB php-7.4.7]#systemctl daemon-reload
[14:21:16 root@WEB php-7.4.7]#systemctl enable --now php-fpm.service
[14:21:23 root@WEB php-7.4.7]#ss -ntl | grep 9000
LISTEN 0 128 *:9000 *:*

3.2.1 测试PHP

在nginx的html目录下编一个php测试页面

范例:

[14:21:53 root@WEB php-7.4.7]#vim /apps/nginx/html/test.php

<?php
phpinfo();
?>

打开http://10.0.0.27/test.php显示php测试页面、说明nginx现在已经支持PHP服务

手把手带你搭建LNMP架构!理论+实战教程

3.3、二进制安装数据库

mariadb数据库下载地址:https://mirrors.tuna.tsinghua.edu.cn/mariadb/

安装10.5.3范例:

1、通过在清华源上下载10.5.3版本的mariadb数据库
[13:29:50 root@MYSQL ~]#wget
https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-10.5.3/bintar-linuxsystemd-x86_64/mariadb-10.5.3-linux-systemd-x86_64.tar.gz

2、创建mysql用户并创建家目录
[14:29:49 root@MYSQL ~]#useradd mysql -s /sbin/nologin -M

3、创建自定义数据库目录
[14:30:00 root@MYSQL ~]#mkdir /data/mysql/mysql3306/{data,binlog,logs,tmp} -p

4、对mysql3306这个目录进行授权,授权给mysql用户
chown -R mysql.mysql /data/mysql/mysql3306/
  
5、安装相关依赖包
[14:30:58 root@MYSQL ~]#yum install libaio.x86_64 libaio-devel.x86_64 novacomserver.x86_64 libedit -y

6、解压mariadb安装包、指定解压到/usr/local
[14:32:07 root@MYSQL ~]#tar xf mariadb-10.5.3-linux-systemd-x86_64.tar.gz -C
/usr/local/

  7、进入到/usr/local/src目录下添加一个mysql的软连接
[14:33:36 root@MYSQL ~]#cd /usr/local/
[14:33:52 root@MYSQL local]#ln -s mariadb-10.5.3-linux-systemd-x86_64/ mysql

8、提示:初始化时要在/usr/local/mysql/ 目录下创建一个空的影藏文件.my.cnf文件,否则会提示文
件不存在,导致初始化失败。这是新版mariadb的特性
[14:34:11 root@MYSQL local]#cd /usr/local/mysql/;touch .my.cnf

9、初始化命令
[14:34:51 root@MYSQL mysql]#./scripts/mysql_install_db --user=mysql --
basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data --defaultsfile=./.my.cnf

10、修改/etc/my.cnf配置文件、指定数据库存放目录、和socket文件路径。
[14:35:18 root@MYSQL mysql]#vim /etc/my.cnf
[mysqld]
datadir=/data/mysql/mysql3306/data
socket=/tmp/mysql.sock

11、初始化好了就配置mariadb启动方式为systemd启动
[14:36:15 root@MYSQL mysql]#cp support-files/systemd/mariadb.service
/usr/lib/systemd/system/mariadb.service

12、设置为开机启动、检查3306端口已开启
[14:37:21 root@MYSQL mysql]#systemctl enable --now mariadb
[14:37:12 root@MYSQL mysql]#ss -ntl | grep 3306
LISTEN 0 80 [::]:3306 [::]:*

  13、做软连接,通过mysql命令来进入交互模式
[14:37:55 root@MYSQL mysql]#ln -s /usr/local/mysql/bin/mysql /usr/bin/

  14、登录mysql服务
[14:39:03 root@MYSQL mysql]#mysql
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 3
Server version: 10.5.3-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]>

3.3.1、授权wordpress用户权限和数据库

范例:

1、创建一个为wordpress网页提供服务的WEB数据库
MariaDB [(none)]> create database WEB;
Query OK, 1 row affected (0.001 sec)
2、创建一个zgy用户来对WEB数据库的所有操作、并且指定IP为10.0.0.27 web服务器IP密码为12345
MariaDB [(none)]> grant all on WEB.* to zgy@'10.0.0.27' identified by "12345";
Query OK, 0 rows affected (0.001 sec)

3.4、安装wordpress wordpress

下载地址:https://cn.wordpress.org/download/

手把手带你搭建LNMP架构!理论+实战教程

web服务器主机上下载并安装wordpress

范例:

1、进入到/usr/local/src通过wget下载wordpress
[14:23:16 root@WEB php-7.4.7]#cd /usr/local/src/
[14:47:17 root@WEB src]#wget https://cn.wordpress.org/latest-zh_CN.tar.gz

2、解压wordpress安装包
[14:48:43 root@WEB src]#tar xf latest-zh_CN.tar.gz

3、进入wordpress文件,然后拷贝php文件,并将wordpress动到nginx的html文件下
[14:49:17 root@WEB src]#cd wordpress/
[14:49:50 root@WEB wordpress]#cp wp-config-sample.php wp-config.php
[14:50:10 root@WEB wordpress]#cd ..
[14:50:16 root@WEB src]#mv wordpress/ /apps/nginx/html/

  4、编辑wordpress调用数据配置文件
[14:50:25 root@WEB src]#vim /apps/nginx/html/wordpress/wp-config.php

/** WordPress数据库的名称 */
define( 'DB_NAME', 'WEB' );

/** MySQL数据库用户名 */
define( 'DB_USER', 'zgy' );

/** MySQL数据库密码 */
define( 'DB_PASSWORD', '12345' );

/** MySQL主机 */
define( 'DB_HOST', '10.0.0.37' );

/** 创建数据表时默认的文字编码 */
define( 'DB_CHARSET', 'utf8' );

/** 数据库整理类型。如不确定请勿更改 */
define( 'DB_COLLATE', '' );

5、修改nginx配置文件把html显示页面的根改为wordpress目录
[14:54:54 root@WEB src]#vim /apps/nginx/conf/nginx.conf
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65 65;
server_tokens off;
server {
listen 80;
server_name 10.0.0.27;
charset utf-8;
location / {
error_page 500 502 503 504 404 /50x.html;
root /apps/nginx/html/wordpress; #因为要将wordpress作为网络目录
index index.php index.html index.htm;
}
location = /50x.html {
root html;
}
location ~ .php$ {
root /apps/nginx/html/wordpress; #因为要将wordpress作为网络目录
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}

4、浏览器访问测试wordpress已经搭好

浏览器访问我们的web服务器IP: http://10.0.0.27

手把手带你搭建LNMP架构!理论+实战教程

创建wordpress信息

手把手带你搭建LNMP架构!理论+实战教程

登录wordpress

手把手带你搭建LNMP架构!理论+实战教程

登录仪表盘

手把手带你搭建LNMP架构!理论+实战教程

手把手带你搭建LNMP架构!理论+实战教程

展开阅读全文

页面更新:2024-04-27

标签:架构   手把手   端口   静态   脚本   实战   进程   接口   理论   方式   服务器   数据库   文件   目录   程序   教程   动态   数据   用户   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top