LNMP架构概述
Posted jkz1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LNMP架构概述相关的知识,希望对你有一定的参考价值。
web架构
# 需记住的端口()
ftp:21
ssh:22
telnet:23
rsync:873
http:80
php:9000
mysql:3306
...
LNMP架构概述
- Linux
- nginx
- MySQL
- PHP (代码解析器)
代码解析器各类代码:
- PHP (php代码)
- tomcat (Java代码)
- Resin (Java代码)
- Python (python代码)
LNMP架构的工作流程
[
# 1.用户通过http协议发起请求,请求会先抵达LNMP架构中的Nginx
# 2.Nginx会根据用户的请求进行判断,这个判断是有Location进行完成
# 3.判断用户请求的是静态页面,Nginx直接进行处理
# 4.判断用户请求的是动态页面,Nginx会将该请求交给fastcgi协议下发
# 5.fastgi会将请求交给php-fpm管理进程, php-fpm管理进程接收到后会调用具体的工作进程warrap
# 6.warrap进程会调用php程序进行解析,如果只是解析代码php直接返回
# 7.如果有查询数据库操作,则由php连接数据库(用户 密码 IP)发起查询的操作
# 8.最终数据由*mysql->php->php-fpm->fastcgi->nginx->http->use
部署LNMP
1. 安装nginx
## 可以先打开缓存(keepcache),然后把部署完的包打包,给下一台机子的时候就可以使用本地安装了
[root@web01 ~]# vim /etc/yum.conf
keepcache=1
# 1.更换官方源
[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# 2.安装nginx
[root@web01 ~]# yum install -y nginx
2. 安装php
# 1.先卸载系统自带的php5.4 (一般centos6里面会有,7没有)
[root@web01 ~]# yum remove php-mysql-5.4 php php-fpm php-common
# 2.更改php源
[root@web01 ~]# vim /etc/yum.repos.d/php.repo
[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
# 3.安装php
[root@web01 ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcachedphp71w-pecl-redis php71w-pecl-mongodb
3.统一Nginx和php的用户
注意:
php服务有两个配置文件
1.php-fpm.conf (管理php进程的相关配置文件)
2.php.ini (管理php的程序相关配置文件)
# 1.创建用户和用户组
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
# 2.让nginx使用www用户
[root@web01 ~]# vim /etc/nginx/nginx.conf
...
user www;
...
# 3.启动nginx并加入开机自启
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl enable nginx
# 4.修改php用户
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
user = www
group = www
# 5.启动php并加入开机自启
[root@web01 ~]# systemctl start php-fpm
[root@web01 ~]# systemctl enable php-fpm
4.安装部署mariadb(MySQL)
# 1.安装mariadb
[root@nginx ~]# yum install mariadb-server -y
# 2.启动服务,并加入开机自启
[root@web01 ~]# systemctl start mariadb
[root@web01 ~]# systemctl enable mariadb
# 3.给root用户密码
[root@web01 ~]# mysqladmin -uroot password ‘123‘
# 4.连接数据库
[root@web01 ~]# mysql -uroot -p123
MariaDB [(none)]>
5.使用nginx连接php
模块ngx_http_fastcgi_module
作用:nginx服务代理php服务
############### nginx服务代理php服务
例如:
location / { # 一般写~/.php$,下面还需加一个目录。
fastcgi_pass localhost:9000;
fastcgi_index index.php;
# 这个目录基本都写变量($document_root) index.php的一个变量
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
# 具体如何配置可以看/etc/nginx/conf.d/default.conf里面是怎么配置这个模块的
...
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000; # 代理后端的php服务本地IP和端口
fastcgi_index index.php; # 寻找的php页面
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # root和fastcgi_index的变量
include fastcgi_params; # 包含fastcgi_params里面的所有变量解析文件
...
5.1 修改nginx的配置文件连接php
# 修改配置文件
[root@web01 ~]# vim /etc/nginx/conf.d/php.conf
server {
listen 80;
server_name www.php.com;
# 当输入域名,没有接任何uri的时候,会走location /
location / {
# 站点目录:/code/wordpress
root /code/wordpress;
# index.php的代码,如果没有index.php,那么就找index.html页面
index index.php index.html;
}
# 当访问到区分大小写,以php结尾的url时
location ~ .php$ {
# 站点目录
root /code/wordpress;
# 代理后端的php服务
fastcgi_pass 127.0.0.1:9000;
# 默认页面时index.php
fastcgi_index index.php;
#当请求过来之后,会看这一行, 在/code/wordpress目录下 wp-admin/setup-config.php,交给php解析 (变量)
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#包含fastcgi 变量解析文件
include fastcgi_params;
}
}
5.2 检测nginx是否能连接成功php
# 1.域名解析
# 2.创建站点目录
[root@web01 ~]# mkdir -p /code/wordpress
# 3.在站点目录下,创建一个info.php,写入php代码
[root@web01 ~]# vim /code/wordpress/info.php
<?php
phpinfo();
?>
# 4.访问域名
# 5.成功后把info.php文件删了,据说这个文件很危险
www.php.com/info
[
代表连接成功,然后php通过开发写的代码连接mysql
6.部署wordpress
#### 这个是搭建博客的工具
操作MySQL
# 1.连接数据库
[root@web01 php]# mysql -uroot -p123
# 2.创建数据库
MariaDB [(none)]> create database wp;
# 3.查看是否创建成功
MariaDB [(none)]> show databases;
# 4.创建WordPress连接数据库的用户和密码
MariaDB [(none)]> grant all on wp.* to wp_user@‘localhost‘ identified by ‘111‘;
# 5.给站点目录授权
[root@web01 php]# chown -R www.www /code/wordpress/
# 6.在这个目录下解压你想要的博客主题样式 /code/wordpress/wp-content/themes
](https://imgchr.com/i/Y7yvQK)
[
](https://imgchr.com/i/Y76ESP)
[
](https://imgchr.com/i/Y7yORx)
然后就是登入了
搭建完成
以上是关于LNMP架构概述的主要内容,如果未能解决你的问题,请参考以下文章