0
点赞
收藏
分享

微信扫一扫

CentOS7 部署 LNMP 平台与应用

干自闭 2022-08-13 阅读 71

在这里插入图片描述

[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)安装后的其他调整

  1. 对数据库目录权限的调整

[root@localhost mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql/

  1. 建立主配置文件

[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

  1. 初始化数据库系统(以运行用户 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/

  1. 设置环境变量(方便在任何目录下使用 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 # 添加可执行权限

  1. 创建 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

  1. 使用 systemctlmysqld 服务来进行管理

[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 解析

有两种方法:

  1. 转交给其他 Web 服务器。

location ~ .php$ {

proxy_pass http://目标主机ip:80;

}

  1. 调用本机的 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

举报

相关推荐

0 条评论