搭建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

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

 

 

 

 

 

 

 

 

 

Docker可以用来快速地搭建LNMP(Linux、Nginx、MySQL、PHP)环境,这是一种常见的Web服务器配置。以下是使用Docker构建LNMP环境的基本步骤: 1. **安装Docker**: 首先,你需要在支持的Linux系统上安装Docker。对于Ubuntu,你可以通过运行`sudo apt-get update && sudo apt-get install docker-ce`命令。 2. **创建Dockerfile**: Dockerfile是一个文本文件,包含了一系列的指令,用于描述如何从基础镜像构建应用镜像。一个基本的Dockerfile可能会包括以下内容: ```Dockerfile FROM nginx:latest COPY . /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` 这里假设你有一个名为`index.html`的HTML文件作为静态网站内容,会将这个目录复制到Nginx的根目录下。 3. **构建镜像**: 打开终端,切换到Dockerfile所在的目录,然后运行`docker build -t your-image-name .`命令,这将基于Dockerfile构建一个新的镜像。 4. **运行容器**: 使用刚刚构建的镜像运行一个容器,例如: ``` docker run -d -p 80:80 your-image-name ``` `-d`表示后台运行,`-p 80:80`暴露主机端口80给容器内的80端口。 5. **数据库服务**: 对于MySQL,你可以用类似的方式创建另一个Docker镜像,如`mysql:5.7`,并设置数据持久化。然后在主应用容器中链接这两个容器。 6. **部署PHP**: 如果需要PHP-FPM,可以再创建一个包含PHP和PHP-FPM的镜像,并同样映射端口和数据卷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值