一、软件介绍

  • LNMP代表:Linux系统下的Nginx+Mysql+Php的网站构架技术。

  • Linux系统:免费使用和自由传播的类Unix操作系统,稳定可靠。

  • Nginx:高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

  • Mysql: 关系型数据库管理系统,本次使用mariadb软件,它是mysql的一个分支,由开源社区维护。

  • Php: 超文本预处理器,是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。

  • WordPress: 使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。

二、安装准备:

本次通过虚拟机的方式进行安装,各个软件版本如下:

centos系统版本: 7.6.1810
nginx-1.16.0.tar.gz
mariadb-10.2.23.tar.gz
php-7.3.5.tar.bz2
wordpress-5.0.3-zh_CN.tar.gz

确认关闭selinux,关闭防火墙功能。
配置好yum源、epel源,以便于安装各个软件的依赖包。

三、编译安装:

编译安装mariadb:

1. yum安装mariadb的依赖包:

yum install bison bison-devel zlib-devel libcurl-devel libarch
ive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel -y

2. 准备mysql用户和数据存放目录:

useradd -r -s /sbin/nologin -d /data/mysql mysql
chown mysql.mysql /data/mysql

3. 进入源码包目录,进行编译:

tar xvf mariadb-10.2.23.tar.gz
cd mariadb-10.2.23/
[root@centos7 mariadb-10.2.23]# cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/mysql \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

make && make install

4. 设置环境变量

vi /etc/profile.d/mysql.sh
export PATH=/apps/mysql/bin:$PATH

source /etc/profile.d/mysql.sh

5. 准备配置文件和生成数据库初始化文件

[root@centos7 mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
[root@centos7 apps]# cp /apps/mysql/support-files/my-huge.cnf /etc/my.cnf

6.准备启动脚本

[root@centos7 apps]# cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld

7.mysql启动验证

[root@centos7 apps]# service mysqld start

至此,mysql已可以正常登录:
基于新版本LNMP编译安装+wordpress搭建个人博客

编译安装nginx:

1. yum安装nginx的依赖包:

[root@centos7 nginx-1.16.0]# yum install -y vim lrzsz tree screen psmisc lsof tcpdump wget ntpdate gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel net-tools iotop bc zip unzip zlib-devel bash-completion nfs-utils automake libxml2 libxml2-devel libxslt libxslt-devel perl perl-ExtUtils-Embed

2. 进入源码包目录进行编译:

[root@centos7 nginx-1.16.0]# ./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module

make && make install

3. 创建nginx运行账号:

[root@centos7 nginx-1.16.0]# useradd nginx -s /sbin/nologin -u 2000
[root@centos7 nginx-1.16.0]# chown -R nginx.nginx /apps/nginx/
[root@centos7 nginx-1.16.0]# ln -sv /apps/nginx/sbin/nginx /usr/sbin/

4. 启动nginx:

[root@centos7 nginx-1.16.0]# nginx
[root@centos7 nginx-1.16.0]# ss -tunl | grep 80

从客户端浏览器进行验证:
基于新版本LNMP编译安装+wordpress搭建个人博客

编译安装php:

1. yum安装php的依赖包:

yum install -y libxml2-devel openssl-devel libcurl-devel libjpeg-turbo-devel libpng-devel freetype-devel gmp-devel bzip2-devel libmcrypt-devel libzip-devel

2. 进入php源码包进行编译:

[root@centos7 src]# cd php-7.3.5/

[root@centos7 php-7.3.5]# ./configure --prefix=/apps/php \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-pear \
--with-curl \
--with-png-dir \
--with-freetype-dir \
--with-iconv \
--with-mhash \
--with-zlib \
--with-xmlrpc \
--with-xsl \
--with-openssl \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--disable-debug \
--enable-mysqlnd \
--enable-zip \
--enable-sockets \
--enable-soap \
--enable-inline-optimization \
--enable-xml \
--enable-ftp \
--enable-exif \
--enable-wddx \
--enable-bcmath \
--enable-calendar \
--enable-shmop \
--enable-dba \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg

注意,此步骤之后,系统提示libzip要求大于0.11版本,而yum安装的最新版本是0.10。
从官网找到最新的libzip-1.5.2, https://libzip.org/

基于新版本LNMP编译安装+wordpress搭建个人博客
开始编译之后,出现了另外个问题,显示cmake的版本过低。
简直麻烦到死,难道还要编译cmake吗?经过网上搜索,发现另外一个方式,就是降低libzip的版本就行,选定libzip-1.3.2以下进行编译。

yum -y remove libzip-devel
wget https://libzip.org/download/libzip-1.3.2.tar.gz
tar xvf libzip-1.3.2.tar.gz
cd libzip-1.3.2
./configure
make -j 4
make install
中途没有报错,libzip依赖问题解决了。

然后重新执行./configure --prefix=/apps/php ...
这一步骤,这次终于没有报错了。
[root@centos7 php-7.3.5]#make && make install

3. 准备php的配置文件:

[root@centos7 apps]# cd php/etc/php-fpm.d/
[root@centos7 php-fpm.d]# mv www.conf.default www.conf #生成php-fpm的配置文件

[root@centos7 php-7.3.5]# cp php.ini-production /apps/php/etc/php.ini #从源码安装目录负责php的配置文件到安装目录

[root@centos7 etc]# cp php-fpm.conf.default php-fpm.conf

4. 创建php的运行账号:

[root@centos7 php-7.3.5]# useradd -r -s /sbin/nologin www

5. 启动php-fpm:

[root@centos7 etc]# /apps/php/sbin/php-fpm -t
[02-Jun-2019 20:10:26] NOTICE: configuration file /apps/php/etc/php-fpm.conf test is successful

[root@centos7 etc]# /apps/php/sbin/php-fpm -c /apps/php/etc/php.ini
[root@centos7 etc]# ps -ef | grep php-fpm
[root@centos7 etc]# ss -tanlp | grep php-fpm

php-fpm已正常启动。

6.配置nginx支持php-fpm:

[root@centos7 nginx]# vi /apps/nginx/conf/nginx.conf

基于新版本LNMP编译安装+wordpress搭建个人博客

启用nginx主配置文件中的php配置,并修改。
基于新版本LNMP编译安装+wordpress搭建个人博客

7.准备php的测试页面:

[root@centos7 html]# vi index.php
基于新版本LNMP编译安装+wordpress搭建个人博客

8.重启nginx,访问php状态页面:

基于新版本LNMP编译安装+wordpress搭建个人博客

以上,LNMP的网站环境就部署完成了。

部署个人博客软件wordpress:

1.解压wordpress软件准备安装:

cd /usr/local/src/
cp -r wordpress /apps/nginx/html/

2.准备wordpress的php配置文件:

[root@centos7 wordpress]# cp wp-config-sample.php wp-config.php
[root@centos7 wordpress]# vi wp-config.php #配置wordpress数据库的账号信息
基于新版本LNMP编译安装+wordpress搭建个人博客

3.进入数据库授权wordpress的信息:

基于新版本LNMP编译安装+wordpress搭建个人博客

使用wpuser账号登录数据库进行验证:

基于新版本LNMP编译安装+wordpress搭建个人博客

4.访问web页面,安装wordpress:

基于新版本LNMP编译安装+wordpress搭建个人博客

基于新版本LNMP编译安装+wordpress搭建个人博客

基于新版本LNMP编译安装+wordpress搭建个人博客

以上,就是基于LNMP+wordpress的个人博客系统。