discuzq

国产论坛程序Discuz! Q内测版申请和安装教程

Discuz相信是国内老一点的个人站长非常熟悉的一套论坛源码,同期的还有phpwind,早几年政策还没这么严格的时候论坛非常火爆,而Discuz奶爸认为是最好用的论坛程序,只不过后期腾讯收购,以及政策影响,所以就相当于是废弃了。

前段时间是吴洪声(奶罩)在官方论坛宣布Discuz回归,将开发一个新版本的Discuz!Q,主要是帮助流量大V、网红、知识付费、微信生态和移动互联网的创业者们,更轻易的完成用户沉淀和转化付费。

Discuz! Q是更轻的,更易变现的,更移动端的,更开放的和更易于二次开发的社区产品。

目前Discuz! Q内测版已经可以开放申请体验,感兴趣的站长可以尝试一下。

前提条件:

  1. 在DNSPod有一个实名了的域名,其他域名商的目前不支持申请;
  2. 一台干净的服务器(其实应该单独添加一个虚拟主机也可以,奶爸没测试)
  3. 在腾讯云账号中心的API密钥管理,获取到SecretId和SecretKey。注意:请千万不要泄露这两个东西给到任何你不信赖的人,避免你的腾讯云账号被控制,受到损失。
  4. 推荐启用SSL安全证书;

申请内测资格:https://www.dnspod.cn/promo/discuzq

安装过程

一、安装服务器环境

官方推荐的是安装LNMP一键包(那个年代的站长用这个比较多,毕竟宝塔还没出来),当然,你安装宝塔面板应该也是一样能用的。

具体教程这里不重复了,参考下面链接:

  1. #建站#LNMP一键包安装图文教程
  2. 新手自己建网站友好的宝塔面板图文安装教程

安装过程中注意选择一下几样:

  • MariaDB 10.3.15
  • PHP 7.3.6
  • Jemalloc
  • Memcached
  • Redis
  • imageMagick

LNMP一键包的话安装完毕后删掉禁用函数,代码如下:

sed -i 's/^disable_functions.*/disable_functions = /' /usr/local/php/etc/php.ini

二、克隆Discuz!Q安装代码

因为Discuz!Q的代码还是内测版,没有做完整的安装包,所以代码目录不是特别规范,需要我们先手动创建目录。

首先在服务器上创建一个文件夹,举例代码如下:(宝塔面板就直接创建)

mkdir -p /var/hosts/com/naizhao
cd /var/hosts/com/naizhao

上面代码是创建一个naizhao的文件夹,然后切换到naizhao文件夹下面。

然后我们修改下composer的源为腾讯云(composer的官方源在国外,很慢)

composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/

开始克隆代码到文件夹里面

composer create-project --prefer-dist qcloud/discuz --repository=https://cloud.discuz.chat q

克隆代码过程中,会让你输入腾讯云的API密钥。

如果一切顺利,代码已经完整的克隆到了q目录里面。我们可以进去看看

cd q
ls -lha

你应该会看到下面的内容

total 388K
drwxr-xr-x 11 root root 4.0K Mar 16 18:23 .
drwxr-xr-x  3 root root 4.0K Mar 16 18:21 ..
drwxr-xr-x 28 root root 4.0K Mar 16 18:21 app
-rw-rw-rw-  1 root root  917 Mar 15 19:57 composer.json
-rw-r--r--  1 root root 319K Mar 16 18:23 composer.lock
drwxr-xr-x  2 root root 4.0K Mar 16 18:21 config
drwxr-xr-x  4 root root 4.0K Mar 16 18:21 database
-rw-rw-rw-  1 root root  362 Mar 15 19:57 disco
-rw-rw-rw-  1 root root  213 Mar 15 19:57 .editorconfig
drwxr-xr-x  4 root root 4.0K Mar 16 18:21 .github
-rw-rw-rw-  1 root root  108 Mar 15 19:57 .gitignore
-rw-rw-rw-  1 root root 1.4K Mar 15 19:57 .php_cs
drwxr-xr-x  5 root root 4.0K Mar 16 18:21 public
-rw-rw-rw-  1 root root 2.3K Mar 15 19:57 readme.md
drwxr-xr-x  7 root root 4.0K Mar 16 18:21 resources
drwxr-xr-x  2 root root 4.0K Mar 16 18:21 routes
drwxr-xr-x 11 root root 4.0K Mar 16 18:21 storage
drwxr-xr-x 56 root root 4.0K Mar 16 18:23 vendor

最后,修改storage和config的目录权限为777

chmod -R 777 storage config

四、添加虚拟主机

lnmp的话添加虚拟主机使用到的代码如下,宝塔面板请自行依照配置。

Please enter domain(example: www.lnmp.org): 让你输入要绑定的域名
 Your domain: 你绑定的域名
Enter more domain name(example: lnmp.org *.lnmp.org): 
Please enter the directory for the domain: 为你绑定的域名设置路径
Default directory: /home/wwwroot/q.naizhao.com: /var/hosts/com/naizhao/q/public #输入网站的根目录,记得后面要加上public
Virtual Host Directory: /var/hosts/com/naizhao/q/public
Allow Rewrite rule? (y/n) y
Please enter the rewrite of programme, 
wordpress,discuzx,typecho,thinkphp,laravel,codeigniter,yii2 rewrite was exist.
(Default rewrite: other): laravel #rewrite规则选择laravel
You choose rewrite: laravel
Enable PHP Pathinfo? (y/n) y
Enable pathinfo.
Allow access log? (y/n) y
Enter access log filename(Default:q.naizhao.com.log): 
You access log filename: q.naizhao.com.log
Create database and MySQL user with same name (y/n) y #创建MySQL数据库
Enter current root password of Database (Password will not shown): #输入MySQL的root密码
OK, MySQL root password correct.
Enter database name: dzq #输入要创建的数据库名字
Your will create a database and MySQL user with same name: dzq
Please enter password for mysql user dzq: dzq #输入数据库密码
Your password: dzq 
Add SSL Certificate (y/n) y #是否打开SSL支持
1: Use your own SSL Certificate and Key
2: Use Let's Encrypt to create SSL Certificate and Key
Enter 1 or 2: 2 #SSL证书安装方式,如果前面在腾讯云申请了,选1。或者选2用Let's Encrypt提供的免费3个月证书。但一定要提前把域名指向你的服务器,否则申请不成功!!!
It will be processed automatically.
然后就是等待半分钟,网站和数据库都创建好了。
接着删掉open_basedir的限制,不然会导致500错误。运行lnmp1.6/tools/remove_open_basedir_restriction.sh,输入网站根目录/var/hosts/com/naizhao/q/public,按回车就行。
编辑下nginx的配置文件,在目录/usr/local/nginx/conf/vhost/下,找到对应的文件,比如q.naizhao.com.conf,整个文件替换成下面的内容(不要直接粘贴,注意修改对应的一些参数)
server {
listen 80;
server_name 你前面绑定的域名; #网站域名
return 301 https://$host$request_uri; # 强制把HTTP跳转到HTTPS
}


server {
listen 443 ssl http2;
server_name 你绑定的域名; #网站域名
root /var/hosts/com/naizhao/q/public; #网站目录,切记指到public


ssl_certificate /usr/local/nginx/conf/ssl/你绑定的域名/fullchain.cer; #ssl证书的证书链
ssl_certificate_key /usr/local/nginx/conf/ssl/你绑定的域名/你绑定的域名.key; #ssl证书的key


ssl_session_cache shared:SSL:10m;
ssl_session_timeout 24h;


ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve secp521r1:secp384r1;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
ssl_buffer_size 4k;


add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;


index index.html;


include enable-php-pathinfo.conf;


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;
}

搞定后重启一下lnmp

lnmp restart

五、安装Discuz! Q

打开浏览器,访问:

https://你绑定的域名/install

按照上面的提示,输入MySQL的信息、管理员信息,点击安装

安装完成后,进入:

https://你绑定的域名/admin ,就可以管理站点了。

注意:如果安装完后,一直出现loading的图标,请打开浏览器的开发者模式-Application-Storage-Local Storage,右击Clear,然后刷新浏览器即可。

给本文打分 post
滚动至顶部