LNMP指的是多款软件的集合。L指的是Linux系统,N指的是Nginx网站服务器,M指的是Mariadb数据库软件,P指的是php软件。Linux目前是一款最流行的免费开源的操作系统。Nginx可以做为高性能的HTTP和反向代理服务器,也可以作为IMAP/POP3/SMTP代理服务器。
关于Nginx学习与入门,可参考本人下面这篇文章,详细介绍了Nginx相关知识【https://www.qcloud.com/community/article/593436 】。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
[root@cc]# yum -y insstall gcc gcc-c++ make pcre pcre-devel openssl zlib
[root@cc]# tar -xf nginx-1.8.0.tar.gz -C /usr/local/ //解包
[root@cc]# cd /usr/local/nginx-1.8.0
[root@cc]# ./configure --with-http_ssl_module //配置
[root@cc]# make //编译
[root@cc]# make install //安装
[root@cc]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin //连接
Nginx软件包采用的是模块化的设计,模块分为内置模块和第三方模块。
Nginx服务器安装好之后,程序的主目录在/usr/local/nginx下,该目录下分别为conf(主配置文件目录),html(网页根目录),logs(日志文件目录),sbin(主程序目录)。Nginx默认无执行脚本,需要手动输入命令来管理。常用的命令如下:
[root@cc]# nginx
[root@cc]# nginx -s stop
[root@cc]# nginx -s reload
Nginx默认监听本机80端口。
Mariadb:多线程,多用户的SQL数据库管理系统。软件包:mariadb
,mariadb-server
;服务:mariadb
安装软件包:
[root@cc]# yum -y install mariadb mariadb-server mariadb-devel
重启服务
[root@cc]# systemctl restart mariadb
Mariadb默认监听本机3306端口。
PHP: 一种编程语言,最初用于设计生产动态网站。与PERL,PYTHON类似。软件包:php php-mysql php-fpm。php-fpm软件用来连接nginx。php-mysql用来连接数据库。
[root@cc]# yum –y install php php-mysql
[root@cc]# rpm -ivh php-fpm
php默认监听本机9000端口。
[root@cc]# nginx //前面已经做好软连接
[root@cc]# systemctl restart mariadb
[root@cc]# systemctl enable mariadb //开机自启动
[root@cc]# systemctl restart php-fpm
[root@cc]# systemctl enable php-fpm
Nginx只能处理静态的页面请求,php处理动态页面请求。当用户连接Nginx80端口时,首先由Nginx判断请求是静态还是动态,若是静态页面,Nginx直接将请求结果返回给客户机;若是动态页面,则nginx将请求转交给本机的9000端口。php监听本机9000端口,正好由php解释器去处理动态页面。最终将请求结果返回给Nginx,再由Nginx将结果返回给客户端。
php连接Mariadb数据库,进行数据的读取。
使用2台RHEL7虚拟机,其中一台作为LNMP服务器(192.168.4.5)、另外一台作为测试用的Linux客户机(192.168.4.100),如图-1所示。
[root@cc]# netstat -anutp | grep 80 //Nginx [root@cc]# netstat -anutp | grep 3306 //Mariadb [root@cc]# netstat -anutp | grep 9000 //php
[root@cc]# vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ { //修改Nginx连接php的配置部分
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
[root@cc]# vim /usr/local/nginx/html/test.php //php初始界面
<?php
phpinfo();
?>
客户端测试:
[root@cc]# firefox http://192.168.4.5/test.php
访问页面如图2:
[root@cc]# vim /usr/local/nginx/html/testmysql.php
...
vim /usr/local/nginx/html/test3.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>");
}
?>
...
客户端测试:
[root@cc]# firefox http://192.168.4.5/testmysql.php
测试结果如图3:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。