linux系统---LNMP架构下部署Discuz社区论坛与Wordpress博客

news2024/11/18 9:37:11

目录

一、编译安装Nginx

1、关闭防火墙

2、安装依赖包 

3、创建运行用户

  4、压缩软件包并编译安装

5、软链接路径优化   

​编辑 6、添加Nginx系统服务

二.编译安装MySQL服务 

1.安装依赖环境

​编辑 2、创建运行用户

3、编译安装

​编辑 4、修改mysql 配置文件

5、更改mysql安装目录和配置文件的属主属组

6、设置路径环境变量

7、初始化数据库 

​编辑 8、添加mysqld系统服务

​编辑 9、修改mysql 的登录密码

10、授权远程登录

三、编译安装php软件

1、安装环境依赖包

 2、编译安装

3、路径优化 

4、调整PHP配置文件

5、启动php-fpm

四、配置 Nginx 支持 PHP 解析

1、进入nginx主配置文件进行修改

2、创建并验证PHP测试页 

3、验证数据库工作是否正常 

五、安装论坛

1、安装部署

2、网页测试 

 六、安装博客

 


一、编译安装Nginx

1、关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2、安装依赖包 

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

3、创建运行用户

  • nginx 服务程序默认 以 nobody 身份运行,建议为其创建专门的用户账户,以便更准确的控制访问权限
useradd -M -s /sbin/nologin nginx

  4、压缩软件包并编译安装

#切换至/opt
cd /opt
 
#拖入安装压缩包
 
#解压nginx文件
tar zxvf nginx-1.22.0.tar.gz 
 
#切换目录
cd nginx-1.22.0/
​
#检测环境并安装功能
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
​
#安装
make  -j4 && make install

5、软链接路径优化   

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

 6、添加Nginx系统服务

#创建.service文件
vim /lib/systemd/system/nginx.service
 
#文件内容
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
​
 
##磁盘上的ngin服务更改,运行'systemctl daemon-reload'重新加载单元。
systemctl daemon-reload 
#赋予权限
chmod 777 /lib/systemd/system/nginx.service
#开机自启动
systemctl enable --now nginx.service

二.编译安装MySQL服务 

1.安装依赖环境

yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
 
yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

 2、创建运行用户

useradd -M -s /sbin/nologin  mysql

3、编译安装

#切换至/opt
cd /opt/
 
#解压下载好的压缩包
tar -zxf mysql-boost-5.7.20.tar.gz 
 
#切换至解压后的目录
cd mysql-5.7.20/
​
#检测环境并安装功能
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-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
​
#安装(时间较久
make  -j4 && make install
 
 
 
#############################注释#############################
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
#指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \
#指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \
#指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \
#指定默认使用的字符集编码,如utf8
-DDEFAULT_COLLATION=utf8_general_ci \
#指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
#安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
#安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \
#指定数据库文件的存储路径
-DWITH_BOOST=boost \
#指定boost的路径,
-DWITH_SYSTEMD=1
#生成便于systemctl管理的文件

 

 4、修改mysql 配置文件

vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
 
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
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

5、更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

6、设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile

7、初始化数据库 

切换至指定目录
cd /usr/local/mysql/bin/
 
#初始化数据库
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

 8、添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

 9、修改mysql 的登录密码

mysqladmin -u root -p password "abc123"     
给root账号设置密码为abc123,提示输入的是原始密码(为空)要求输入的是原密码直接回车即可

10、授权远程登录

mysql -u root -p 
#登入数据库验证是否成功
quit
#退出数据库

三、编译安装php软件

1、安装环境依赖包

yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

 2、编译安装

#切换至/opt目录
cd /opt/
#解压文件
tar -jxf php-7.1.10.tar.bz2 
#切换至解压后的目录
cd 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 \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
​
#安装
make -j4 && make install

3、路径优化 

ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

4、调整PHP配置文件

php有三个配置文件: 
php.ini            主配置文件  
php-fpm.conf    进程服务配置文件 
www.conf        扩展配置文件
 
 
#调整主配置文件:
cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini    
vim /usr/local/php/lib/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai
 
php -m                     #验证安装的模块
 
 
#调整进程服务配置文件:
cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid
 
#调整扩展配置文件:
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

 

 

5、启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000
 
 
#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。
 
cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service

四、配置 Nginx 支持 PHP 解析

1、进入nginx主配置文件进行修改

vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
location ~ \.php$ {
	root           html;   $document_root
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;	#将 /scripts 修改为nginx的工作目录
   #fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  #$document_root 代表当前请求在root指令中指定的值
	include        fastcgi_params;
}
 
systemctl restart nginx.service
 

2、创建并验证PHP测试页 

#创建网页文件
vim /usr/local/nginx/html/index.php
​
<?php
phpinfo();
?>
​
#重启nginx服务
systemctl restart nginx
​
#在网页测试
http://192.168.80.112/index.php

3、验证数据库工作是否正常 

mysql -u root -p
CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
 
vim /usr/local/nginx/html/index.php      		#替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.80.112','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
 
浏览器访问
http://192.168.80.112/index.php

五、安装论坛

1、安装部署

【部署 Discuz!社区论坛 Web 应用】
cd /opt
unzip Discuz_X3.4_SC_UTF8.zip  
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/
 
调整论坛目录的权限:
cd /usr/local/nginx/html/bbs/
chown -R nginx.nginx ./config/
chown -R nginx.nginx ./data/
chown -R nginx.nginx ./uc_client/
chown -R nginx.nginx ./uc_server/
都要处理
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/
论坛页面访问
http://192.168.91.100/bbs/install/index.php

2、网页测试 

http://192.168.80.112/bbs/install/index.php
#安装
 
http://192.168.80.112/bbs/index.php
#可以直接去论坛首页
 
 
#####################数据库信息#########################
 
数据库服务器:localhost     ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:admin123

 

 

 

 六、安装博客

tar xf wordpress-5.4.1-zh_CN.tar.gz  -C /opt/
cp -r wordpress  /usr/local/nginx/html/
安装页面在  wp-admin   下
 
chmod 777 wordpress/ -R
 
 
mysql -u root -p
CREATE DATABASE blog;
GRANT all ON blog.* TO 'bloguser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON blog.* TO 'bloguser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
wordpress/wp-admin
 
 
http://192.168.80.112/wordpress/wp-admin/install.php
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
 
 
#网页访问
http://192.168.91.100/wordpress/wp-admin/index.php

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Opencv基本操作 (上)

目录 图像基本操作 阈值与平滑处理 图像阈值 图像平滑处理 图像形态学操作 图像梯度计算 Sobel 算子 Canny 边缘检测 图像金字塔与轮廓检测 图像轮廓 接口定义 轮廓绘制 轮廓特征与相似 模板匹配 傅里叶变换 傅里叶变换的作用 滤波 图像基本操作 读取图像&…

electron 项目环境变量使用注意 public

问题 最近项目中&#xff0c;electron需要调用唤醒本地的另一个客户端程序&#xff0c;但是这个客户端程序报错了。sqlite3 报out of memory. apiSHGetFolderPathW 获取CSIDL_COMMON_DOCUMENTS报 1008&#xff0c;试图引用不存在的令牌。 排查 一看到这个&#xff0c;首先想…

javaWeb学习04

AOP核心概念: 连接点: JoinPoint, 可以被AOP控制的方法 通知: Advice 指哪些重复的逻辑&#xff0c;也就是共性功能(最终体现为一个方法) 切入点: PointCut, 匹配连接点的条件&#xff0c;通知仅会在切入点方法执行时被应用 目标对象: Target, 通知所应用的对象 通知类…

Django Web架构:全面掌握Django模型字段(上)

Django Web架构 全面掌握Django模型字段&#xff08;上&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article…

数电学习笔记——逻辑函数及其描述方法

目录 一、逻辑函数 二、逻辑函数的描述方法 1、逻辑真值表 2、逻辑函数式 3、逻辑图 4、波形图 三、逻辑函数的两种标准形式 1、最小项与最大项 最小项 最小项的性质 最大项 最大项的性质 2、最大项与最小项的关系 3、逻辑函数的最小项之和形式 4、逻辑函数的最…

Unity(第二十四部)UI

在游戏开发中&#xff0c;用户界面&#xff08;UI&#xff09;是至关重要的一部分。它负责与玩家进行交互&#xff0c;提供信息&#xff0c;并增强游戏的整体体验。Unity 提供了强大的工具和功能来创建和管理 UI。 ui的底层就是画布&#xff0c;创建画布的时候会同时创建一个事…

k8s部署mysql

&#xff08;作者&#xff1a;陈玓玏&#xff09; 一、前置条件 已部署k8s&#xff0c;服务端版本为1.21.14 二、部署mysql 拉取镜像&#xff1b; docker pull mysql将账号密码等信息写到configmap&#xff0c;创建configmap&#xff1b; apiVersion: v1 kind: ConfigMap m…

C++笔记(五)--- 虚函数(virtual)

目录 虚函数介绍 虚函数、覆盖和重载区别 虚函数介绍 C的虚函数是多态性的表现 1.构造函数不能为虚函数2.子类继承时虚函数仍为虚函数3.虚函数类外实现时&#xff0c;不需要加virtual4.有虚函数的类&#xff0c;析构函数一定要写成虚函数&#xff08;否则可能会造成内存泄漏&…

Docker实战——容器

目录 Docker 容器的基本概念与操作1.使用“docker create”创建容器。这里基于Nginx的镜像创建了一个容器&#xff0c;名字为mycontainer。2.使用“docker ps -a”命令查看所有的容器&#xff0c;这时的容器不一定是运行状态。3.使用 “docker start” 命令可以启动容器。4.使用…

SpringBoot整合rabbitmq-主题交换机队列(四)

说明&#xff1a;Topic主题交换机它的大致流程是交换机和一个或者多个队列绑定&#xff0c;这个绑定的Routingkey是包含通配符的&#xff0c;满足通配符的队列会接收到消息。 通配符规则&#xff1a; #&#xff1a;匹配一个或多个词 *&#xff1a;匹配一个词 例如&#xff…

android TextView 实现富文本显示

android TextView 实现富文本显示&#xff0c;实现抖音直播间公屏消息案例 使用&#xff1a; val tvContent: TextView helper.getView(R.id.tvContent)//自己根据UI业务要求&#xff0c;可以控制 图标显示 大小val levelLabel MyImgLabel( bitmap 自己业务上的bitmap )va…

Prometheus 安装指南

目录 介绍 安装 介绍 Prometheus是一款开源监控系统&#xff0c;适用于容器化和微服务。它使用多维数据模型&#xff0c;支持PromQL查询语言&#xff0c;可以通过多种方式采集数据。具备灵活的告警和通知机制&#xff0c;可集成图形工具创建仪表盘。通过本地存储高效保存时间…

ywtool check命令及ywtool clean命令

一.ywtool check命令 1.1 ywtool check -I 1.2 ywtool check all 1.3 ywtool check io 1.4 ywtool check elk 1.5 ywtool check php 1.6 ywtool check mysql 1.7 ywtool check nginx 1.8 ywtool check system 1.9 ywtool check docker_nbip [容器名称] 1.10 ywtool check 1.10…

buuctf_crypto_丢失的MD5+Quoted-printable+RSA

丢失的MD5 题目&#xff1a;&#xff08;就一python文件&#xff0c;MD5.py&#xff09; for i in range(32,127):for j in range(32,127):for k in range(32,127):mhashlib.md5()m.update(TASCchr(i)O3RJMVchr(j)WDJKXchr(k)ZM)desm.hexdigest()if e9032 in des and da in d…

吴恩达《机器学习》学习笔记

本笔记资料来源于 http://www.ai-start.com/ml2014/&#xff0c;该笔记来自于https://blog.csdn.net/dadapongi6/article/details/105668394&#xff0c;看了忘&#xff0c;忘了看&#xff0c;再看一遍。 时间统计&#xff1a;2024.2.29 5个番茄钟&#xff0c;从week1开始&…

游戏陪玩精品系统源码优化版3.0

下载地址&#xff1a;游戏陪玩精品系统源码优化版.zip 截图&#xff1a;

[Vulnhub]靶场 Web Machine(N7)

kali:192.168.56.104 主机探测: arp-scan -l 靶机ip:192.168.56.104 端口扫描 nmap -p- 192.168.56.106 看一下web 目录扫描 gobuster dir -u http://192.168.56.106 -x html,txt,php,bak,zip --wordlist/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt exp…

基于springboot实现街球社区网站系统项目【项目源码+论文说明】

基于springboot实现街球社区网站系统演示 摘要 本文主要讲述了基于SpringBootVue模式的街球社区网站的设计与实现。这里所谓的街球社区网站是通过类似于百度贴吧之类的网上论坛使得所有的街球爱好者有一个可以互相交流的平台,并使所有用户可以在社区进行教学视频的观看以及相关…

使用Fabric创建的canvas画布背景图片,自适应画布宽高

之前的文章写过vue2使用fabric实现简单画图demo&#xff0c;完成批阅功能&#xff1b;但是功能不完善&#xff0c;对于很大的图片就只能显示一部分出来&#xff0c;不符合我们的需求。这就需要改进&#xff0c;对我们设置的背景图进行自适应。 有问题的canvas画布背景 修改后的…

Python:练习:编写一个程序,写入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款

案例&#xff1a; python编写一个程序&#xff0c;写入一个美金数量&#xff0c;然后显示出如何用最少的20美元、10美元、5美元和1美元来付款&#xff1a; Enter a dollar amout:93 $20 bills: 4 $10 bills: 1 $5 bills:0 $1 bills:3 思考&#xff1a; 写入一个美金数量&…