Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程

作者:zdz 时间:2024-05-11 10:46:59 

Crossday Discuz! Board(简称 Discuz!)是北京康盛新创科技有限责任公司推出的一套通用的社区论坛软件系统。自2001年6月面世以来,Discuz!已拥有14年以上的应用历史和200多万网站用户案例,是全球成熟度最高、覆盖率最大的论坛软件系统之一。目前最新版本Discuz! X3.2正式版于2015年6月9日发布,首次引入应用中心的开发模式。2010年8月23日,康盛创想与腾讯达成收购协议,成为腾讯的全资子公司。
Crossday Discuz! Board(以下简称 Discuz!,中国国家版权局著作权登记号 2006SR11895)是康盛创想(北京)科技有限公司(英文简称Comsenz)推出的一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。Discuz! 的基础架构采用世界上最流行的web编程组合PHP+MySQL实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。
作为国内最大的社区软件及服务提供商,Comsenz旗下的 Discuz! 开发组具有丰富的 web应用程序设计经验,尤其在论坛产品及相关领域,经过长期创新性开发,掌握了一整套从算法,数据结构到产品安全性方面的领先技术。使得 Discuz! 无论在稳定性、负载能力、安全保障等方面都居于国内外同类产品领先地位。
下面我们就来看一下LNMP环境下的Discuz安装配置过程:
1、配置nginx


vim /usr/local/nginx/etc/nginx.conf

user nginx;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;
events {
 worker_connections 1024;
}
http {
 include    mime.types;
 server_tokens off;
 default_type application/octet-stream;
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
          '$status $body_bytes_sent "$http_referer" '
          '"$http_user_agent" "$http_x_forwarded_for"';
 access_log logs/access.log main;
 sendfile    on;
 keepalive_timeout 65;
 client_header_buffer_size 32k;          
 large_client_header_buffers 4 32k;
  #客户请求头缓冲大小 nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取如果设置过小HTTP头/Cookie过大 会报400 错误 nginx 400 bad request求行如果超过buffer,就会报HTTP 414错误(URI Too Long)nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。
 client_max_body_size 8m;              #最大上传附件8MB
 client_body_buffer_size 128k;           #缓冲区代理缓冲用户端请求的最大字节数
 keepalive_timeout    60;
 tcp_nopush   on;
 tcp_nodelay  on;
 gzip on;
 gzip_min_length 1k;
 gzip_buffers   4 16k;
 gzip_http_version 1.0;
 gzip_comp_level 2;
 include vh/bbs.yourich.com.cn.conf;
}
mkdir /usr/local/nginx/etc/vh
vim /usr/local/nginx/etc/vh/discuz.conf
upstream  bbs.test.com
{
 server 127.0.0.1;
 check interval=3000 rise=2 fall=5 timeout=1000 type=http;  
  #interval检测间隔时间,单位为毫秒
  #rsie请求2次正常的话,标记此realserver的状态为up
  #fall表示请求5次都失败的情况下,标记此realserver的状态为down
  #timeout为超时时间,单位为毫秒
 check_http_send "GET / HTTP/1.1\r\nHOST:\r\n\r\n";
 check_http_expect_alive http_2xx http_3xx http_4xx;
}
server {
 listen 80;
 server_name bbs.test.com;
 index index.html index.php;
 root /www/discuz;
 access_log logs/bbs_access.log main;
 error_log logs/bbs_error.log;
 location ~ .*\.(jpg|jpeg|png|gif\js|css)$ {
   root /www/discuz;
   access_log off;
 }
 location / {
   try_files $uri $uri/ /index.php?$args;
 }
 location ~.*\.(php)?$ {
   expires -1s;
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index index.php;
   try_files $uri = 404;
   include fastcgi_params;
   fastcgi_param SCRIPT_FILENAME /www/discuz$fastcgi_script_name;
   fastcgi_param QUERY_STRING  $query_string;
   fastcgi_param REQUEST_METHOD $request_method;
   fastcgi_param CONTENT_TYPE  $content_type;
   fastcgi_param CONTENT_LENGTH $content_length;
 }
}

2、下载discuz
下载discuz安装包并解压将upload目录下的所有内容复制到nginx指定的网站文档跟目录下 /www/discuz
设置权限


chown -R nginx:nginx /www/discuz

3、创建数据


create database discuz default character set utf8;
grant all privileges on discuz.* to discuz@'localhost' identified by 'discuz';
flush privileges;

4、安装discuz
在浏览器中输入http://ip/install 根据向导进行安装

标签:Discuz
0
投稿

猜你喜欢

  • Golang 实现 Redis系列(六)如何实现 pipeline 模式的 redis 客户端

    2024-05-13 10:44:23
  • Golang实现短网址/短链服务的开发笔记分享

    2024-02-08 15:37:18
  • oracle join on 数据过滤问题

    2009-07-14 21:17:00
  • js取得当前网址

    2024-04-10 11:03:14
  • python 怎样将dataframe中的字符串日期转化为日期的方法

    2022-09-14 16:21:49
  • GoFrame通用类型变量gvar与interface基本使用对比

    2024-04-27 15:26:26
  • 使用python执行shell脚本 并动态传参 及subprocess的使用详解

    2021-05-30 22:46:49
  • 网页设计:把导航系统做薄

    2007-12-28 12:02:00
  • python实现数通设备tftp备份配置文件示例

    2022-12-02 13:59:21
  • 用python实现一个简单计算器(完整DEMO)

    2023-11-10 11:03:48
  • Django框架实现的普通登录案例【使用POST方法】

    2021-10-12 18:05:10
  • 如何优化SQL语句的心得浅谈

    2024-01-24 00:39:09
  • mysql 时间戳的用法

    2024-01-18 03:11:37
  • MySQL简单了解“order by”是怎么工作的

    2024-01-16 10:52:41
  • pycharm 中mark directory as exclude的用法详解

    2021-02-27 05:24:07
  • golang jwt+token验证的实现

    2024-05-05 09:34:04
  • 使用Python的SymPy库解决数学运算问题的方法

    2021-04-19 19:36:35
  • Python+OpenCV解决彩色图亮度不均衡问题

    2023-02-08 23:14:53
  • python模块smtplib实现纯文本邮件发送功能

    2022-08-14 21:01:32
  • YOLOv5目标检测之anchor设定

    2022-04-23 16:22:10
  • asp之家 网络编程 m.aspxhome.com