首页 > 其他分享 > 使用LNMP搭建discuz平台

使用LNMP搭建discuz平台

时间:2023-02-10 16:02:16浏览次数:53  
标签:nginx discuz LNMP Nginx usr mysql root fastcgi 搭建

discuz官方网站: ​​https://discuz.dismall.com/​

1. Nginx安装和配置

#安装依赖包
[root@Nginx ~]# yum -y install gcc pcre pcre-devel openssl-devel

#下载Nginx源码包,并解压
[root@Nginx ~]# wget -c http://nginx.org/download/nginx-1.22.1.tar.gz -P /usr/src
[root@Nginx ~]# cd /usr/src/
[root@Nginx src]# tar -xf nginx-1.22.1.tar.gz
[root@Nginx src]# cd nginx-1.22.1/

#修改版本号
[root@Nginx ~]# vim /usr/src/nginx-1.22.1/src/core/nginx.h

#新建所需www用户
[root@Nginx ~]#useradd -r -M www -s /sbin/nologin

#预编译
#1检测安装环境,产生Makefile编译引导文件
[root@Nginx nginx-1.22.1]# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

#编译
#1通过make编译工具,读Makefile文件
#2将源文件编译成二进制文件
[root@Nginx nginx-1.22.1]#make

#安装
将编译产生的二进制文件安装或拷贝到指定目录
[root@Nginx nginx-1.22.1]#make install
#所以/usr/local/nginx/sbin下的nginx 和/usr/src/nginx-1.22.1/objs下的nginx是同一个文件!

#启动服务
[root@Nginx ~]# /usr/local/nginx/sbin/nginx
#验证服务
[root@Nginx ~]# ps -ef |grep nginx
[root@Nginx ~]# netstat -nltp |grep nginx

2. 安装PHP 7.X

#卸载PHP旧版本;
yum remove php* -y

#安装PHP 7.x源;
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

#安装PHP7.2相关软件包;
yum install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml -y

#查看PHP版本信息;
php -v

3. Nginx和PHP整合

​[root@Nginx ~]# systemctl start php-fpm​

​[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf​

location ~ \.php$ {

#root html; nginx文件目录,这里是相对路径,也可以改成下面的绝对路径

root /usr/local/nginx/html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}


#创建PHP测试页面

vim /usr/local/nginx/html/index.php

<?php

phpinfo();

?>


4. Mysql 8.0 的Yum安装和配置

#检查有无残留版本

​rpm -qa |grep mysql​

​rpm -qa |grep mariadb​

如果有,删除

​ rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps​


#查看有无mysql相关的文件

​find / -name mysql​

如果有,删除

#下载RPM包,用于安装mysql yum源

​wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm​

​wget https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm​

​rpm -ivh mysql80-community-release-el7-7.noarch.rpm​


#为避免报错,可以提前把yum源里的gpgcheck关闭

​vim /etc/yum.repos.d/mysql-community.repo​


#安装mysql

​yum -y install mysql-community-server​


#获取MySQL 8.0 初始密码

​systemctl start mysqld​

​grep "password" /var/log/mysqld.log ​

2022-12-14T03:22:41.805036Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Uw)7KsfsS6MS


#修改Mysql初始密码

​alter user root@localhost identified with mysql_native_password by 'AAaa@1234';​

#默认root用户不能远程登录,需要更新密码信息

​update mysql.user set host='%' where user="root";​

​flush privileges;​

为下一步配置discuz做准备:

​mysql> create user discuz@'%' identified with mysql_native_password by 'Discuz@1234';​

​mysql> grant all on discuz.* to discuz@'%';​

5. Discuz 文件部署

官方网站:​​https://discuz.dismall.com/​


#下载后为zip压缩文件,使用 rz -e 上传

​ unzip Discuz_X3.5_SC_UTF8_20221231.zip​


#将解压出的upload下的文件移动到nginx发布目录

​[root@Nginx-Php ~]# mv upload/* /usr/local/nginx/html/​


得到如下界面,按步骤配置即可。

 使用LNMP搭建discuz平台_php

 使用LNMP搭建discuz平台_nginx_02

排错:

#查看 data 目录和config目录权限及属主

​ll /usr/local/nginx/html​

 使用LNMP搭建discuz平台_php_03


#查看php程序属主

 使用LNMP搭建discuz平台_mysql_04


#所以,修改 data 目录和config目录的属主即可(o+w授权不安全)。

​[root@Nginx-Php ~]# cd /usr/local/nginx/html/​

​[root@Nginx-Php html]# chown -R apache:apache data/ config/ uc_client/ uc_server/​


 使用LNMP搭建discuz平台_php_05

6. Mysql 主从配置

Master配置

步骤1:修改配置文件

​[root@Master ~]# vim /etc/my.cnf​

在 [mysqld] 下增加下面两行:

server-id=1

log-bin=mysql-bin

步骤2:重启mysqld服务

​[root@Master ~]# systemctl restart mysqld​


步骤3:配置同步账号

​create user 'tongbu'@'%' identified with mysql_native_password by 'AAAaaa@1234';​

​grant replication slave on *.* to 'tongbu'@'%';​

步骤4:查看Mater状态及最新的Position

​mysql> show master status;​

Slave配置

步骤1:修改Slave配置文件

[root@Slave ~]# vim /etc/my.cnf

在 [mysqld] 下增加下面一行:

server-id = 2

步骤2:重启mysqld服务

步骤3:Slave指定Master IP、用户名、密码、bin-log文件名及position

​mysql> change master to master_host='192.168.160.22',master_user='tongbu',master_password='AAAaaa@1234',master_log_file='mysql-bi.000001',master_log_pos=157;​


步骤4:启动slave

​mysql> start slave;​


步骤5:查看slave状态

​mysql> show slave status \G;​

当以下状态均为Yes时表示主从同步状态正常。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

备份Mater数据,还原到Slave

​[root@Master ~]# mysqldump -uroot -pAAaa@1234 --all-databases >all.sql​

​[root@Master ~]# scp all.sql 192.168.160.23:/tmp​

​[root@Slave ~]# mysql -uroot -pAAaa@1234 </tmp/all.sql ​



7. Nginx 负载均衡php-fpm多实例

如果有多个php-fpm实例做负载均衡,需要修改Nginx配置

​[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf​

#在server块外面添加upstream

#discuz-SLB为自定义的模块名称

upstream discuz-SLB {

server 192.168.160.21:9000;

server 192.168.160.31:9000;

}


#修改fastcgi配置

location ~ \.php$ {

root /usr/local/nginx/html;

fastcgi_pass discuz-SLB; #引用之前自定义的模块名称

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;


#重启Nginx

​[root@Nginx ~]# /usr/local/nginx/sbin/nginx -s reload​

#修改两台php-fpm服务器的配置

注意:另外一台php-fpm服务器上也要有/usr/local/nginx/html 发布目录,且内有网站文件和对应权限。

  1. 将listen的IP从127.0.0.1改成0.0.0.0

[root@Nginx ~]# vim /etc/php-fpm.d/www.conf

#listen = 127.0.0.1:9000

listen = 0.0.0.0:9000


  1. 在listen.allowed_clients里添加web服务器的地址

#listen.allowed_clients = 127.0.0.1

listen.allowed_clients = 127.0.0.1,192.168.160.21

  1. 重启php-fpm服务

[root@Nginx ~]# systemctl restart php-fpm


upstream discuz-SLB {
server 192.168.160.21:9000;
server 192.168.160.31:9000;
}


location ~ \.php$ {
root /usr/local/nginx/html;
fastcgi_pass discuz-SLB;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

标签:nginx,discuz,LNMP,Nginx,usr,mysql,root,fastcgi,搭建
From: https://blog.51cto.com/u_748290/6049563

相关文章

  • linux篇-CentOS7搭建NTP服务器
    1查看服务器、客户端操作系统版本2查看服务器是否安装ntp3如果没有安装4安装完成后重新查看服务器是否安装ntp5查看ntp服务器状态6修改配置文件注释#server0.centos......
  • linxu篇-centos搭建ftp服务器
    1安装vsftpd2备份配置文件3修改配置文件vi/etc/vsftpd/vsftpd.confanonymous_enable=NO#允许匿名用户访问为了安全选择关闭local_enable=YES#允许本地用户登录write......
  • linux篇-centos7搭建apache服务器(亲测可用)
    1安装apacheyuminstallhttpdhttpd-devel-y2开启服务器systemctlstarthttpd.service3开机自启systemctlenablehttpd.service4关闭防火墙5端口访问 6修改vi/e......
  • 学习笔记——尚好房项目(项目介绍、环境搭建、配置依赖关系)
    2023-02-10一、项目介绍1、介绍 尚好房是一个二手房管理服务平台,开放优质资源和线上能力,聚合线上线下二手房产资源,打造一个全方位二手房服务生态市场,为消费者提供优质......
  • 项目搭建碰到java.lang.NoClassDefFoundError
    基本都是pom依赖包冲突导致的,可以这样来解决:找到pom.xml找到依赖项   一般ClassNotfound会给一个具体的类名。搜索这个类名,看是在那个pom里面。然后在pom依赖项......
  • Docker搭建本地仓库
    一、搭建本地私有仓库有时候使用DockerHub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似。使用私有仓库有......
  • 直播app开发搭建,vue使用js-file-download完成导出功能
    直播app开发搭建,vue使用js-file-download完成导出功能1.安装js-file-downloadnpminstalljs-file-download​2.引入对应的功能模块importfileDownLoadfrom'js-file......
  • Linux系统的web管理工具——webmin搭建
    (Linux系统的web管理工具——webmin搭建)一、webmin介绍Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管......
  • 互联网医院开发搭建|线上问诊APP开发方向
     随着互联网医院的兴起,很多的企业也想开发互联网医院系统,但是又不太了解,其实市场上的有很多做互联网医院开发的的公司,至于如何的选择,就要看您对谁的方案更感兴趣了,接下来......
  • 【实验】搭建NFS远程共享服务器
    一、准备这里使用一台Centos7.9的虚拟机进行构建。服务器IP:192.168.160.xx1二、NFS服务器配置1、安装NFS服务yum-yinstallrpcbindnfs-utils ......