详述Linux系统中搭建LNMP架构+Discuz论坛
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,LNMP架构解读LNMP平台就是Linux、Ngnix、MySQL、PHP的组合架构,需要Linux服务器、MySQL 数据库、PHP解析环境搭建Nginx服务下载Nginx源码包 Nginx源码包下
千家信息网最后更新 2025年01月23日详述Linux系统中搭建LNMP架构+Discuz论坛
LNMP架构解读
- LNMP平台就是Linux、Ngnix、MySQL、PHP的组合架构,需要Linux服务器、MySQL 数据库、PHP解析环境
搭建Nginx服务
下载Nginx源码包 Nginx源码包下载
- 在Linux虚拟机中挂载存放源码包的目录
[root@localhost ~]# mount.cifs //192.168.100.10/lnmp /mnt/ //挂载目录Password for root@//192.168.100.10/lnmp: [root@localhost ~]# cd /mnt/[root@localhost mnt]# lsDiscuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz nginx-1.12.2.tar.gz php-7.1.20.tar.gz[root@localhost mnt]# yum install gcc gcc-c++ make pcre-devel zlib-devel -y //安装环境包已加载插件:fastestmirror, langpacksLoading mirror speeds from cached hostfile * base: ftp.sjtu.edu.cn...//省略部分内容...已安装: gcc.x86_64 0:4.8.5-39.el7 gcc-c++.x86_64 0:4.8.5-39.el7 pcre-devel.x86_64 0:8.32-17.el7 zlib-devel.x86_64 0:1.2.7-18.el7 作为依赖被安装: cpp.x86_64 0:4.8.5-39.el7 glibc-devel.x86_64 0:2.17-292.el7 glibc-headers.x86_64 0:2.17-292.el7 kernel-headers.x86_64 0:3.10.0-1062.4.1.el7 libmpc.x86_64 0:1.0.1-3.el7 libstdc++-devel.x86_64 0:4.8.5-39.el7 更新完毕: make.x86_64 1:3.82-24.el7 作为依赖被升级: glibc.x86_64 0:2.17-292.el7 glibc-common.x86_64 0:2.17-292.el7 libgcc.x86_64 0:4.8.5-39.el7 libgomp.x86_64 0:4.8.5-39.el7 libstdc++.x86_64 0:4.8.5-39.el7 zlib.x86_64 0:1.2.7-18.el7 完毕![root@localhost mnt]# tar zvxf nginx-1.12.2.tar.gz -C /opt/ //解压环境包[root@localhost mnt]# cd /opt/[root@localhost opt]# lsnginx-1.12.2 rh[root@localhost opt]# cd nginx-1.12.2/[root@localhost nginx-1.12.2]# lsauto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src[root@localhost nginx-1.12.2]# useradd -M -s /sbin/nologin nginx //创建Nginx程序用户,不可登录系统,不创建家目录[root@localhost nginx-1.12.2]# ./configure \ //配置nginx > --prefix=/usr/local/nginx \ //指定安装目录> --user=nginx \ //指定用户> --group=nginx \ //指定组> --with-http_stub_status_module //关联统计模块...//省略部分内容... nginx http access log file: "/usr/local/nginx/logs/access.log" nginx http client request body temporary files: "client_body_temp" nginx http proxy temporary files: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp"[root@localhost nginx-1.12.2]# make && make install //制作安装nginx...//省略部分内容...test -d '/usr/local/nginx/html' \ || cp -R html '/usr/local/nginx'test -d '/usr/local/nginx/logs' \ || mkdir -p '/usr/local/nginx/logs'make[1]: 离开目录"/opt/nginx-1.12.2"[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ //将命令放入系统命令下[root@localhost nginx-1.12.2]# cd /lib/systemd/system //进入system管理目录[root@localhost system]# vim nginx.service //创建nginx程序管理脚本[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/bin/kill -s HUP $MAINPIDExecStop=/usr/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target:wq[root@localhost system]# chmod 754 nginx.service //添加执行权限[root@localhost system]# systemctl start nginx.service //启动服务[root@localhost system]# netstat -ntap | grep 80 //查看端口是否开启tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4593/nginx: master[root@localhost system]# systemctl stop firewalld.service //关闭防火墙 [root@localhost system]# setenforce 0 //关闭增强性安全功能
- 在客户机测试网页是否可以正常访问
编译安装MySQL
- 下载源码包,并放入已经挂载到Linux的目录 MySQL源码包下载
[root@localhost system]# yum install ncurses ncurses-devel bison cmake -y //安装环境包 ncurses ncurses-devel 字符终端处理工具 bison 语法分析器...//省略部分内容... 已安装: bison.x86_64 0:3.0.4-2.el7 cmake.x86_64 0:2.8.12.2-2.el7 ncurses-devel.x86_64 0:5.9-14.20130511.el7_4 作为依赖被安装: m4.x86_64 0:1.4.16-10.el7 更新完毕: ncurses.x86_64 0:5.9-14.20130511.el7_4 作为依赖被升级: ncurses-base.noarch 0:5.9-14.20130511.el7_4 ncurses-libs.x86_64 0:5.9-14.20130511.el7_4 完毕![root@localhost system]# useradd -s /sbin/nologin mysql //创建mysql程序目录[root@localhost system]# cd /mnt/[root@localhost mnt]# lsDiscuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz nginx-1.12.2.tar.gz php-7.1.20.tar.gz[root@localhost mnt]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt/ //解压源码包 ...//省略部分内容...mysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_set.hppmysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_set_fwd.hppmysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_map_fwd.hppmysql-5.7.20/boost/boost_1_59_0/boost/timer.hpp[root@localhost mnt]# cd /opt[root@localhost opt]# lsmysql-5.7.20 nginx-1.12.2 rh[root@localhost opt]# cd mysql-5.7.20/[root@localhost mysql-5.7.20]# cmake \ //使用cmake配置mysql-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定安装路径-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //指定链接性文件路径-DSYSCONFDIR=/etc \ //指定配置文件存放位置-DSYSTEMD_PID_DIR=/usr/local/mysql \ //指定PID文件存放位置-DDEFAULT_CHARSET=utf8 \ //指定字符集utf-8-DDEFAULT_COLLATION=utf8_general_ci \ //指定字符集utf-8-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 \ //关联支持c++运行库-DWITH_SYSTEMD=1 //开启systemd(主从复制使使用)[root@localhost mysql-5.7.20]# make //制作MySQL[root@localhost mysql-5.7.20]# make install //安装MySQL[root@localhost mysql-5.7.20]# cd /usr/local/ //进入MySQL安装目录[root@localhost local]# ls -l //长格式常看总用量 0drwxr-xr-x. 2 root root 6 11月 5 2016 bindrwxr-xr-x. 2 root root 6 11月 5 2016 etcdrwxr-xr-x. 2 root root 6 11月 5 2016 gamesdrwxr-xr-x. 2 root root 6 11月 5 2016 includedrwxr-xr-x. 2 root root 6 11月 5 2016 libdrwxr-xr-x. 2 root root 6 11月 5 2016 lib64drwxr-xr-x. 2 root root 6 11月 5 2016 libexecdrwxr-xr-x. 11 root root 197 11月 11 21:42 mysqldrwxr-xr-x. 11 root root 151 11月 11 20:49 nginxdrwxr-xr-x. 2 root root 19 11月 11 20:49 sbindrwxr-xr-x. 5 root root 49 8月 10 03:42 sharedrwxr-xr-x. 2 root root 6 11月 5 2016 src[root@localhost local]# chown -R mysql.mysql mysql/ //更改mysql目录属主、属组为mysql程序用户[root@localhost local]# ls -l总用量 0drwxr-xr-x. 2 root root 6 11月 5 2016 bindrwxr-xr-x. 2 root root 6 11月 5 2016 etcdrwxr-xr-x. 2 root root 6 11月 5 2016 gamesdrwxr-xr-x. 2 root root 6 11月 5 2016 includedrwxr-xr-x. 2 root root 6 11月 5 2016 libdrwxr-xr-x. 2 root root 6 11月 5 2016 lib64drwxr-xr-x. 2 root root 6 11月 5 2016 libexecdrwxr-xr-x. 11 mysql mysql 197 11月 11 21:42 mysqldrwxr-xr-x. 11 root root 151 11月 11 20:49 nginxdrwxr-xr-x. 2 root root 19 11月 11 20:49 sbindrwxr-xr-x. 5 root root 49 8月 10 03:42 sharedrwxr-xr-x. 2 root root 6 11月 5 2016 src[root@localhost local]# vim /etc/my.cnf[client]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql]port = 3306 default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld]user = mysqlbasedir = /usr/local/mysqldatadir = /usr/local/mysql/dataport = 3306character_set_server=utf8pid-file = /usr/local/mysql/mysqld.pidsocket = /usr/local/mysql/mysql.sockserver-id = 1sql_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:wq[root@localhost local]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile //在profile目录定义环境变量[root@localhost local]# echo 'export PATH' >> /etc/profile //将声明环境变量写入profile目录[root@localhost local]# source /etc/profile //使用source执行profile目录[root@localhost local]# echo $PATH //输出环境变量,查看定义的环境变量是否被系统识别/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@localhost local]# cd /usr/local/mysql/[root@localhost mysql]# bin/mysqld \ --initialize-insecure \ //初始化数据库--user=mysql \--basedir=/usr/local/mysql \ //指定数据库工作路径--datadir=/usr/local/mysql/data //指定数据存放位置[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /lib/systemd/system/ //复制启动脚本到system管理器[root@localhost mysql]# systemctl enable mysqld.service //设置开启自启动Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.[root@localhost mysql]# systemctl start mysqld.service //启动服务[root@localhost mysql]# netstat -ntap | grep 3306 //查看服务端口是否开启tcp6 0 0 :::3306 :::* LISTEN 24084/mysqld[root@localhost mysql]# mysqladmin -u root -p password //设置数据库密码Enter password: //输入旧密码,没有密码直接回车New password: //设置新密码Confirm new password: //再次输入新密码Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
源码编译安装php
- 下载源码包,并放入已经挂载到Linux的目录 php源码包下载
[root@localhost ~]# yum install -y libjpeg libjpeg-devel libpng libpng-devel libxml2 libxml2-devel freetype freetype-devel zlib zlib-devel curl curl-devel openssl openssl-devel //安装环境包...//省略部分内容...已安装: freetype-devel.x86_64 0:2.8-14.el7 libcurl-devel.x86_64 0:7.29.0-54.el7 libjpeg-turbo-devel.x86_64 0:1.2.90-8.el7 libpng-devel.x86_64 2:1.5.13-7.el7_2 libxml2-devel.x86_64 0:2.9.1-6.el7_2.3 openssl-devel.x86_64 1:1.0.2k-19.el7...//省略部分内容...完毕![root@localhost ~]# cd /mnt/[root@localhost mnt]# lsDiscuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz nginx-1.12.2.tar.gz php-7.1.20.tar.gz[root@localhost mnt]# tar zxvf php-7.1.20.tar.gz -C /opt/ //解压源码包[root@localhost mnt]# cd /opt/[root@localhost opt]# lsmysql-5.7.20 nginx-1.12.2 php-7.1.20 rh[root@localhost opt]# cd php-7.1.20/[root@localhost php-7.1.20]# ./configure \ //配置php--prefix=/usr/local/php \ //定义安装路径--with-mysql-sock=/usr/local/mysql/mysql.sock \ //关联mysql数据库--with-mysqli \ //关联MySQL客户端--with-zlib \ //支持压缩--with-curl \ --with-gd \ //支持图像处理--with-jpeg-dir \ //支持jpeg图片--with-png-dir \--with-freetype-dir \ //支持字体处理--with-openssl \ //支持安全功能--enable-fpm \ //支持动态请求--enable-mbstring \ //支持字符串处理--enable-xml \ //支持xml格式--enable-session \ //指出session会话--enable-ftp \ //指出ftp功能--enable-pdo \ //指出通用接口--enable-tokenizer \ //支持tokenizer函数库--enable-zip //支持压缩[root@localhost php-7.1.20]# make && make install //制作安装php[root@localhost php-7.1.20]# cp php.ini-development /usr/local/php/lib/php.ini //复制php配置文件到安装的php目录下[root@localhost php-7.1.20]# vim /usr/local/php/lib/php.ini //编辑配置文件...//省略部分内容...; Default socket name for local MySQL connects. If empty, uses the built-in; MySQL defaults.; http://php.net/mysqli.default-socketmysqli.default_socket = /usr/local/mysql.sock //找到此条目,输入关联的mysql数据路径...//省略部分内容...[Date]; Defines the default timezone used by the date functions; http://php.net/date.timezonedate.timezone = Asia/Shanghai //找到此条目,设置时区...//省略部分内容...:wq[root@localhost php-7.1.20]# /usr/local/php/bin/php -m //查看php默认模块是否开启[PHP Modules]Corectypecurl...//省略部分内容...xmlxmlreaderxmlwriterzipzlib[Zend Modules][root@localhost etc]# cp php-fpm.conf.default php-fpm.conf //开启fpm配置文件[root@localhost etc]# vim php-fpm.conf //编辑配置文件...//省略部分内容...[global]; Pid file; Note: the default prefix is /usr/local/php/var; Default Value: nonepid = run/php-fpm.pid //开启此条目...//省略部分内容...:wq[root@localhost etc]# cd php-fpm.d/[root@localhost php-fpm.d]# lswww.conf.default[root@localhost php-fpm.d]# cp www.conf.default www.conf //开启扩展配置文件[root@localhost php-fpm.d]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini //启动php[root@localhost php-fpm.d]# netstat -ntap | grep 9000 //查看端口是否开启tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 35687/php-fpm: mast[root@localhost php-fpm.d]# ln -s /usr/local/php/bin/* /usr/local/bin/ //将php命令建立软链接到系统命令目录
- 设置nginx支持php
[root@localhost php-fpm.d]# 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; }...//省略部分内容...:wq[root@localhost php-fpm.d]# systemctl stop nginx.service //停止nginx服务[root@localhost php-fpm.d]# systemctl start nginx //启动服务[root@localhost php-fpm.d]# cd /usr/local/nginx/html/ //进入nginx站点目录[root@localhost html]# ls50x.html index.html[root@localhost html]# mv index.html index.php //将index.html更改为index.php[root@localhost html]# ls50x.html index.php[root@localhost html]# vim index.php //编辑网页内容:wq
- 测试lnpm架构是否搭建成功
搭建Discuz论坛
- 下载Discuz,并放入已经挂载到Linux的目录 Discuz压缩包下载
[root@localhost html]# mysql -u root -p //进入mysql数据库Enter password: //输入密码Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 6Server version: 5.7.20 Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> CREATE DATABASE bbs; //创建bbs数据库Query OK, 1 row affected (0.02 sec)mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';//提权数据库用户bbsuser为管理员并设定密码Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> GRANT all ON bbs.* TO 'bbsuser'@'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> show databases; //查看数据库内容+--------------------+| Database |+--------------------+| information_schema || bbs || mysql || performance_schema || sys |+--------------------+5 rows in set (0.00 sec)mysql> quit //退出Bye[root@localhost html]# cd /mnt[root@localhost mnt]# lsDiscuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz nginx-1.12.2.tar.gz php-7.1.20.tar.gz[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.20 rh 说明.htm[root@localhost opt]# cd dir_SC_UTF8/ //进入论坛目录[root@localhost dir_SC_UTF8]# lsreadme upload utility[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs //复制/opt目录里的内容到html站点的bbs目录中[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/
- 使用客户机访问站点,安装Discuz论坛
目录
内容
部分
数据
支持
数据库
源码
配置
文件
环境
服务
密码
站点
路径
关联
系统
位置
变量
命令
字符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州网络安全专业大学
cae软件开发 ppt
榆树智能化网络技术质量保障
江苏手机软件开发服务
服务器一兆带宽多少钱
虹口区无线网络技术售后保障
电力系统网络安全管理
初中学网络安全工程师
数据库照片
5. 数据库的三类用户
大型网络数据库网址有哪些
济南多媒体安全文化展厅软件开发
科脉v8前台连接不上数据库
greenplum数据库怎么用
中国大学生网络安全在线
网络安全横幅图片素材
气球服务器
服务器与操作系统间的区别
网络安全法网络安全审查
服务器加raid5
建立专病数据库的技术路线
惠普服务器关闭pxe
北航网络安全学院密码学
放置三国哪个服务器好
桌面背景下载软件开发
广东软通动力网络技术
乐陵软件开发
异地连接数据库
安卓app软件开发代理
网络安全讲稿500字