[root@localhost ~]# yum -y install psmisc # 安装 killall
[root@localhost ~]# nginx
[root@localhost ~]# killall -s HUP nginx
[root@localhost ~]# killall -s QUIT nginx
[root@localhost ~]# netstat -anpt | grep nginx
[](()3.使用 Nginx 服务脚本
[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"
case "$1" in
start)
$PROG;;
stop)
kill -s QUIT $(cat $PIDF);;
restart)
$0 stop
$0 start;;
reload)
kill -s HUP $(cat $PIDF);;
*)
echo "Usage:$0 { start | stop | restart | reload }"
exit 1
esac
exit 0
[root@localhost ~]# chmod +x /etc/init.d/nginx
[root@localhost ~]# chkconfig --add nginx
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# systemctl status nginx
[](()4.使用浏览器测试 Nginx 页面
[](()二、部署 MySQL 数据库
=================================================================================
[](()1.准备工作
1)安装插件包
[root@localhost ~]# yum -y install ncurses-devel
2)安装 cmake
软件包(MySQL 5.X 版本都需要 cmake
进行编译)
[root@localhost ~]# ls
anaconda-ks.cfg mysql-5.6.36.tar.gz cmake-2.8.6.tar.gz nginx-1.12.0.tar.gz
[root@localhost ~]# tar zxf cmake-2.8.6.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/cmake-2.8.6
[root@localhost cmake-2.8.6]# ./configure && gmake && gmake install
[](()2.安装 MySQL 数据库
[](()1)创建运行用户和组
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -M -s /sbin/nologin mysql -g mysql
[](()2)编译安装 MySQL
[root@localhost ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mysql-5.6.36/
[root@localhost mysql-5.6.36]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc && make && make install
[](()3)安装后的其他调整
- 对数据库目录权限的调整
[root@localhost mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql/
- 建立主配置文件
[root@localhost mysql-5.6.36]# rm -rf /etc/my.cnf
[root@localhost mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf
- 初始化数据库系统(以运行用户 mysql 身份执行初始化脚本)
[root@localhost mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
- 设置环境变量(方便在任何目录下使用 mysql 命令)
[root@localhost mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile #追加
[root@localhost mysql-5.6.36]# . /etc/profile #立即生效
[](()4)添加到系统服务
- 方便通过
systemctl
进行管理。
[root@localhost mysql-5.6.36]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh # 复制脚本并重命名为 mysqld.sh
[root@localhost mysql-5.6.36]# chmod +x /usr/local/mysql/bin/mysqld.sh # 添加可执行权限
- 创建 MySQL 系统服务的配置文件
[root@localhost mysql-5.6.36]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=Mysql Server
After=network.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFILE=/usr/local/mysql/data/www.pid
ExecStart=/usr/local/mysql/bin/mysqld.sh start
ExecStop=/usr/local/mysql/bin/mysqld.sh stop
[Install]
WantedBy=multi-user.target
- 使用
systemctl
对mysqld
服务来进行管理
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# netstat -anpt | grep mysqld
tcp6 0 0 :::3306 :::* LISTEN 43772/mysqld
[](()二、安装 PHP 解析环境
================================================================================
[](()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 -C /usr/src/
[root@localhost ~]# cd /usr/src/php-5.5.38/
[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 && 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]# vim /usr/local/php5/php.ini
在最后一行添加:
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable= 1
[](()二、配置 Nginx 支持 PHP 环境
=======================================================================================
[](()1.启用 PHP 进程
[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 程序也会随之启动或关闭,不需要额外再启用或关闭。
[](()
0)2.配置 Nginx 支持 PHP 解析
有两种方法:
- 转交给其他 Web 服务器。
location ~ .php$ {
proxy_pass http://目标主机ip:80;
}
- 调用本机的 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 平台部署 Discuz 论坛
==========================================================================================
[](()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