搭建LNMP

web 服务器有那些:

Apache            nginx          Tenginx    Lighttpd  

Tomact         IBMWebsphere      jobss

 

LNMP

-L  liunx平台

-N   nginx 网站服务器

-M   mysql mariadb   数据库

-P    网站开放语言 (PHP python  perl)

 

任何网站F12 开发者工具

 

nginx可以5万的并发访问   apacha 可以2万并发访问

 

启动nginx 要检查httpd是否开启,80端口,端口只能做被一个软件占有

 

nginx -v 可以看到版本号

 

LNMP  (liunx+ nginx+ mysql mariadb+PHP python)

 

mariadb  做客户端软件  ##直接使用mysql命令

 

php (这是php的解释器)PHP 也是模块化的软件

 

php-mysql php连接到mysql数据库里

 

实验步骤:

环境准备:

1.使用yum安装相关依赖包

yum -y install gcc openssl-devel pcre-devel zlib-devel yum -y install mariadb mariadb-server mariadb-devel tar -xf lnmp_soft.tar.gz

cd lnmp_soft/ yum -y install php php-mysql yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm

 

++++++++++++++++++++++++++++++++++++++++++++++++

php-fpm-5.4.16-42.el7.x86_64.rpm

这个软件可以到www.centos.cn 下载 。可以到标准光盘里去找也可以到Everything ISO 里下载

 

 

 

 

启动nginx

[root@proxy lnmp_soft]# ss -ntulp | grep nginx [root@proxy lnmp_soft]# nginx [root@proxy lnmp_soft]# ss -ntulp | grep nginx tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=2232,fd=6),("nginx",pid=2231,fd=6))

 

启动mysql服务

 

[root@proxy ~]# systemctl  start mariadb

[root@proxy ~]# systemctl  enable mariadb

[root@proxy ~]# systemctl status mariadb

[root@proxy ~]# ss -ntulp | grep  :3306

tcp    LISTEN     0      50        *:3306                  *:*                   users:(("mysqld",pid=2490,fd=14))

 

启动php-fpm服务

[root@proxy ~]# systemctl start php-fpm; systemctl  enable  php-fpm

[root@proxy ~]# systemctl status php-fpm

[root@proxy ~]# ss -ntulp | grep php-fpm

tcp    LISTEN     0      128    127.0.0.1:9000 

 

4)设置防火墙与SELinux

 
  1. [root@proxy ~]# firewall-cmd --set-default-zone=trusted
  2. [root@proxy ~]# setenforce 0

搭建LNMP平台:

)查看php-fpm配置文件(实验中不需要修改该文件)

 
  1. [root@proxy etc]# vim /etc/php-fpm.d/www.conf
  2. [www]
  3. listen = 127.0.0.1:9000            //PHP端口号
  4. pm.max_children = 32                //最大进程数量  (起得越多,处理速度越快,但是内存要跟上)
  5. pm.start_servers = 15                //最小进程数量
  6. pm.min_spare_servers = 5            //最少需要几个空闲着的进程  (等候处理数据处理的进程)
  7. pm.max_spare_servers = 32            //最多允许几个进程处于空闲状态

这个文件就这几行有用,其他都是注释

 

 

 

 

修改Nginx配置文件并启动服务

 

[root@proxy ~]# vim  /usr/local/nginx/conf/nginx.conf

45         location / {

 46             root   html;

 47             index index.php index.html index.htm;

  1. #设置默认首页为index.php,当用户在浏览器地址栏中只写域名或IP,不说访问什么页面时,服务器会把默认首页index.php返回给用户

 48         }

..................

 67         location ~ \.php$ {

 68             root           html;    //(原理就是先找到脚本,再转发9000处理)

 69             fastcgi_pass   127.0.0.1:9000;     #将请求转发给本机9000端口,PHP解释器

 70             fastcgi_index  index.php;

 71             #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

 72             include        fastcgi.conf;

 73         }

:wq

 

重起nginx服务:

[root@proxy ~]# nginx -s reload    

 

创建PHP页面,测试LNMP架构能否解析PHP页面

[root@proxy ~]# vim  /usr/local/nginx/html/test1.php

[root@proxy ~]# firefox http://192.168.4.5/test1.php

[root@proxy ~]# cp lnmp_soft/php_scripts/mysql.php   /usr/local/nginx/html/test2.php

[root@proxy ~]# vim  /usr/local/nginx/html/test2.php

[root@proxy ~]# firefox  http://192.168.4.5/test2.php

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

nginx 是接受客户请求  80端口

php 执行代码      9000端口

mysql 是永久存储数据   3306端口

 

一个server是一个虚拟主机

location 是匹配用户的地址栏,同一个location可以写很多地址,(一个网站可以写入多个网页)

 

nginx的配置文件都是备份的,

[root@proxy ~]# ls  /usr/local/nginx/conf/

cert.key                koi-utf             scgi_params

cert.pem                koi-win             scgi_params.default

fastcgi.conf            mime.types          uwsgi_params

fastcgi.conf.default    mime.types.default  uwsgi_params.default

fastcgi_params          nginx.conf          win-utf

fastcgi_params.default  nginx.conf.default

 

4)LNMP常见问题

Nginx的默认访问日志文件为/usr/local/nginx/logs/access.log

Nginx的默认错误日志文件为/usr/local/nginx/logs/error.log

PHP默认错误日志文件为/var/log/php-fpm/www-error.log

如果动态网站访问失败,可用参考错误日志,查找错误信息。

模拟错误:

[root@proxy ~]# systemctl  stop php-fpm

[root@proxy ~]# firefox  http://192.168.4.5/test1.php

##什么报错,都没有看出来。

[root@proxy ~]# tailf  /usr/local/nginx/logs/error.log 

 Connection refused) while connecting to upstream,

       upstream: "fastcgi://127.0.0.1:9000"

 

[root@proxy ~]# nginx -s stop

[root@proxy ~]# firefox http://192.168.4.5/test1.php

连报错信息都没有:因为压根就没有进去。看日志也没有报错

 

 

 

 

 

 

 

 

 


版权声明:本文为weixin_42816196原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。