千家信息网

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

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、LNMP架构及应用部署众所周知,LAMP平台时目前应用最为广泛的网站服务器架构,其中的"A"对应着web服务软件的Apache HTTP Server ,随着Nginx在工作环境中的使用越来越多,
千家信息网最后更新 2025年12月02日Centos 7搭建LNMP架构及部署Discuz论坛

一、LNMP架构及应用部署

众所周知,LAMP平台时目前应用最为广泛的网站服务器架构,其中的"A"对应着web服务软件的Apache HTTP Server ,随着Nginx在工作环境中的使用越来越多,LNMP(或LEMP)架构也受到越来越多的Linux运维工程师的青睐。

就像构建LAMP平台一样,构建LNMP平台也需要Linux服务器、MySQL数据库、PHP解析环境,区别主义在于Nginx与PHP的协作配置上。

准备工作

Centos 7操作系统一台;
Windows 客户端一台;
案例所需镜像及软件包请访问:https://pan.baidu.com/s/10wFG1YQaY2FTJKgMp1x0kw
提取码:rl3i

二、构建LNMP网站平台

部署前准备

①挂载Linux光盘,拷贝nginx依赖程序到/usr/src/目录

[root@centos02 ~]# mount /dev/cdrom /mnt/mount: /dev/sr0 写保护,将以只读方式挂载[root@centos02 ~]# cp /mnt/nginx-1.6.0.tar.gz /usr/src/

②切换LAMP光盘,将mnt目录下所有数据拷贝到/usr/src/目录
[root@centos02 ~]# umount /mnt/

[root@centos02 ~]# mount /dev/cdrom /mnt/mount: /dev/sr0 写保护,将以只读方式挂载[root@centos02 ~]# cp /mnt/* /usr/src/

③切换到操作系统光盘
[root@centos02 ~]# umount /mnt/

[root@centos02 ~]# mount /dev/cdrom /mnt/mount: /dev/sr0 写保护,将以只读方式挂载

1、部署Nginx静态网站

Nginx具体配置及概述请访问博客:Centos 7部署Nginx网站服务

[root@centos02 ~]# rm -rf /etc/yum.repos.d/CentOS-*                                   [root@centos02 ~]# yum -y install pcre-devel zlib-devel                               [root@centos02 ~]# useradd -M -s /sbin/nologin nginx                                                  [root@centos02 ~]# tar zxvf /usr/src/nginx-1.6.0.tar.gz -C /usr/src/                                 [root@centos02 ~]# cd /usr/src/nginx-1.6.0/   [root@centos02 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module     [root@centos02 nginx-1.6.0]# make && make install [root@centos02 ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/  [root@centos02 ~]# cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak                    [root@centos02 ~]# vim /usr/local/nginx/conf/nginx.conf  3 user  nginx;  4 worker_processes  1;  6 error_log  logs/error.log;12 pid        logs/nginx.pid;16     use epoll;17     worker_connections  1024;29     #access_log  logs/access.log  main;31     sendfile        on;35     keepalive_timeout  65;39     server {40         listen       80;41         server_name  localhost;44         charset utf-8;48         location / {49             root   html;50             index  index.html index.htm;51         }84     }[root@centos02 ~]# nginx   [root@centos02 ~]# netstat -anptu | grep nginx tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4663/nginx: master  [root@centos02 ~]# vim /etc/init.d/nginx #!/bin/bash#chkconfig: 35 90 30#description:nginx serverPROG="/usr/local/nginx/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"case "$1" instart)$PROG;;stop)kill -s QUIT $(cat $PIDF);;restart)$0 stop$0 start;;reload)kill 0s HUP $(cat $PIDF);;*)echo "Usage:$0 (start|stop|restart|reload)"exit 1esacexit 0[root@centos02 ~]# chmod +x /etc/init.d/nginx[root@centos02 ~]# chkconfig --add nginx [root@centos02 ~]# chkconfig --level 35 nginx on [root@centos02 ~]# /etc/init.d/nginx stop[root@centos02 ~]# /etc/init.d/nginx start[root@centos02 ~]# /etc/init.d/nginx restart 

至此,可以配置客户端配置与服务器同网卡、同网段的IP地址及网关,访问Nginx网站

2、部署基于域名的虚拟主机

[root@centos02 ~]# yum -y install bind bind-chroot bind-utils  [root@centos02 ~]# echo "" > /etc/named.conf     [root@centos02 ~]# vim /etc/named.conf     options {        listen-on port 53 { 192.168.100.20; };        directory "/var/named";}zone    "benet.com"     IN      {        type    master;        file    "benet.com.zone";}zone    "accp.com"      IN      {        type    master;        file    "accp.com.zone";}[root@centos02 ~]# named-checkconf -z /etc/named.conf                                        [root@centos02 ~]# vim /var/named/benet.com.zone                               $TTL    86400@       SOA     benet.com.      root.benet.com(        2019112801        1H        15M        1W        1D)@       NS      centos02.benet.com.centos02 A      192.168.100.20www      A      192.168.100.20[root@centos02 ~]# chmod +x /var/named/benet.com.zone                                                [root@centos02 ~]# chown named:named /var/named/benet.com.zone                                               [root@centos02 ~]# named-checkzone benet.com /var/named/benet.com.zone                                       zone benet.com/IN: loaded serial 2019112801OK[root@centos02 ~]# cp /var/named/benet.com.zone /var/named/accp.com.zone                                     [root@centos02 ~]# vim /var/named/accp.com.zone                                    $TTL    86400@       SOA     accp.com.       root.accp.com(        2019112801        1H        15M        1W        1D)@       NS      centos02.accp.com.centos02 A      192.168.100.20www      A      192.168.100.20[root@centos02 ~]# named-checkzone accp.com /var/named/accp.com.zone                                 [root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32DNS1=192.168.100.20  [root@centos02 ~]# systemctl restart network     [root@centos02 ~]# systemctl start named     [root@centos02 ~]# systemctl enable named    [root@centos02 ~]# nslookup www.benet.com     Server:     192.168.100.20Address:    192.168.100.20#53Name:   www.benet.comAddress: 192.168.100.20[root@centos02 ~]# nslookup www.accp.com   Server:     192.168.100.20Address:    192.168.100.20#53Name:   www.accp.comAddress: 192.168.100.20[root@centos02 ~]# mkdir -p /var/www/benetcom      [root@centos02 ~]# mkdir -p /var/www/accpcom       [root@centos02 ~]# echo "www.benet.com" > /var/www/benetcom/index.html                                         [root@centos02 ~]# echo "www.accp.com" > /var/www/accpcom/index.html                                    [root@centos02 ~]# vim /usr/local/nginx/conf/nginx.conf         server  {                listen www.benet.com:80;                server_name www.benet.com;                charset utf-8;                access_log      logs/www.benet.com.access.log;                error_log       logs/www.benet.com.error.log;                location / {                                root /var/www/benetcom/;                                index index.html;                        }                }               server  {                listen www.accp.com:80;                server_name www.accp.com;                charset utf-8;                access_log      logs/www.accp.com.access.log;                error_log       logs/www.accp.com.error.log;                location / {                                root /var/www/accpcom/;                                index index.html;                        }                }[root@centos02 ~]# nginx -t     nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@centos02 ~]# systemctl restart named      [root@centos02 ~]# /etc/init.d/nginx restart      

至此客户端添加DNS地址,访问域名即可

3、部署MySQL数据库

MySQL数据库具体配置及概述请访问博文:Centos安装MySQL数据库

[root@centos02 ~]# groupadd mysql    [root@centos02 ~]# useradd -M -s /sbin/nologin -g mysql mysql               [root@centos02 ~]# yum -y install ncurses-devel [root@centos02 ~]# tar zxvf /usr/src/cmake-2.8.6.tar.gz -C /usr/src/    [root@centos02 ~]# cd /usr/src/cmake-2.8.6/ [root@centos02 cmake-2.8.6]# ./configure && gmake && gmake install       [root@centos02 ~]# tar zxvf /usr/src/mysql-5.5.22.tar.gz -C /usr/src/     [root@centos02 mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc                             [root@centos02 mysql-5.5.22]# make && make install [root@centos02 mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf                    cp:是否覆盖"/etc/my.cnf"? y   [root@centos02 mysql-5.5.22]# cp support-files/mysql.server /etc/init.d/mysqld     [root@centos02 ~]# chmod +x /etc/init.d/mysqld [root@centos02 ~]# chkconfig --add mysqld [root@centos02 ~]# chkconfig --level 35 mysqld on [root@centos02 ~]# vim /etc/profile PATH=$PATH:/usr/local/mysql/bin/[root@centos02 ~]# source /etc/profile   [root@centos02 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data     [root@centos02 ~]# systemctl start mysqld [root@centos02 ~]# systemctl enable mysqld [root@centos02 ~]# mysqladmin -u root password                           New password:        Confirm new password:     [root@centos02 ~]# mysql -uroot -ppwd@123                           mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || test               |+--------------------+4 rows in set (0.00 sec)

4、部署PHP解析环境

1)配置php依赖程序

[root@centos02 ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel                     [root@centos02 ~]# tar zxvf /usr/src/php-5.3.28.tar.gz -C /usr/src/                [root@centos02 ~]# cd /usr/src/php-5.3.28/[root@centos02 php-5.3.28]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-gd --with-zlib --with-jpeg-dir=/usr/lib --enable-mbstring --enable-fpm      [root@centos02 php-5.3.28]# make && make install [root@centos02 php-5.3.28]# ls -ld /usr/local/php/ drwxr-xr-x 10 root root 101 11月 28 20:04 /usr/local/php/

2)生成PHP配置文件优化程序执行位置

[root@centos02 php-5.3.28]# cp php.ini-production  /usr/local/php/php.ini     [root@centos02 ~]# ln -s /usr/local/php/sbin/* /usr/local/sbin/                 [root@centos02 ~]# ln -s /usr/local/php/bin/* /usr/local/bin/                  [root@centos02 ~]# tar zxvf /usr/src/zendguardloader-php-5.3-linux-glibc23-i386.tar.gz -C /usr/src/     [root@centos02 ~]# mv /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/ZendGuardLoader.so /usr/local/php/lib/php/               [root@centos02 ~]# vim /usr/local/php/php.ini zend_extension=/usr/local/php/lib/php/ZendGuardLoader.sozend_loader.enable=1

3)配置php-fpm支持加载动态网站

[root@centos02 ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf [root@centos02 ~]# vim /usr/local/php/etc/php-fpm.conf                    26 pid = run/php-fpm.pid141 user = nginx142 group = nginx[root@centos02 ~]# /usr/local/sbin/php-fpm [root@centos02 ~]# netstat -anptu | grep 9000 tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      127332/php-fpm: mas

4)配置nginx主配置文件支持php,配置php到www.benet.com的虚拟主机

[root@centos02 ~]# vim /usr/local/nginx/conf/nginx.conf                                         location ~ \.php$ {                root           /var/www/benetcom;                fastcgi_pass   127.0.0.1:9000;                fastcgi_index  index.php;                include        fastcgi.conf;                                }[root@centos02 ~]# nginx -t    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@centos02 ~]# vim /var/www/benetcom/index.php                    [root@centos02 ~]# /etc/init.d/nginx restart 

至此,客户端可以访问PHP测试页

三、基于LNMP架构搭建开源论坛

1、修改Nginx主配置文件,配置php到www.accp.com虚拟主机支持php-fpm

[root@centos02 ~]# vim /usr/local/nginx/conf/nginx.conf 104         server  {105                 listen www.accp.com:80;106                 server_name www.accp.com;107                 charset utf-8;108                 access_log      logs/www.accp.com.access.log;109                 error_log       logs/www.accp.com.error.log;110                 location / {111                                 root /var/www/accpcom/;112                                 index index.html index.php;113                         }114                 location ~ \.php$ {115                 root           /var/www/accpcom;116                 fastcgi_pass   127.0.0.1:9000;117                 fastcgi_index  index.php;118                 include        fastcgi.conf;119                                 }

2、上传论坛的源代码包到服务器


3、配置论坛

[root@centos02 ~]# unzip Discuz_X3.2_SC_UTF8.zip                                                    [root@centos02 ~]# ls anaconda-ks.cfg      Discuz_X3.2_SC_UTF8.zip  readme  utilityDiscuz_X3.2_SC_UTF8  initial-setup-ks.cfg     upload[root@centos02 ~]# mv ./upload/* /var/www/accpcom/[root@centos02 ~]# chmod -R +x /var/www/accpcom/                                           [root@centos02 ~]# chown -R nginx:nginx /var/www/accpcom/                        [root@centos02 ~]# mysql -uroot -ppwd@123mysql> create database bbs;                  mysql> grant all on bbs.* to bbs@localhost identified by 'pwd@123';              [root@centos02 ~]# /etc/init.d/nginx restart 

4、客户端访问论坛网站

1)客户端浏览器输入www.accp.com/install访问,单击我同意开始安装

2)检查安装环境

3)选择全新安装,单击下一步

4)设置数据库的用户及密码

5)等待安装完成即可

6)删除accp.com网站的默认首页
[root@centos02 ~]# rm -rf /var/www/accpcom/index.html

7)客户端访问

8)登录后台管理网站

至此论坛就已经部署完成。

------ 本文至此结束,感谢阅读 ------

配置 网站 客户 客户端 数据 服务 论坛 数据库 至此 架构 平台 服务器 环境 主机 光盘 文件 方式 目录 程序 虚拟主机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 性能测试基础数据库 谈剑锋网络安全演讲完整视频 指令是不是只能在服务器里面开 我眼里的网络安全800字 天义网络技术有限公司 河北2021网络安全答题答案 锐思财经文本数据库 考研网络安全工作方向 四川天脉网络技术有限公司 四川第六次人口普查数据库 亳州oa管理软件开发要多少钱 工业控制网络技术实验心得 计算机软件开发是冷门专业吗 安卓连接数据库db 第五人格不同服务器能玩吗 流放者柯南服务器后面的眼睛标志 计算机网络技术学软件开发吗 显示mysql数据库编码 医疗器械中的软件开发计划 服务器所有网口亮黄灯 华山服务器管理口装系统 三级数据库技术大题评判标准 十二核服务器 上海u3d软件开发 四川惠普服务器续保哪家便宜 网络安全犯罪宣传周 食物语安卓服务器名称 我的世界手机服务器海贼王编号 温州速达软件服务器 业务主数据库
0