扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容介绍了“LNMP架构的搭建及应用部署方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联建站基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业绵阳服务器托管报价,主机托管价格性价比高,为金融证券行业服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。
一、准备工作:
Centos 7 服务器、光盘
MySQL 部署可参考博文:https://blog.51cto.com/14227204/2425596
Nginx 部署可参考博文:https://blog.51cto.com/14227204/2435579
准备 PHP 的源码包:https://pan.baidu.com/s/1WARKfQ5ndcL5t5MqXq13zg
提取码: 4zjx
二、安装 PHP 解析环境:
较新版本的 PHP 已经自带了 FPM 模块,用来对PHP解析实例进行管理、优化解析效率。所以需要在编译时 添加“--enable-fpm”来启动此模块。
[root@mysql /]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel [root@mysql /]# tar zxf php-5.5.38.tar.gz -C /usr/src/ [root@mysql php-5.5.38]# ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib && make && make install #配置及编译安装(过程较长)
安装完毕后的调整:
[root@mysql php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini [root@mysql /]# ln -s /usr/local/php5/bin/* /usr/local/bin/ [root@mysql /]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/ # 创建链接文件,方便命令使用
安装 ZendGuardLoader:(加速 Nginx 处理速度,可省略)
[root@mysql /]# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /usr/src/ [root@mysql /]# cd /usr/src/zend-loader-php5.5-linux-x86_64/ [root@mysql zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/ # 将 zend 文件复制到PHP目录中 [root@mysql /]# vim /usr/local/php5/php.ini # 写入以下两行 ............... zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so zend_loader.enable=1
配置 Nginx 支持 PHP环境:
若要让Nginx能够解析PHP网页,有两种方法可以选择:其一,充当中介,将访问PHP页面的web请求转交给其他服务器(LAMP)去处理;其二,通过使用PHP的FPM模块来调用本机的PHP环境。
1、启用php-pfm进程(该进程默认监听9000端口):
[root@mysql ~]# cd /usr/local/php5/etc/ [root@mysql etc]# cp php-fpm.conf.default php-fpm.conf [root@mysql etc]# useradd -M -s /sbin/nologin php # 创建 PHP 用户 [root@mysql etc]# vim php-fpm.conf ...................... pid = run/php-fpm.pid #确认pid文件位置 user = php #运行用户 group = php #运行组 pm.start_servers = 20 #启动时开启的进程数 pm.min_spare_servers = 5 #最少空闲进程数 pm.max_spare_servers = 35 #最多空闲进程数 pm.max_children = 50 #最大子进程数 [root@mysql /]# /usr/local/sbin/php-fpm # 启动 fpm 服务 [root@mysql /]# killall php-fpm # 停止服务
在 php-fpm.conf 配置文件中,pid配置项指出的PID信息的存放位置,对应的实际路径为:/usr/local/php5/var/run/php-fpm.pid,根据上面的配置,可以修改Nginx服务脚本,以便在启动/停止Nginx服务器时将php-fpm进程也自动启动/停止。
[root@mysql /]# vim /etc/init.d/nginx #!/bin/bash # chkconfig: - 99 20 PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" PROG_FPM="/usr/local/sbin/php-fpm" PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid" case "$1" in start) $PROG $PROG_FPM ;; stop) kill -s QUIT $(cat $PIDF) kill -s QUIT $(cat $PIDF_FPM) ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $PIDF) kill -s HUP $(cat $PIDF_FPM) ;; *) echo "USAGE:$0 {start | stop | restart | reload}" exit 1 esac exit 0
[root@mysql /]# systemctl daemon-reload #重新加载守护进程,否则会有提示信息 [root@mysql /]# systemctl restart nginx # 重启服务以确认脚本无误 [root@mysql /]# netstat -anpt | grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 64964/php-fpm: mast [root@mysql /]# netstat -anpt | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 64961/nginx: master
经过上面配置,Nginx和fpm就被绑在一块了,一旦启动或关闭Nginx服务,php-fpm程序也会随之启动或关闭,不需要额外再启动或关闭php-fpm。
配置Nginx支持PHP解析:
无论是将PHP页面交给LAMP服务器去解析,还是调用本机的php-fpm进程进行操作,都需要在“server { }”配置段中添加location设置,以便指定当访问php网页时采用哪种操作。
两种方法的配置项都可以在配置文件的末尾找到相应的模板。复制到相应位置,稍加修改即可用。
对于第一种方法,可以不执行上面php-fpm的配置(转交给其他web服务器处理,使用如下配置语句):
[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf ...................#省略部分内容 server { ................... location ~ \.php$ { #访问.php页面的配置段 proxy_pass http://192.168.1.20:80; # apache服务器的监听地址 } ................... // 省略部分内容 }
这里我使用第二种方法(调用本机的php-fpm进程),配置如下:
server { ..................... location ~ \.php$ { root /var/www/test1; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi.conf }
[root@mysql /]# vim /var/www/test1/test.php # 编写测试网页
LNMP 平台部署 web 应用:
这里我使用的是 Discuz!,一个社区论坛。可在 http://www.discuz.net 官方下载。
部署程序代码:
[root@mysql /]# unzip Discuz_X3.3_SC_UTF8.zip [root@mysql /]# mv upload/ /var/www/test1/bbs # 将 upload 目录放在网站根目录下 [root@mysql tt]# chown -R php:php /var/www/test1/bbs/ # 修改属主属组
创建数据库:
[root@mysql /]# mysql -u root -p Enter password: // 输入密码 mysql> create database bbs; // 创建一个专属数据库 mysql> grant all on bbs.* to runbbs@localhost identified by 'pwd123'; // 设置权限 和管理员用户
安装 Discuz:
访问www.test1.com/bbs/admin.php 登录到后台看看:
“LNMP架构的搭建及应用部署方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流