Crossday Discuz! Board(Discuz!)는 Beijing Kangsheng Xinchuang Technology Co., Ltd.에서 출시한 범용 커뮤니티 포럼 소프트웨어 시스템입니다. 2001년 6월 출시 이후 Discuz!는 14년 이상의 응용 프로그램 역사와 200만 개 이상의 웹사이트 사용자 사례를 보유하고 있으며 세계에서 가장 성숙하고 적용 범위가 넓은 포럼 소프트웨어 시스템 중 하나입니다. 최신 버전인 Discuz! X3.2가 2015년 6월 9일 공식 출시되어 처음으로 애플리케이션 센터 개발 모델을 선보였습니다. 2010년 8월 23일, Kangsheng Chuangxiang은 Tencent와 인수 계약을 체결하고 Tencent의 전액 출자 자회사가 되었습니다.
Crossday Discuz! Board(이하 Discuz!, 중국 국가 저작권 관리국 저작권 등록 번호 2006SR11895)는 Comsenz (Beijing) Technology Co., Ltd.(영어 약어: Comsenz). 사용자 프로그래밍 없이 간단한 설정과 설치를 통해 완전한 기능, 강력한 로드 용량 및 고도로 사용자 정의 가능한 포럼 서비스를 인터넷에서 구축할 수 있습니다. Discuz!의 인프라는 세계에서 가장 널리 사용되는 웹 프로그래밍 조합인 PHP MySQL을 사용하여 구현되며 다양한 서버 환경에 적합하도록 잘 설계되어 있는 효율적인 포럼 시스템 솔루션입니다.
중국 최대의 커뮤니티 소프트웨어 및 서비스 제공업체인 Comsenz 산하의 Discuz! 개발팀은 특히 포럼 제품 및 관련 분야에서 풍부한 경험을 보유하고 있으며, 장기간의 혁신적인 개발을 통해 완전한 세트를 마스터했습니다. 데이터 구조부터 제품 보안까지 기술을 선도하는 알고리즘입니다. 이로 인해 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 설치 패키지를 다운로드하고 압축을 푼다. 업로드 디렉터리의 모든 내용을 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 입력 마법사 설치를 따르세요
위 내용은 Linux Nginx MySQL에서 포럼 프로그램 Discuz를 구성하기 위한 기본 튜토리얼을 소개하며, 관련 내용도 포함되어 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.