LNMP架构之Discue论坛
发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,LNMP架构LNMP平台就是Linux,Nginx,MySQL,PHP的组合架构,需要Linux服务器,MySQL服务器,PHP解析环境构成组件Linux是一类Unix计算机操作系统的统称,是目前最流
千家信息网最后更新 2025年02月09日LNMP架构之Discue论坛
LNMP架构
LNMP平台就是Linux,Nginx,MySQL,PHP的组合架构,需要Linux服务器,MySQL服务器,PHP解析环境
构成组件
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。Nginx是一个高性能的HTTP和反向代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
LAMP优势
Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少,小巧高效。
一,在Windows上将LAMP所需压缩软件包共享出来(此处如有问题请看之前的博客相关文章)
二,在Linux上使用远程共享获取文件并挂载到mnt目录下
[root@localhost ~]# smbclient -L //192.168.100.3/ ##远程共享访问Enter SAMBA\root's password: Sharename Type Comment --------- ---- ------- LNMP-C7 Disk [root@localhost ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt ##挂载到/mnt目录下
三,编译安装Nginx
1,解压源码包到/opt下,并查看
[root@localhost ~]# cd /mnt ##切换到挂载点目录[root@localhost mnt]# lsDiscuz_X3.4_SC_UTF8.zip nginx-1.12.2.tar.gzmysql-boost-5.7.20.tar.gz php-7.1.20.tar.gz[root@localhost mnt]# tar zxvf nginx-1.12.2.tar.gz -C /opt ##解压Nginx源码包到/opt下[root@localhost mnt]# cd /opt/ ##切换到解压的目录下[root@localhost opt]# lsnginx-1.12.2 rh
2,安装编译需要的环境组件包
[root@localhost opt]# yum -y install \gcc \ //c语言gcc-c++ \ //c++语言pcre-devel \ //pcre语言工具zlib-devel //数据压缩用的函式库
3,创建程序用户nginx并编译Nginx
[root@localhost opt]# useradd -M -s /sbin/nologin nginx ##创建程序用户,安全不可登陆状态[root@localhost opt]# id nginxuid=1001(nginx) gid=1001(nginx) 组=1001(nginx)[root@localhost opt]# cd nginx-1.12.0/ ##切换到nginx目录下[root@localhost nginx-1.12.0]# ./configure \ ##配置nginx> --prefix=/usr/local/nginx \ ##安装路径> --user=nginx \ ##用户名> --group=nginx \ ##用户组> --with-http_stub_status_module ##状态统计模块
4,编译和安装
[root@localhost nginx-1.12.0]# make ##编译...[root@localhost nginx-1.12.0]# make install ##安装...
5,优化nginx启动脚本,以便于系统识别
[root@localhost nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##创建软连接让系统识别nginx启动脚本[root@localhost nginx]# 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@localhost nginx]# nginx ##开启ngnix[root@localhost nginx]# netstat -ntap | grep 80 ##查看端口,nginx已经开启tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 39620/nginx: master [root@localhost nginx]# systemctl stop firewalld.service ##关闭防火墙[root@localhost nginx]# setenforce 0 [root@localhost nginx]# nginx ##开启
6,制作管理脚本,便于使用service管理使用
[root@localhost nginx]# cd /etc/init.d/ ##切换到启动配置文件目录[root@localhost init.d]# lsfunctions netconsole network README[root@localhost init.d]# vim nginx ##编辑启动脚本文件#!/bin/bash# chkconfig: - 99 20 ##注释信息# description: Nginx Service Control ScriptPROG="/usr/local/nginx/sbin/nginx" ##设置变量为nginx命令文件PIDF="/usr/local/nginx/logs/nginx.pid" ##设置变量PID文件 进程号为5346case "$1" in start) $PROG ##开启服务 ;; stop) kill -s QUIT $(cat $PIDF) ##关闭服务 ;; restart) ##重启服务 $0 stop $0 start ;; reload) ##重载服务 kill -s HUP $(cat $PIDF) ;; *) ##错误输入提示 echo "Usage: $0 {start|stop|restart|reload}" exit 1esacexit 0[root@localhost init.d]# chmod +x /etc/init.d/nginx ##给启动脚本执行权限[root@localhost init.d]# chkconfig --add nginx ##添加到service管理器中[root@localhost init.d]# service nginx stop ##就可以使用service控制nginx[root@localhost init.d]# service nginx start
7,或者方便systemctl管理,配置文件(为方便写一种即可)
[root@localhost ~]# vim /lib/systemd/system/nginx.service ##创建配置文件[Unit]Description=nginx ##描述After=network.target ##描述服务类型[Service]Type=forking ##后台运行形式PIDFile=/usr/local/nginx/logs/nginx.pid ##PID文件位置ExecStart=/usr/local/nginx/sbin/nginx ##启动服务ExecReload=/usr/bin/kill -s HUP $MAINPID ##根据PID重载配置ExecStop=/usr/bin/kill -s QUIT $MAINPID ##根据PID终止进程PrivateTmp=true[Install]WantedBy=multi-user.target[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service ##设置执行权限[root@localhost ~]# systemctl stop nginx.service ##关闭[root@localhost ~]# systemctl start nginx.service ##开启
四,编译安装MySQL
1,安装环境组件
[root@localhost ~]# yum install -y \ ##安装环境组件> ncurses \> ncurese-devel \ ##控制终端屏幕显示的库> bison \ ##语法分析工具> cmake ##cmake工具[root@localhost ~]# useradd -s /sbin/nologin mysql ##创建程序用户
2,解压源码包到/opt下
[root@localhost ~]# cd /mnt[root@localhost mnt]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt ##解压源码包到/opt[root@localhost mnt]# cd /opt[root@localhost opt]# lsmysql-5.7.20 nginx-1.12.2 rh
3,cmake配置
[root@localhost opt]# cd mysql-5.7.20/ ##切换到MySQL目录下[root@localhost mysql-5.7.20]# cmake \ ##cmake配置-DCMAKE_INSTALL_PREFIX=/usr/localmysql \ ##安装路径-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ ##定义sock文件连接数据库文件-DSYSCONFDIR=/etc \ ##配置文件目录-DSYSTEMD_PID_DIR=/usr/local/mysql \ ##PID文件目录-DDEFAULT_CHARSET=utf8 \ ##指定字符集-DDEFAULT_COLLATION=utf8_general_ci \ ##指定字符集默认-DWITH_INNOBASE_STORAGE_ENGINE=1 \ ##存储引擎-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/usr/local/mysql/data \ ##数据库数据文件目录-DWITH_BOOST=boost \ ##底层运行库-DWITH_SYSTEMD=1 ##主从参数>
4,编译及安装
[root@localhost mysql-5.7.20]# make ##编译[root@localhost mysql-5.7.20]# make install ##安装
5,配置mysql,调整配置文件
[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/ ##数据库目录进行权限调整[root@localhost mysql-5.7.20]# vim /etc/my.cnf ##调整配置文件[client] ##客户端port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql] ##客户端 port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld] ##服务器 user = mysql ##用户basedir = /usr/local/mysql ##设置mysql的安装目录datadir = /usr/local/mysql/data ##设置mysql数据库的数据的存放目录port = 3306 ##设置3306端口character_set_server=utf8 ##中文字符集pid-file = /usr/local/mysql/mysqld.pid ##pid文件路径socket = /usr/local/mysql/mysql.sock ##sock文件路径server-id = 1 ##主从参数sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES##支持模块>[root@localhost mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile##将MySQL写到本地环境配置中[root@localhost mysql-5.7.20]# echo 'export PATH' >> /etc/profile ##设置全局环境配置[root@localhost mysql-5.7.20]# source /etc/profile ##重启配置文件
6,初始化数据库
[root@localhost mysql-5.7.20]# cd /usr/local/mysql/[root@localhost mysql]# bin/mysqld \> --initialize-insecure \ ##初始化> --user=mysql \ ##用户> --basedir=/usr/local/mysql \ ##安装目录> --datadir=/usr/local/mysql/data ##数据库数据文件目录
7,将MySQL服务配置文件复制到/usr/lib/systemd/system/下便于使用systemctl管理
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ ##便于systemctl管理[root@localhost mysql]# systemctl enable mysqld ##开机自启动[root@localhost mysql]# systemctl start mysqld.service ##开启数据库[root@localhost mysql]# netstat -ntap | grep 3306 ##查看MySQL端口号开启情况tcp6 0 0 :::3306 :::* LISTEN 59464/mysqld
8,设置MySQL密码
[root@localhost mysql]# mysqladmin -u root -p passwordEnter password: ##空格New password: ##新密码Confirm new password: ##确认密码
五,编译安装PHP
1,安装环境依赖包
[root@localhost mysql]# yum install -y \> libjpeg \ ##jpeg图片格式和开发包> libjpeg-devel \> libpng libpng-devel \ ##png图片和开发包> freetype freetype-devel \ ##字体库> libxml2 \ ##xml文件库> libxml2-devel \> zlib zlib-devel \ ##压缩库 > curl curl-devel \ ##支持数据文件下载工具> openssl openssl-devel ##安全访问连接
2,解压源码包到/opt
[root@localhost mysql]# cd /mnt ##切换到挂载点[root@localhost mnt]# tar jxvf php-7.1.10.tar.bz2 -C /opt ##解压源码包到/opt[root@localhost mnt]# cd /opt[root@localhost opt]# ls ##查看mysql-5.7.20 nginx-1.12.2 php-7.1.10 rh
3,配置PHP
[root@localhost opt]# cd php-7.1.10/[root@localhost php-7.1.10]# ./configure --prefix=/usr/local/php ##安装路径--with-mysql-sock=/usr/local/mysql/mysql.sock ##连接文件建立通信桥梁--with-mysqli ##客户端支持库--with-zlib ##压缩--with-curl ##支持上传下载功能--with-gd ##gd图像支持图片处理库--with-jpeg-dir ##jpeg--with-png-dir ##png--with-freetype-dir ##字体--with-openssl ##安全访问连接--enable-fpm ##fpm支持动态请求模块--enable-mbstring ##支持多字节的字符串--enable-xml ##xml文件--enable-session ##session支持会话--enable-ftp ##ftp服务--enable-pdo ##驱动连接管理--enable-tokenizer ##PHP自带函数--enable-zip ##zip压缩包
4,编译及安装
[root@localhost php-7.1.10]# make ##编译[root@localhost php-7.1.10]# make install ##安装
5,配置核心配置文件(php.ini核心配置文件,php-fpm.conf进程服务配置文件,www.conf扩展配置文件 )
[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini ##复制到安装目录lib库中[root@localhost php-7.1.10]# vim /usr/local/php/lib/php.ini ##配置核心配置文件mysqli.default_socket = /usr/local/mysql/mysql.sock ##默认连接文件date.timezone = Asia/Shanghai ##时间[root@localhost php-7.1.10]# /usr/local/php/bin/php -m ##验证安装的模块
6,配置及优化FPM模块
[root@localhost php-7.1.10]# cd /usr/local/php/etc/[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf ##优化复制默认进程服务配置文件[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d/[root@localhost php-fpm.d]# cp www.conf.default www.conf ##优化复制扩展配置文件[root@localhost php-fpm.d]# cd /usr/local/php/etc/ [root@localhost etc]# vim php-fpm.conf ##开启fpm.pid进程pid = run/php-fpm.pid[root@localhost etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini[root@localhost etc]# netstat -ntap | grep 9000 ##查看端口信息tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 69104/php-fpm: mast [root@localhost etc]# ln -s /usr/local/php/bin/* /usr/local/bin/ ##创建软连接便于系统识别[root@localhost etc]# ps aux | grep -c "php-fpm"4
7,让Nginx支持PHP功能
[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf ##配置nginx配置文件 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; ##站点路径 include fastcgi_params; } [root@localhost etc]# vim /usr/local/nginx/html/index.php ##测试php网页
8,进入数据库创建bbs数据库并设置管理员和密码
[root@localhost etc]# mysql -u root -pEnter password: ##进入数据库,密码为之前设定的abc23mysql> CREATE DATABASE BBS; ##创建bbs数据库Query OK, 1 row affected (0.00 sec)mysql> GRANT all ON bbs.* TO 'bbsusers'@'%' IDENTIFIED BY 'admin123'; ##提权数据库用户bbsuser为管理员并设定密码Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> GRANT all ON bbs.* TO 'bbsusers'@'localhost' IDENTIFIED BY 'admin123';Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges; ##刷新数据库Query OK, 0 rows affected (0.00 sec)mysql> quit ##退出[root@localhost etc]# vim /usr/local/nginx/html/index.php ##测试数据库连接状态Success!";else echo "Fail!!";?>[root@localhost etc]# systemctl restart nginx.service ##重启服务
六,安装Discuz论坛压缩包
1,解压缩压缩包到/opt下,并将目录内容复制到bbs站点中
[root@localhost etc]# cd /mnt [root@localhost mnt]# unzip Discuz_X3.4_SC_UTF8.zip -d /opt ##解压到/opt下[root@localhost mnt]# cd /opt[root@localhost opt]# lsdir_SC_UTF8 mysql-5.7.20 nginx-1.12.2 php-7.1.10 rh 说明.htm[root@localhost opt]# cd dir_SC_UTF8/ ##进入论坛目录[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs/ ##复制/opt目录里的内容到html站点的bbs目录中
2,进入站点并给程序用户提权
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/ ##进入bbs站点目录[root@localhost bbs]# chown -R root:nginx ./config/ ##为程序用户提权[root@localhost bbs]# chown -R root:nginx ./data/ ##修改属组[root@localhost bbs]# chown -R root:nginx ./uc_client/[root@localhost bbs]# chown -R root:nginx ./uc_server/[root@localhost bbs]# chmod -R 777 ./config/ ##修改全部权限[root@localhost bbs]# chmod -R 777 ./data/[root@localhost bbs]# chmod -R 777 ./uc_client/[root@localhost bbs]# chmod -R 777 ./uc_server/
3,访问192.168.235.137/bbs站点,安装Discuz论坛
4,设置运行环境为全新安装
5,安装数据库
数据服务器:192.168.13.130(此处输入创建数据库主机的IP)数据库名:bbs数据库用户名:bbsusers(用户名可在命令行修改)数据库密码:admin123(密码可在命令行修改)管理员账号:admin(该账号为默认)密码:123123(密码可直接在网页设定)
七,成功搭建并访问论坛
谢谢阅读!!!
文件
配置
数据
目录
数据库
服务
用户
管理
编译
密码
支持
环境
系统
服务器
源码
站点
脚本
路径
切换
模块
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
期货自动化编程软件开发
中孚服务器管理 招标
软件开发在校个人简历
软件开发注册公司
mac怎么学网络技术
数据库清除表中的照片字段内容
怎么做软件开发私活
超凡先锋哪个服务器
梦幻找个69散人多的服务器
江苏调度服务器生产云服务器
网络安全的具体步骤
蘑菇云游显示分配服务器错误
微观调查数据库大全
软件开发防注入
csgo社区服务器皮肤地图
大众点评如何导出数据库
fdc机房服务器是什么
数据库的可靠体现在什么性
服务器管理口ip更改
延安铭馨互联网科技有限公司
十堰软件开发专业服务
快团团软件开发
杭州破晓网络技术有限公司
无锡软件开发费用明细
天融信网络安全研讨
pos服务器
pve 数据库虚拟机
珠海世界数据库大会
战略支援部队网络安全分队
社交软件开发组建