CentOS 7 搭建 LNMP 架构详细过程 + Discuz 论坛安装 (手工编译)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 搭建 LNMP 架构详细过程 + Discuz 论坛安装 (手工编译)相关的知识,希望对你有一定的参考价值。

简介

1·LNMP 介绍
2·Ningx 安装 (1.12版本)
mysql 安装 (5.5版本)
php 安装 (5.6版本)
5·安装 Discuz 论坛
6·总结


LNMP 介绍

1· 很多人都知道 LAMP 架构,它是由 Linux + Apache + MySQL + PHP 所架构的,但是随着 nginx 在企业中用得越来越多,LNMP 架构也受到人们得喜爱。其实这两个架构变化不大,只是提供 WEB 服务的变成了 Nginx 。那么他们之间一定会由差异。在 LNMP 中 Nginx 可以配置网页的动静分离、解析PHP,可以使用 PHP的FPM模块。现在比较新的PHP 版本中已经自带了FPM模块(进程管理器)。这样的话,就可以让 Nginx 来处理静态请求,并且它会把动态请求转发给 PHP中的FPM 模块,也可以把说成是一个php-fpm服务。但是在 LAMP 中php 只是作为一个模块存在!
2·而且Nginx 它能承受的并发连接数高达50000左右,甩 Apache 几条街。还有它的稳定性和系统资源的占用都是非常的小。所以非常受人们喜欢。


技术分享图片


安装前准备源码包,我放在百度网盘上点击免费下载:LNMP+论坛源码包密码:jx5k


Nginx 安装

1·安装 Nginx 之前需要安装依赖包

[[email protected] ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make


2·给 Nginx 创建专门的用户,以便准确的控制权限,降低安全风险

[[email protected] ~]# useradd -M -s /sbin/nologin nginx


3·解压、编译安装 nginx ,一般编译安装都放在 /usr/local 目录下面

[[email protected] ~]# tar zxvf nginx-1.12.0.tar.gz -C /opt
[[email protected] ~]# cd /opt/nginx-1.12.0
[[email protected] nginx-1.12.0]# ./configure
--prefix=/usr/local/nginx
--user=nginx
--group=nginx
--with-http_stub_status_module (支持统计状态)
[[email protected] nginx-1.12.0]# make && make install (编译安装)


4·为了使 nginx 方便管理员运行和管理,为nginx 创建连接文件

[[email protected] nginx-1.12.0]# ln -s /usr/local/nginx/sbin/ /usr/local/sbin/


5·为了使 Nginx 的启动 停止更加方便,为他写一个启动脚本,这样更方便。

[[email protected] nginx-1.12.0]# vim /etc/init.d/ngixn
#!/bin/bash
#chkconfig: - 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx" (这里是:主程序路径)
PIDF="/usr/local/nginx/logs/nginx.pid" (这里是PID存放路径)
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF) (根据 PID 终止 nginx 进程,kill进程)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF) (根据进程重新加载配置)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}" (如果输入其他则提示输入语法)
exit 1
esac
exit 0


6·给这个脚本赋予执行权限、并把 Nginx 添加为系统服务。

[[email protected] ~]# chmod +x /etc/init.d/nginx
[[email protected] ~]# chkconfig --add nginx


7·启动 Nginx 服务 、查看状态。

[[email protected] ~]# systemctl start nginx
[[email protected] ~]# systemctl status nginx
● nginx.service - SYSV: Nginx Service Control Script
Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
Active: active (running) since 二 2018-08-28 14:14:00 CST; 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 5323 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nginx.service
├─5325 nginx: master process /usr/local/nginx/sbin/nginx
└─5326 nginx: worker process


MySQL 安装 (5.5版本哦)

1·这里还是需要先安装依赖包,MySQL 这里需要注意的是不再用 ./configure 安装模块了,而是用 Cmake ,所以这里需要安装 Cmake以及其他的包

[[email protected] ~]# yum -y install ncurses-devel bion libaio-devel cmake


2·给 MySQL 创建专门的用户,以便准确的控制权限,降低安全风险

[[email protected] ~]# useradd -s /sbin/nologin mysql


3·解压、编译安装 MySQL ,一般编译安装都放在 /usr/local 目录下面

[[email protected] ~]# tar zxvf mysql-5.5.24.tar.gz -C /opt
[[email protected] ~]# cd /opt/mysql-5.5.24
[[email protected] mysql-5.5.24]# cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DSYSCONFDIR=/etc
-DMYSQL_DATADIR=/home/mysql/
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DENABLED_LOCAL_INFILE=1
-DWITH_SSL=system
-DMYSQL_TCP_PORT=3306
-DENABLE_DOWNLOADS=1
-DWITH_SSL=bundled

[[email protected] mysql-5.5.24]# make && make install


4·根据一些日常的习惯,对MySQL做一些调整优化。

[[email protected] mysql-5.5.24]# cp support-files/my-medium.cnf /etc/my.cnf
[[email protected] mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld
[[email protected] mysql-5.5.24]# chmod +x /etc/init.d/mysqld


5·加入系统管理、设置开机启动

[[email protected] mysql-5.5.24]# chkconfig --add mysqld
[[email protected] mysql-5.5.24]# chkconfig --level 35 mysqld on


6·添加变量到 /etc/profile 文件中,并且使文件再次生效。

[[email protected] mysql-5.5.24]# echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
[[email protected] ~]# . /etc/profile (这里需要注意 . 中间有空格)
[[email protected] ~]# chown -R mysql.mysql /usr/local/mysql


7·初始化数据库

[[email protected] ~]# /usr/local/mysql/scripts/mysql_install_db
--user=mysql
--ldata=/var/lib/mysql
--basedir=/usr/local/mysql
--datadir=/home/mysql


技术分享图片


8·在启动配置文件中指定家目录和安装路径

[[email protected] ~]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql


技术分享图片


9·到这里我本来就可以启动服务了,可是这里报错,如下图报错信息,是在关闭防火墙,setenforce 0 之后启动。

[[email protected] ~]# systemctl start mysqld.service
技术分享图片

它说让你用它提示的语句去查看状态,其实我们用另一种方法启动,可以看到报错信息不一样。如下图
[[email protected] ~]# /etc/init.d/mysqld start
技术分享图片
意思是:启动时不跟新PID文件。没有PID 就启动不了。
解决办法:
[[email protected] ~]# mv /etc/my.cnf /etc/my.cnf.bak
相当于删除了这个文件而已就可以启动成功

或者把 /etc/my.cnf 中的两句话注释掉或者自己创建 mkdir -p /var/run/mariadb
mkdir -p /log/run/mariadb
技术分享图片


安装 PHP

1·安装依赖包和GD库等相关联的程序

[[email protected] ~]# yum -y install
gd
libxml2-devel
libjpeg-devel
libpng-devel
zlib-devel
fontconfig-devel
openssl-devel
bzip2-devel


2·解压、编译安装 PHP ,一般编译安装都放在 /usr/local 目录下面

[[email protected] ~]# tar jxvf php-5.6.11.tar.bz2 -C /opt/
[[email protected] php-5.6.11]# ./configure
--prefix=/usr/local/php5
--with-gd
--with-zlib
--with-mysql=/usr/local/mysql
--with-config-file-path=/usr/local/php5
--enable-mbstring
--with-jpeg-dir=/usr/lib
--with-openssl
--disable-ipv6
--enable-fpm

[[email protected] php-5.6.11]# make && make install


3·对 PHP 进行一些优化

[[email protected] php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini
[[email protected] php-5.6.11]# ln -s /usr/local/php5/bin/ /usr/local/bin/
[[email protected] php-5.6.11]# ln -s /usr/local/php5/sbin/
/usr/local/sbin/


4·为PHP安装加速器

[[email protected] ~]# tar zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /opt
[[email protected] ~]# cd /opt/zend-loader-php5.5-linux-x86_64/
[[email protected] zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php


5·配置PHP识别加速器

[[email protected] ~]# vim /usr/local/php5/php.ini
在文件末尾插入:
[Zend Guard Loader]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1


技术分享图片


6·开启nginx的PHP支持

[[email protected] ~]# cd /usr/local/php5/etc/
[[email protected] etc]# cp php-fpm.conf.default php-fpm.conf
[[email protected] etc]# useradd -M -s /sbin/nologin php (差点忘记了)


7·修改php-fpm配置文件

[[email protected] etc]# vim php-fpm.conf -----(这里是修改文件)
pid = run/php-fpm.pid
user = php
group = php
pm.max_children=50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35

[[email protected] etc]# /usr/local/sbin/php-fpm -------------(使文件生效)
[[email protected] etc]# netstat -tnal | grep 9000 -------------(查看一下端口)


8·让nginx支持PHP功能

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf ----(就是修改Nginx配置文件)

location ~ .php$ {
root /var/www/benet;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

在server 里面加入以上参数,如下图:

技术分享图片


9·检查 nginx 配置文件,并重启nginx 服务、查看状态

[[email protected] conf]# nginx -t
[[email protected] conf]# systemctl restart nginx
[[email protected] conf]# systemctl status nginx


10·测试 PHP 页面
[[email protected] conf]# mkdir -p /var/www/benet
[[email protected] conf]# vim /var/www/benet/index.php
<?php
phpinfo();
?>


技术分享图片


11·开始测试,访问
技术分享图片


安装 Discuz 论坛

1·我们在 LNMP 搭建好了之后,就可以基于此基础 安装软件了,这里以 Discuz 论坛 为列
2·要安装 Discuz 论坛需要给此论坛创建一个数据库,并且创建一个用户管理它
3·进入 MySQL 数据库 创建一个新的数据库名字叫 bbs

[[email protected] ~]# mysql -u root -p -----(输入密码进入)
mysql> create databases bbs; ------(创建一个库 名字叫 bbs 以分号结尾)
mysql> grant all on bbs.* to ‘bbsuser‘@‘%‘ identified by ‘admin123‘;

给bbsuser 这个用户在任意一台服务器上登陆,登陆密码是 ‘admin123’ ,对bbs这个库,这个库里面的所有表拥有所有权限。
mysql> flush privileges; ----(刷新数据库,立即生效)


·测试数据库,以下是测试代码:
vim /var/www/benet/index.php

<?php
$link=mysql_connect(‘主机IP‘,‘bbsuser‘,‘admin123‘);
if($link) echo "Success!!";
else echo "Fail!!";
mysql_close();
?>


解压 Discuz 软件包、优化内容
[[email protected] ~]# unzip Discuz_X3.3_SC_UTF8.zip -d /opt/dis
[[email protected] ~]# cd /opt/dis
[[email protected] dis]# cp -r upload/ /var/www/benet/bbs
[[email protected] dis]# cd /var/www/benet/bbs
[[email protected] bbs]# chown -R php ./config
[[email protected] bbs]# chown -R php ./data
[[email protected] bbs]# chown -R php ./uc_client
[[email protected] bbs]# chown -R php ./uc_server/data


开始安装
安装是在 windows 7 上安装,访问地址是:如下图
技术分享图片


技术分享图片


技术分享图片


技术分享图片


Discuz 安装完成,我们可以访问管理后台。
技术分享图片


技术分享图片


总结:

1·关于 一些 Nginx 其他配置可以看看Nginx 优化


2·在整个 LNMP 的安装过程中,说不一定就会报一些错,只是没有遇到,报错就上百度多查查。


3·需要知道 Nginx 的优点在哪里,它的高并发连接,和动静态的分离,还有资源占用极少等等。


4·在LNMP 中的php是用php-fpm模块来做动态工作工作的。但是在LAMP中PHP只是一个模块而已。

以上是关于CentOS 7 搭建 LNMP 架构详细过程 + Discuz 论坛安装 (手工编译)的主要内容,如果未能解决你的问题,请参考以下文章

lnmp 架构搭建

lnmp架构搭建wordpress开源博客(centos 7)

Centos 7搭建LNMP架构及部署Discuz论坛

Linux精华篇—CentOS 7.4下源码编译构建LNMP架构

LNMP架构搭建详细部署

腾讯云手动搭建LNMP环境(CentOS 7)