前言
本文旨在记录LNMP架构的搭建过程,使用wordpress验证架构的可用,使用其他组件(例如wecenter)亦可。在搭建过程中,我们需要注意的是各个组件之间的兼容性,例如版本兼容问题和模块有无对后续的影响。在本文中不会对此进行详细说明,仅对特定环境下的安装进行记录,但请自行搭建LNMP架构时充分考虑兼容性问题。
使用传统方式搭建LNMP架构,并安装WordPress
一.环境说明
使用Vmware虚拟主机安装任意Centos7虚拟主机,再于该主机内编译安装Nginx1.16.1、二进制安装Mysql5.7.28、第三方编译安装PHP7.3.5,wordpress安装中文最新版本或自己需要的版本即可。
在开始之前,请先确认yum仓库并安装好基础的软件如本文中经常使用的vim和wget,本文中将使用阿里云提供的yum仓库,请确认无误。
本文仅作过程记录,所以所有的软件程序都将安装于根目录下的test目录中,后不再进行说明。
二.编译安装Nginx
1.下载源码包并解压至test目录
mkdir /test
cd /test
wget https://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz
2.准备编译安装和后续nginx所需的组件
yum install pcre pcre-devel openssl openssl-devel gcc -y
3.准备nginx用户,给后续nginx程序降权
useradd nginx -s /sbin/nologin
4.编译安装nginx
cd /test/nginx-1.16.1
./configure --user=nginx --group=nginx --prefix=/test/nginx
make && make install
三.二进制安装Mysql
1.下载源码包并解压至test目录
cd /test
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
2.编写my.cnf
vim /etc/my.cnf
#在文件中写入以下内容,此处仅作最简单处理,请根据需求编写
[mysqld]
basedir=/test/mysql
datadir=/test/mysql/data
socket=/tmp/mysql.sock
server_id=1
port=3306
log_error=/test/mysql/data/mysql_err.log
[mysql]
socket=/tmp/mysql.sock
3.安装Mysql所需组件,创建data目录并创建mysql软连接
yum install libaio-devel -y
ln -s /test/mysql-5.7.28-linux-glibc2.12-x86_64 /test/mysql
mkdir /test/mysql/data
4.准备mysql用户,并授权mysql文件
useradd mysql -s /sbin/nologin
chown -R mysql.mysql /test/mysql/
5.初始化mysql
cd /test/mysql/bin
./mysqld --initialize-insecure --user=mysql --basedir=/test/mysql/ --datadir=/test/mysql/data/
四.使用第三方源安装php
1.准备所需组件
yum install gcc gcc-c++ make zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel \freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y
#发现缺少libiconv组件,我们自行安装
cd /test
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz
tar -zxvf libiconv-1.15.tar.gz
cd /test/libiconv-1.15
./configure --prefix=/test/libicon
make && make install
2.下载源码包并解压至test目录
cd /test
wget http://mirrors.sohu.com/php/php-7.3.5.tar.gz
tar -zxvf php-7.3.5.tar.gz
3.编译安装php
cd /test/php-7.3.5
./configure --prefix=/test/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/test/libicon \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-gd \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp \
--enable-opcache=no
make && make install
五.完成LNMP架构的搭建
1.配置环境变量
vim /etc/profile.d/lnmp.sh
#在该文件中,写入以下内容使环境变量拥有整个架构的命令路径
export PATH="$PATH:/test/nginx/sbin/:/test/mysql/bin:/test/php/sbin/"
2.给MySQL准备service文件
vim /etc/systemd/system/mysqld.service
#在该文件中,写入以下内容使mysql可以被systemctl指令控制
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/test/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
3.编写Nginx虚拟主机,并启动Nginx
vim /test/nginx/conf/nginx.conf
#在该文件中,找到server块,将其删除并修改成以下内容
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.php;
}
location ~ .*\.(php|php5)?$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
nginx
4.启动mysql,并给root用户更改登入密码
systemctl start mysqld
mysqladmin -u root password '321456'
5.准备php配置文件,并启动php
cp /test/php-7.3.5/php.ini-development /test/php/etc/php.ini
cp /test/php/etc/php-fpm.conf.default /test/php/etc/php-fpm.conf
cp /test/php/etc/php-fpm.d/www.conf.default /test/php/etc/php-fpm.d/www.conf
php-fpm
安装WordPress,完成LNMP架构并验证可以使用
1.下载源码包并解压至test目录,后将nginx的html下的index.html删除将wordpress目录下的所有内容复制进html目录,并给nginx授权html目录
cd /test
wget https://cn.wordpress.org/latest-zh_CN.tar.gz --no-check-certificate
tar -zxvf latest-zh_CN.tar.gz
cd /test/nginx/html
rm index.html -rf
cp /test/wordpress/* /test/nginx/html/ -r
chown -R nginx.nginx /test/nginx/html/
2.创建wordpress数据库,并给wordpress建立专门的数据库用户
mysql -uroot -p321456
create database wordpress;
create user wordpress;
grant all on wordpress.* to wordpress@'localhost' identified by '321456';
3.关闭防火墙
systemctl stop firewalld
4.使用宿主机访问虚拟机80页面完成wordpress初始化
我们直接使用虚拟机地址访问并点击开始即可,如下图所示
填写我们准备好的wordpress数据和用户并提交,如下图所示
执行安装程序即可,如下图所示
填写相关信息记住密码和账号并安装,如下图所示
登入,完成,如下图所示