构建LNMP网站平台
不会安装Nginx服务基础的看这个:
https://blog.csdn.net/weixin_46902396/article/details/108823679
不会安装Mysql服务的看这个:
https://blog.csdn.net/weixin_46902396/article/details/108171060
如果在安装过程中出现磁盘不足,看这个来进行扩容:
https://blog.csdn.net/weixin_46902396/article/details/108290392
一、安装PHP解析环境
实验要用的源码包:
https://pan.baidu.com/s/1jON0rmo21Xx74Qv_8_ZHHg
提取码:ycbb
1.编译安装PHP
[root@localhost ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel mysql gcc*
[root@localhost ~]# tar zxf php-5.5.38.tar.gz
[root@localhost php-5.5.38]# ./configure --prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-mysql\
--with-mysqli\
--with-config-file-path=/usr/local/php5\
--enable-mbstring\
--enable-fpm\
--with-jpeg-dir=/usr/lib
[root@localhost php-5.5.38]# make && make install
2.安装后的调整
[root@localhost php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini
[root@localhost php-5.5.38]# ln -s /usr/local/php5/bin/* /usr/local/bin/
[root@localhost php-5.5.38]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/
3.安装ZendGuardLoader
[root@localhost ~]# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz
[root@localhost ~]# cd zend-loader-php5.5-linux-x86_64/
[root@localhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/
[root@localhost zend-loader-php5.5-linux-x86_64]# vi /usr/local/php5/php.ini
在第最后一行添加:
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable= 1
二、配置Nginx支持PHP环境
1.启用php-fpm进程
[root@localhost ~]# cd /usr/local/php5/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# useradd -M -s /sbin/nologin php
[root@localhost etc]# vim php-fpm.conf
1.找到pid = run/php-fpm.pid 将前面";"去掉
2.找到运行用户和运行组,都改为php
还有一些项,改不改都行:
pm.start_servers = 2 (启动时开启的进程数)
pm.min_spare_servers = 1 (最少空闲进程数)
pm.max_spare_servers = 3 (最多空闲进程数)
pm.max_children = 5 (最多子进程数)
[root@localhost etc]# /usr/local/sbin/php-fpm (开启服务)
[root@localhost etc]# netstat -anpt | grep php-fpm (端口号9000)
修改前面的Nginx脚本,以便在启动/停止Nginx服务时php-fpm进程也自动启动停止
[root@localhost ~]# vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description: Nginx Server Control Script
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)
;;
status)
[ -f $PID ] &> /dev/null
if [ $? -eq 0 ]
then
netstat -anpt | grep nginx
else
echo "Nginx is not running."
fi
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
esac
exit 0
[root@localhost ~]# netstat -anpt | egrep 'nginx|php'
[root@localhost ~]# systemctl stop nginx
[root@localhost ~]# netstat -anpt | egrep 'nginx|php'
因此,一旦启用或关闭Nginx服务,php-fpm程序也会随之启动或关闭,不需要额外再启用或关闭
2.配置Nginx支持PHP解析
有两种方法:
1:转交给其他web服务器
location ~ .php$ {
proxy_pass http://目标主机ip:80;
}
2:调用本机的php-fpm进程
本次实验使用第二种方法:
[root@localhost ~]# nginx -t (检查配置是否正确)
[root@localhost ~]# systemctl start nginx (启用Nginx服务)
[root@localhost ~]# netstat -anpt | egrep 'nginx|php' (查看端口运行状态)
3.PHP页面的测试
[root@localhost ajbm]# vim /var/www/ajbm/test.php
<?php
phpinfo();
?>
[root@localhost ajbm]# systemctl restart nginx
[root@localhost ~]# vim /var/www/ajbm/test2.php
<?php
$link=mysqli_connect('localhost','root','123');
if($link)
echo "恭喜你,数据库连接成功!";
mysqli_close($link);
?>
[root@localhost ~]# systemctl restart nginx
三、在LNMP平台部署Web网站
1.部署网站程序代码
[root@localhost ~]# yum -y install unzip
[root@localhost ~]# unzip Discuz_X3.3_SC_UTF8.zip
[root@localhost ~]# mv upload/ /var/www/bdqn/bbs
[root@localhost ~]# chown -R php:php /var/www/bdqn/bbs
2.创建数据库
[root@localhost ~]# mysql -u root -p123
mysql> create database bbs;
mysql> grant all on bbs.* to runbbs@localhost identified by 'bbs@123456';
3.安装Web网站
Win7上访问:http://www.ajbm.com/bbs/install/index.php
4.访问Web网站
http://www.ajbm.com/bbs