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

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

  1. user nginx;
  2. worker_processes 1;
  3. #error_log logs/error.log;
  4. #error_log logs/error.log notice;
  5. error_log logs/error.log info;
  6. events {
  7. worker_connections 1024;
  8. }
  9. http {
  10. include mime.types;
  11. server_tokens off;
  12. default_type application/octet-stream;
  13. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  14. '$status $body_bytes_sent "$http_referer" '
  15. '"$http_user_agent" "$http_x_forwarded_for"';
  16. access_log logs/access.log main;
  17. sendfile on;
  18. keepalive_timeout 65;
  19. client_header_buffer_size 32k;
  20. 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)。

  1. client_max_body_size 8m; #最大上传附件8MB
  2. client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
  3. keepalive_timeout 60;
  4. tcp_nopush on;
  5. tcp_nodelay on;
  6. gzip on;
  7. gzip_min_length 1k;
  8. gzip_buffers 4 16k;
  9. gzip_http_version 1.0;
  10. gzip_comp_level 2;
  11. include vh/bbs.yourich.com.cn.conf;
  12. }
  13. mkdir /usr/local/nginx/etc/vh
  14. vim /usr/local/nginx/etc/vh/discuz.conf
  15. upstream bbs.test.com
  16. {
  17. server 127.0.0.1;
  18. check interval=3000 rise=2 fall=5 timeout=1000 type=http;
  19. #interval检测间隔时间,单位为毫秒
  20. #rsie请求2次正常的话,标记此realserver的状态为up
  21. #fall表示请求5次都失败的情况下,标记此realserver的状态为down
  22. #timeout为超时时间,单位为毫秒
  23. check_http_send "GET / HTTP/1.1\r\nHOST:\r\n\r\n";
  24. check_http_expect_alive http_2xx http_3xx http_4xx;
  25. }
  26. server {
  27. listen 80;
  28. server_name bbs.test.com;
  29. index index.html index.php;
  30. root /www/discuz;
  31. access_log logs/bbs_access.log main;
  32. error_log logs/bbs_error.log;
  33. location ~ .*\.(jpg|jpeg|png|gif\js|css)$ {
  34. root /www/discuz;
  35. access_log off;
  36. }
  37. location / {
  38. try_files $uri $uri/ /index.php?$args;
  39. }
  40. location ~.*\.(php)?$ {
  41. expires -1s;
  42. fastcgi_pass 127.0.0.1:9000;
  43. fastcgi_index index.php;
  44. try_files $uri = 404;
  45. include fastcgi_params;
  46. fastcgi_param SCRIPT_FILENAME /www/discuz$fastcgi_script_name;
  47. fastcgi_param QUERY_STRING $query_string;
  48. fastcgi_param REQUEST_METHOD $request_method;
  49. fastcgi_param CONTENT_TYPE $content_type;
  50. fastcgi_param CONTENT_LENGTH $content_length;
  51. }
  52. }

2、下载discuz

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

设置权限

chown -R nginx:nginx /www/discuz

3、创建数据

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

4、安装discuz

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