构建LNMP平台

    xiaoxiao2022-07-14  189

    Nginx结合FastCGI技术即可支持PHP页面架构,如图所示。 php-fpm配置文件(不需要修改该文件) [root@proxy etc]# vim /etc/php-fpm.d/www.conf [www] 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 d o c u m e n t r o o t document_root documentrootfastcgi_script_name; include fastcgi.conf; } [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload #请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下: #[error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory) 创建PHP页面,测试LNMP架构能否解析PHP页面 [root@proxy ~]# vim /usr/local/nginx/html/test1.php

    <?php $i="This is a test Page"; echo $i; ?>

    创建PHP测试页面,连接并查询MariaDB数据库。

    <?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(""); printf("Name:%s",$row[1]); printf(""); } ?>

    客户端使用浏览器访问服务器PHP首页文档,检验是否成功: [root@client ~]# firefox http://192.168.4.5/test1.php [root@client ~]# firefox http://192.168.4.5/test2.php LNMP常见问题 Nginx的默认访问日志文件为/usr/local/nginx/logs/access.log Nginx的默认错误日志文件为/usr/local/nginx/logs/error.log PHP默认错误日志文件为/var/log/php-fpm/www-error.log 如果动态网站访问失败,可用参考错误日志,查找错误信息。 地址重写 修改配置文件(访问a.html重定向到b.html) [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf … … server { listen 80; server_name localhost; rewrite /a.html /b.html; location / { root html; index index.html index.htm; } } [root@proxy ~]# echo “BB” > /usr/local/nginx/html/b.html 重新加载配置文件 [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload 客户端测试 [root@client ~]# firefox http://192.168.4.5/a.html 访问a.html重定向到b.html(跳转地址栏) 修改Nginx服务配置: [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf … … server { listen 80; server_name localhost; rewrite /a.html /b.html redirect; location / { root html; index index.html index.htm; } } 重新加载配置文件 [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload #请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下: #[error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory) 客户端测试(仔细观察浏览器地址栏的变化) firefox http://192.168.4.5/a.html 修改配置文件(访问192.168.4.5的请求重定向至www.qq.com) [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf … … server { listen 80; server_name localhost; rewrite ^/ http://www.qq.com/; location / { root html; index index.html index.htm; } } 重新加载配置文件 root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload 客户端测试 修改配置文件(访问192.168.4.5/下面子页面,重定向至www.qq,com/下相同的页面) 修改Nginx服务配置 [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf … … server { listen 80; server_name localhost; rewrite ^/(.)$ http://www.qq.com/KaTeX parse error: Expected 'EOF', got '}' at position 65: …l index.htm; } }̲ 重新加载配置文件 [root…http_user_agent ~ firefox) { //识别客户端firefox浏览器 rewrite ^(.*)$ /firefox/$1; } } 重新加载配置文件 [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload #请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下: #[error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory) 客户端测试 [root@client ~]# firefox http://192.168.4.5/test.html [root@client ~]# curl http://192.168.4.5/test.html 地址重写格式【总结】 rewrite 旧地址 新地址 [选项]; last 不再读其他rewrite break 不再读其他语句,结束请求 redirect 临时重定向 permament 永久重定向

    最新回复(0)