LNMP生产环境部署
一.初始化设置
1.防火墙初始化操作
永久关闭防火墙(开机不自启动)
systemctl disable firewalld
2.selinux永久禁止
永久关闭
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
3.修改主机名
hostnamectl set-hostname lnmp
4.上传源码包及项目
二.编译安装MySQL
1.清理安装环境
yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
userdel -r mysql
rm -rf /etc/my*
rm -rf /var/lib/mysql
2.创建一个MySQL用户
useradd -r mysql -s /sbin/nologin
创建一个系统用户,不为其创建家目录,不能登录
3.安装编译工具
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make glibc automake autoconf
yum -y install cmake
4.解压缩上传的MySQL包
tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/
5.编译安装
cd 解压的mysql目录
[root@lnmp ~]# cd /usr/local/mysql-5.7.27/
[root@lnmp mysql-5.7.27]# cmake . \
> -DWITH_BOOST=boost/boost_1_59_0/ \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DSYSCONFDIR=/etc \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DINSTALL_MANDIR=/usr/share/man \
> -DMYSQL_TCP_PORT=3306 \
> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
> -DDEFAULT_CHARSET=utf8 \
> -DEXTRA_CHARSETS=all \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_SSL=system \
> -DWITH_EMBEDDED_SERVER=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1
[root@lnmp mysql-5.7.27]# make && make install
6.MySQL的初始化设置
1.进入到MySQL目录更改目录权限
[root@lnmp mysql-5.7.27]# cd /usr/local/mysql
[root@lnmp mysql]# chown -R mysql.mysql .
[root@lnmp mysql]# ll
[root@lnmp mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完成之后,得到密码’pso/W##K1tp7’,复制密码时勿将冒号后的空格复制进来!!!
7.设置环境变量
[root@lnmp mysql]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
[root@lnmp mysql]# source /etc/profile
[root@lnmp mysql]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@lnmp mysql]# vim /etc/my.cnf
[root@lnmp mysql]# echo $?
0
8.启动MySQL
1.启动并后台运行MySQL
2.设置MySQL开机自启
1.1拷贝启动脚本到/etc/init.d/目录下,并改名mysqld
[root@lnmp mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@lnmp mysql]# ls -l /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10576 8月 5 16:29 /etc/init.d/mysqld
1.2重新加载系统服务
[root@lnmp mysql]# systemctl daemon-reload
1.3启动MySQL数据库,并检查端口监听状态
[root@lnmp mysql]# ss -lntp | grep 3306
LISTEN 0 80 [::]:3306 [::]:* users:(("mysqld",pid=1572,fd=28))
1.4添加为服务并查看服务列表
chkconfig --add mysqld
chkconfig mysqld on
chkconfig --list
看到3、4、5状态为开或者为 on 则表示成功。 如果是 关或者 off 则执行一下:
chkconfig --level 345 mysqld on
3.检验MySQL开机自启
重启计算机:reboot
再次查看服务列表或者查看3306端口号
9.修改MySQL密码
修改MySQL密码
/usr/local/mysql/bin/mysqladmin -uroot -p'pso/W##K1tp7' password 1
验证密码是否修改成功
mysql -uroot -p1
三.编译安装Nginx
1、安装编译 Nginx 依赖包
[root@lnmp ~]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel
2.创建 Nginx 运行用户
[root@lnmp ~]# useradd -s /sbin/nologin -M nginx
3.解压配置 Nginx 编译
[root@lnmp nginx-1.22.1]# tar zxvf nginx-1.22.1.tar.gz -C /usr/local/
[root@lnmp nginx-1.22.1]# cd /usr/local/nginx-1.22.1/
[root@lnmp nginx-1.22.1]# ./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--pid-path=/usr/local/nginx/run/nginx.pid
4.Nginx 编译安装并测试
[root@lnmp nginx-1.22.1]# make && make install
[root@lnmp nginx-1.22.1]# nginx -V
5.启动 Nginx 服务并验证服务是否启动成功
[root@lnmp nginx-1.22.1]# /usr/sbin/nginx
[root@lnmp nginx-1.22.1]# ss -lntp | grep nginx
LISTEN 0 128 *:80 *:* users:(("nginx",pid=4355,fd=6),("nginx",pid=4354,fd=6))
6、系统添加 Nginx 服务
1.创建 nginx.service 文件
[root@lnmp nginx-1.22.1]# vim /lib/systemd/system/nginx.service
2.以 systemctl 方式启动 Nginx并查看服务状态
3.验证 Nginx 服务是否成功启动
[root@lnmp nginx-1.22.1]# ss -lntp | grep nginx
4.配置 Nginx 服务自动启动
[root@lnmp nginx-1.22.1]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
5.查看Nginx默认界面
Nginx安装成功!!!
四.编译安装Php
1.安装编译环境依赖包
[root@lnmp ~]]# yum -y install gcc gcc-c++ glibc automake autoconf libtool make
2.安装编译 php 依赖库
[root@lnmp ~]# yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel
3.给libzip升级
[root@lnmp ~]# tar -xf libzip-1.3.2.tar.gz
[root@lnmp ~]# cd libzip-1.3.2/
编译安装libzip
[root@lnmp libzip-1.3.2]# ./configure && make && make install
4.配置 Php 编译
[root@lnmp ~]# tar xzvf php-7.3.6.tar.gz -C /usr/local/
[root@lnmp ~]# cd /usr/local/php-7.3.6/
[root@lnmp php-7.3.6]# ./configure \
> --prefix=/usr/local/php7 \
> --with-config-file-path=/usr/local/php7 \
> --with-config-file-scan-dir=/usr/local/php7/php.d \
> --enable-mysqlnd \
> --with-mysqli \
> --with-pdo-mysql \
> --enable-fpm \
> --with-fpm-user=nginx \
> --with-fpm-group=nginx \
> --with-gd \
> --with-iconv \
> --enable-xml \
> --enable-shmop \
> --enable-sysvsem \
> --enable-inline-optimization \
> --enable-mbregex \
> --enable-mbstring \
> --enable-ftp \
> --enable-zip \
> --with-openssl \
> --with-zlib \
> --with-libzip \
> --enable-pcntl \
> --enable-sockets \
> --with-xmlrpc \
> --enable-soap \
> --without-pear \
> --with-gettext \
> --enable-session \
> --with-curl \
> --with-jpeg-dir \
> --with-freetype-dir \
> --enable-opcache
5.编译安装 Php
[root@lnmp php-7.3.6]# make && make install
6.创建 php.ini 配置文件
[root@lnmp php-7.3.6]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@lnmp php-7.3.6]# vim /usr/local/php7/etc/php.ini +1371
将注释打开 1371 session.save_path = "/tmp"
7.设置php-fpm配置文件
[root@lnmp php-7.3.6]# cd /usr/local/php7/etc
[root@lnmp etc]# cp php-fpm.conf.default php-fpm.conf
[root@lnmp etc]# vim php-fpm.conf +17
将注释取消并修改
pid = /var/run/php-fpm.pid
# php-fpm连接文件
[root@lnmp etc]# cd /usr/local/php7/etc/php-fpm.d/
[root@lnmp php-fpm.d]# cp www.conf.default www.conf #php-fpm子配置文件
[root@lnmp php-fpm.d]# vim www.conf
user = nginx
group = nginx
listen = 127.0.0.1:9000
默认值与上相同,则不用修改。
8.启动 php-fpm与检查是否成功启动
[root@lnmp php-fpm.d]# /usr/local/php7/sbin/php-fpm
[root@lnmp php-fpm.d]# ps aux | grep php-fpm
root 14082 0.0 0.0 222276 6460 ? Ss 19:54 0:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx 14083 0.0 0.0 222276 5956 ? S 19:54 0:00 php-fpm: pool www
nginx 14084 0.0 0.0 222276 5956 ? S 19:54 0:00 php-fpm: pool www
root 14086 0.0 0.0 112824 988 pts/0 S+ 19:54 0:00 grep --color=auto php-fpm
9.配置 php-fpm 系统环境变量并重载
[root@lnmp ~]# vim /etc/profile
export PHP_HOME=/usr/local/php7
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin
source /etc/profile
10.配置 php-fpm 开机自启动
[root@lnmp ~]# vim /lib/systemd/system/php-fpm.service
重载 systemctl 配置
[root@lnmp ~]# systemctl daemon-reload
停止 php-fpm
[root@lnmp ~]# pkill php-fpm
用 systemctl 启动 php-fpm
[root@lnmp ~]# systemctl start php-fpm.service
设置 php-fpm 开机启动
[root@lnmp ~]# systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
五.Nginx 配置支持PHP
1、添加 Nginx 配置
[root@lnmp ~]# cd /etc/nginx/
[root@lnmp nginx]# vim nginx.conf
2.添加 php 探测文件
[root@lnmp nginx]# cd /usr/local/nginx/html/
[root@lnmp html]# vim index.php
<?php
phpinfo();
?>
不中断重新加载配置文件
[root@lnmp nginx]# nginx -s reload
Nginx 关联 php-fpm成功!!!
六.基于LNMP环境上线wordpress
[root@lnmp ~]# tar xzvf wordpress-5.9.1-zh_CN.tar.gz
[root@lnmp ~]# rm -rf /usr/local/nginx/html/*
#将代码拷贝到网站发布目录中
[root@lnmp ~]# cp -r wordpress/* /usr/local/nginx/html/
#更改nginx所代理项目的属主和属组
chown -R nginx.nginx /usr/local/nginx/html/
#创建数据库
[root@lnmp ~]# /usr/local/mysql/bin/mysql -uroot -p1
mysql> create database wordpress default charset 'utf8';
Query OK, 1 row affected (0.01 sec)
测试访问
项目发布成功!!!