LNMP代表:Linux系统下的Nginx+Mysql+Php的网站构架技术。
Linux系统:免费使用和自由传播的类Unix操作系统,稳定可靠。
Nginx:高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
Mysql: 关系型数据库管理系统,本次使用mariadb软件,它是mysql的一个分支,由开源社区维护。
Php: 超文本预处理器,是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。
本次通过虚拟机的方式进行安装,各个软件版本如下:
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:
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
useradd -r -s /sbin/nologin -d /data/mysql mysql
chown mysql.mysql /data/mysql
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
vi /etc/profile.d/mysql.sh
export PATH=/apps/mysql/bin:$PATH
source /etc/profile.d/mysql.sh
[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
[root@centos7 apps]# cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@centos7 apps]# service mysqld start
至此,mysql已可以正常登录:
编译安装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
[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
[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/
[root@centos7 nginx-1.16.0]# nginx
[root@centos7 nginx-1.16.0]# ss -tunl | grep 80
从客户端浏览器进行验证:
编译安装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
[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
[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
[root@centos7 php-7.3.5]# useradd -r -s /sbin/nologin www
[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已正常启动。
[root@centos7 nginx]# vi /apps/nginx/conf/nginx.conf
启用nginx主配置文件中的php配置,并修改。
[root@centos7 html]# vi index.php
以上,LNMP的网站环境就部署完成了。
部署个人博客软件wordpress:
cd /usr/local/src/
cp -r wordpress /apps/nginx/html/
[root@centos7 wordpress]# cp wp-config-sample.php wp-config.php
[root@centos7 wordpress]# vi wp-config.php #配置wordpress数据库的账号信息
使用wpuser账号登录数据库进行验证:
以上,就是基于LNMP+wordpress的个人博客系统。
转载于:https://blog.51cto.com/13932385/2404514