详述Linux系统中搭建LNMP架构+Discuz论坛
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,LNMP架构解读LNMP平台就是Linux、Ngnix、MySQL、PHP的组合架构,需要Linux服务器、MySQL 数据库、PHP解析环境搭建Nginx服务下载Nginx源码包 Nginx源码包下
千家信息网最后更新 2024年11月27日详述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安全错误
数据库的锁怎样保障安全
《网络安全》网络运营者指
部队网络安全警示教育新闻稿
sqlai时代数据库
app软件开发编码
坦克世界需要调服务器准星吗
服务器安装存储
通用资源管理服务器
影片上传服务器的软件
网络安全等级保护pdf
微信技术数据库
虚拟试衣软件开发的市场痛点
网络安全拟态
电竞酒店网络安全管理系统
java编程自学软件开发
老年人网络安全视频
进入oracle数据库查询挂载
网络安全链路
服务器交换机路由器
刺激战场旧版本服务器
bim数据库技术
网络安全法律学习图片
网络安全责任制工作细则
浏阳市网络安全宣传周
电信宽带服务器映射不出去
数据库中int用法
方舟手游服务器怎么设置管理员
会议大屏互动软件开发
软件开发 ddd
如何加强网络安全管理PPT
保姆代运营网络技术有限公司