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


Posted in PHP onDecember 23, 2015

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 根据向导进行安装

PHP 相关文章推荐
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
php定界符
Jun 19 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
php返回json数据函数实例
Oct 09 PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 PHP
php简单实现MVC
Feb 05 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 PHP
分享PHP计算两个日期相差天数的代码
Dec 23 #PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
Dec 23 #PHP
PHP+MySQL实现无极限分类栏目的方法
Dec 23 #PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 #PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 #PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
Dec 22 #PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 #PHP
You might like
php生成动态验证码gif图片
2015/10/19 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
javascript学习之闭包分析
2010/12/02 Javascript
你必须知道的Javascript知识点之"深入理解作用域链"的介绍
2013/04/23 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
JavaScript编写棋盘覆盖代码详解
2017/08/28 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
如何运行Python程序的方法
2013/04/21 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python删除过期log文件操作实例解析
2018/01/31 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
python def 定义函数,调用函数方式
2020/06/02 Python
pandas DataFrame运算的实现
2020/06/14 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
总经理秘书工作职责
2013/12/26 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
全国爱牙日活动总结
2015/02/05 职场文书