一, 软件介绍
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 已可以正常登录:
编译安装 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
从客户端浏览器进行验证:
编译安装 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/
开始编译之后, 出现了另外个问题, 显示 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
启用 nginx 主配置文件中的 PHP 配置, 并修改.
7. 准备 PHP 的测试页面:
[root@centos7 html]# vi index.PHP
8. 重启 nginx, 访问 PHP 状态页面:
以上, 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 数据库的账号信息
3. 进入数据库授权 WordPress 的信息:
使用 wpuser 账号登录数据库进行验证:
4. 访问 Web 页面, 安装 WordPress:
以上, 就是基于 LNMP+WordPress 的个人博客系统.
来源: http://blog.51cto.com/13932385/2404514