discuz q - 轻松搭建一个属于自己的论坛

试用了一下腾讯的 discuzq 内测版,感觉还挺不错的,就记录下搭建的过程。

本文基于之前拉新撸的 1c1g1m 的学生机搭建。若想购买的,可以点击此处购买。

0x00 搭建环境

环境依赖:

  • php 7.2+
  • php 拓展:BCMath Ctype Curl Dom Fileinfo GD JSON Mbstring OpenSSL PDO PDO_mysql Tokenizer XML
  • mysql 5.7+

安装 mysql

网上很多教程了,不想安装在本机的,可以选择 docker 启动,将 3306 expose 出来即可。

安装 php7.2

同上。

此处记录一下 php-7.0 的升级过程(适用于升级至 7.x,把 x 替换成 234 即可)。

先把原有的 php7.0-fpm 给停了 service php7.0-fpm stop 并清理干净:

1
2
3
4
5
6
7
8
# 删除php的相关包及配置
$ sudo apt-get autoremove php7*
# 删除关联
$ sudo find /etc -name "*php*" |xargs rm -rf
# 清除dept列表
$ sudo apt purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
# 检查是否卸载干净(无返回就是卸载完成)
$ dpkg -l | grep php7.0

1
2
3
4
5
6
7
8
# 添加 php 更新源(根据提示,按下 ENTER 添加)
$ sudo add-apt-repository ppa:ondrej/php
# 更新源
$ sudo apt-get update
# 安装 php7.2 php7.2-fpm
$ sudo apt-get install php7.2 php7.2-fpm
# 安装必要拓展库
$ sudo apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml php7.2-bcmath

检查是否安装成功

1
2
3
4
5
$ php -v
PHP 7.2.31-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May 14 2020 08:27:14) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.31-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

启动 php7.2-fpm

1
2
3
4
5
6
7
$ service php7.2-fpm start
# 查看是否正常启动
$ ps aux | grep php
root 11819 0.0 1.8 440212 16672 ? Ss 14:17 0:00 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
www-data 11822 0.0 0.7 440212 6588 ? S 14:17 0:00 php-fpm: pool www
www-data 11823 0.0 1.7 440608 15148 ? S 14:17 0:00 php-fpm: pool www
root 13898 0.0 0.1 13208 968 pts/1 S+ 14:36 0:00 grep --color=auto php

一般来讲,fpm 监听的地址是 unix:/var/run/php/php7.2-fpm.sock,只需要修改 nginx 的转发地址即可:

1
fastcgi_pass      unix:/var/run/php/php7.2-fpm.sock;

重启 nginx 就大功告成。

0x01 安装

获取安装脚本

先 cd 想要把论坛安装的目录,如 /var/www/html/discuzq 下,新建 public 目录,并下载官方提供的安装脚本至 public 目录下:

1
$ wget https://discuzq-docs-1258344699.cos.ap-guangzhou.myqcloud.com/dl.php

回退至安装目录上级,如 /var/www/html/,赋予 web 服务器用户有对该目录的所有权限:

1
$ chown -R www-data:www-data discuzq

配置 nginx

提供一个 nginx 的配置,仅供参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
server {
listen 80;

server_name yourdomain;
set $base /var/www/html/discuzq;
root $base/public;

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";

index index.html;

location /install {
try_files $uri $uri/ /index.php?$query_string;
}

location /api {
try_files $uri $uri/ /index.php?$query_string;
}

location / {
try_files $uri $uri/ /index.html;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }

error_page 404 /index.php;

location ~ \.php$ {
# 404
try_files $fastcgi_script_name =404;

# default fastcgi_params
include fastcgi_params;

# fastcgi settings
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

# fastcgi params
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/";
}


}

重启 nginx 服务器,并访问 http://yourdomain/dl.php,根据网页提示,一步步往下执行即可。


由于 discuzq 还在内测当中,所以需要一个内测资格。如何获取内测资格?很简单,在腾讯云购买一个

输入完 访问密钥后,就会自动下载源码,等待解压完毕即可,然后一路下一步。

当你看到这个页面时,恭喜你,成功了。

0x02 开启 SSL

只需要去腾讯云申请一份免费的申请 SSL 证书(有效期一年)就ok了。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×