什么是LNMP
主流的企业网站平台之一
-L :linux操作系统
-N :nginx网站服务软件
-M :MySQL MariaDB 数据库
-P :网站开发语言 PHP Perl Python等
部署LNMP的环境
需要nginx,mariadb,php,php扩展,
需要的软件包:nginx
mariadb(数据库客户端软件)
mariadb-server(数据库服务器软件)
mariadb-devel(其他客户端软件的依赖包)
php(解释器)
php-fpm(进程管理器服务)
php-mysql(php数据库扩展包)
1.安装软件
nginx的搭建上一篇文章中有讲解
[root@xn8 ~]# yum -y install mariadb mariadb-server mariadb-devel
[root@xn8 ~]# yum -y install php php-mysql
[root@xn8 ~]# yum -y install php-fpm
2.启服务
start 启动服务
status 查看服务状态
restart 重启服务
enable 设置开机自启
[root@xn8 ~]# systemctl start mariadb
[root@xn8 ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@xn8 ~]# systemctl start php-fpm
[root@xn8 ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
搭建LNMP平台
FastCGI
FastCGI工作原理
web server启动时载入FastCGI进程管理器
FastCGI进程管理器初始化,启动多个解释器进程
当客户端请求到达web server时, FastCGI进程管理器选择并连接一个解释器
FastCGI子进程完成处理后返回结果,将标准输出和错误信息从同一连接返回web server
FastCGI缺点
内存消耗大
配置FastCGI
[root@xn8 ~]# vim /etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000
listen = 127.0.0.1:9000 //PHP端口号
pm.max_children = 32 //最大进程数量
pm.start_servers = 15 //最小进程数量
pm.min_spare_servers = 5 //最少需要几个空闲着的进程
pm.max_spare_servers = 32 //最多允许几个进程处于空闲状态
配置nginx
在这[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
#设置默认首页为index.php,当用户在浏览器地址栏中只写域名或IP,不说访问什么页面时,服务器会把默认首页index.php返回给用户
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000; #将请求转发给本机9000端口,PHP解释器
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf; #加载其他配置文件
}
创建php页面
<?php
$i="This is a test Page";
echo $i;
?>
创建动态php页面
[root@proxy ~]# vim /usr/local/nginx/html/mysql.php
<?php
$mysqli = new mysqli('localhost','root','密码','mysql');
//注意:root为mysql数据库的账户名称,密码需要修改为实际mysql密码,无密码则留空即可
//localhost是数据库的域名或IP,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@client ~]# firefox http://192.168.4.5/test.php
[root@client ~]# firefox http://192.168.4.5/mysql.php
常见错误
Nginx的默认访问日志文件为/usr/local/nginx/logs/access.log
Nginx的默认错误日志文件为/usr/local/nginx/logs/error.log
PHP默认错误日志文件为/var/log/php-fpm/www-error.log
如果动态网站访问失败,可用参考错误日志,查找错误信息。
来源:https://blog.csdn.net/MANlidong/article/details/99693025