一. 什么是LNMP
首先LNMP是目前主流的网站平台之一
* L:Linux操作系统
* N:Nginx网站服务软件
* M:MysqL、MariaDB数据库
* P:网站开发语言(PHP、Perl、Python)
二.FastCGI工作原理
工作流程:
- @H_404_22@
web 服务端启动时将加载FastCGI进程管理器
FastCGI进程管理器初始化,启动多个解释器进程
客户端请求到达服务端时,FastCGI进程管理器选择并连接一个解释器
FastCGI简介:
FastCGI技术目前支持许多语言:PHP、C/C++、Java、Ruby、Python等。
FastCGI缺点是因为并发大而导致的内存消耗大。
-----
二. 部署LNMP环境
2.1 环境需求
安装部署Nginx、MariaDB、PHP环境
* 安装部署Nginx、MariaDB、PHP、PHP-FPM;
* 启动Nginx、MariaDB、FPM服务;
* 并测试LNMP是否工作正常。
2.2 实验使用方案
在RHEL7系统中,源码安装Nginx,使用RPM包安装MariaDB、 PHP、PHP-FPM软件。
操作过程中需要安装的软件列表如下:
* Nginx
* mariadb、mariadb-server、mariadb-devel
* PHP、PHP-fpm、PHP-MysqL
2.3 实验步骤
步骤一:软件包安装
1).使用yum安装基础依赖包
[root@proxy ~]# yum -y install gcc openssl-devel pcre-devel zlib-devel
2).使用源码安装Nginx
[root@proxy ~]# useradd -s /sbin/nologin Nginx [root@proxy ~]# tar -xvf Nginx-1.12.2.tar.gz [root@proxy ~]# cd Nginx-1.12.2 [root@proxy Nginx-1.12.2]# ./configure --user=Nginx --group=Nginx --with-http_ssl_module [root@proxy ~]# make && make install
[root@proxy ~]# yum -y install mariadb mariadb-server mariadb-devel [root@proxy ~]# yum -y install PHP PHP-MysqL [root@proxy ~]# yum -y install PHP-fpm-5.4.16-42.el7.x86_64.rpm
步骤二:启动服务
1).启动Nginx服务
需要注意的是Nginx使用的端口与httpd服务端口相同,所以先要停止httpd服务。
[root@proxy ~]# systemctl stop httpd //如果未开httpd服务则可不用此命令 [root@proxy ~]# /usr/local/Nginx/sbin/Nginx [root@proxy ~]# netstat -utnlp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 24679/Nginx
[root@proxy ~]# systemctl start mariadb //启动服务器 [root@proxy ~]# systemctl status mariadb //查看服务状态 [root@proxy ~]# systemctl enable mariadb //设置开机启动 [root@proxy ~]# systemctl start PHP-fpm [root@proxy ~]# systemctl status PHP-fpm [root@proxy ~]# systemctl enable PHP-fpm
3).设置防火墙与SELinux
[root@proxy ~]# firewall-cmd --set-default-zone=trusted [root@proxy ~]# setenforce 0
至此LNMP所有的安装与基本环境部署均已完成~
三.构建LNMP平台实验
2.1 环境需求
使用上述实验环境,通过配置Nginx服务端配置,达成LNMP的平台:
2.2 实验使用方案
使用2台RHEL7虚拟机,其中一台作为LNMP服务器(192.168.2.5)、另外一台作为测试用的Linux客户机(192.168.2.100)。
2.3 实验步骤
[root@proxy ~]# systemctl start PHP-fpm //启动服务 [root@proxy ~]# systemctl status PHP-fpm
[root@proxy ~]# vim /usr/local/Nginx/conf/Nginx.conf location / { root html; index index.PHP index.html index.htm; } location ~ \.PHP$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.PHP; #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi.conf; } [root@proxy ~]# /usr/local/Nginx/sbin/Nginx -s reload
[root@proxy ~]# vim /usr/local/Nginx/html/PHPtest1.PHP <?PHP $i="hello world"; echo $i; ?>
当此页面可以访问时,则可继续下面操作
[root@proxy ~]# vim /usr/local/Nginx/html/MysqLtest2.PHP <?PHP $MysqLi = new MysqLi('localhost','root','','MysqL'); //此处密码设置为空 if (MysqLi_connect_errno()){ die('Unable to connect!'). MysqLi_connect_error(); } $sql = "select * from user"; $result = $MysqLi->query($sql); while($row = $result->fetch_array()){ printf("Host:%s",$row[0]); printf("</br>"); printf("Name:%s",$row[1]); printf("</br>"); } ?>
3)测试访问页面
[root@client ~]# firefox http://192.168.2.5/MysqLtest2.PHP
LNMP常见问题(可用于排错)
Nginx的默认访问日志文件为/usr/local/Nginx/logs/access.log
Nginx的默认错误日志文件为/usr/local/Nginx/logs/error.log
PHP默认错误日志文件为/var/log/PHP-fpm/www-error.log
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。