《linux下Discuz论坛部署精品资料.doc》由会员分享,可在线阅读,更多相关《linux下Discuz论坛部署精品资料.doc(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、linux下Discuz论坛部署分类:linux相关文章2009-07-21 14:232150人阅读评论(1)收藏举报 Discuz是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛 服务。Discuz的基础架构采用世界上最流行的 web 编程组合 PHP+MySQL 实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。下面我们就来看一下linux环境下的discuz是如何搭建的搭建思路:既然discuz的基础架构是采用php+mysql实现,那么就必然要用到apache+mys
2、ql+php一、安装apache# tar zxvf httpd-2.2.11.tar.gz# cd httpd-2.2.11# ./configure -prefix=/usr/local/apache -enable-modules=so#make#make install#/usr/local/apache/bin/apachectl start解析: 指定apache安装目录时后面跟的参数-enable-modules=so。意思是让apache动态加载DSO模块,如*.so文件,就相当去windows下的dll文件 关于apache服务的启动、停止:源码包安装方式启动为/usr/lo
3、cal/apache/bin/apachctl start,文件apachecl是httpd的一个可执行文件控制脚本,一般用于控制apache的启动与停止 让apache开机启动:服务器在某些情况下是需要重启的,当我们在装好apache 不做一定的设置服务器开启后apache是不能自动启动的,我们可以把/usr/local/apache/bin/apachectl start这句话加入到启动文件/etc/rc.local中测试:首先我们可以使用netstat ntl查看apache是否启动,apache用的是80端口确定80端口启用后我们可以在浏览器中访问http服务,在浏览器中输入http;
4、/localhost二、安装mysql本次安装的mysql为二进制源码包,使用源码包安装的好处就在于文件的统一,解压后所有的文件都放置到一个目录下。tar zxvf mysql-5.1.35-linux-i686-glibc23.tar.gz/解压mysql压缩包mv mysql-5.1.35-linux-i686-glibc23 /usr/local/我们将mysql安装到/usr/local下,所以将解压后的mysql安装二进制源码包移动到/usr/local下cd /usr/local/进入/usr/local目录,为进行下一步安装做准备ln -s mysql-5.1.35-linux-
5、i686-glibc23 mysql/做新的连接,因为mysql文件夹的名字太长了groupadd mysql/创建一个用户组useradd -g mysql mysql/创建一个用户,名为mysql,并指定mysql用户属于mysql组/usr/local/mysql/scripts/mysql_install_db/初始化数据库chown -R root /usr/local/mysql/让root用户对 MySQL文件夹拥有管理权限chown -R mysql /usr/local/mysql/data/让mysql用户拥有对数据库目录的读写权限chgrp -R mysql /usr/l
6、ocal/mysql/usr/local/mysql/bin/mysqld_safe -user=mysql &/启动mysql,以用户mysql启动,启动命令后加&意思是放到后台进行/usr/local/mysql/bin/mysqladmin -u root password 123456/为了安全起见,建议设置登陆数据库时需要身份验证,此处的root用户为mysql管理员用户,并不是系统的管理员root用户/usr/local/mysql/bin/mysql -u root p/以mysql管理员root登录数据库,然后会要求输入密码,输入密码正确后便可进入数据库Mysql默认情况下使用
7、的是3306端口,可以使用命令netstat ntl查看系统启用了哪些端口让mysql开机自动启动:可以将命令/usr/local/mysql/bin/mysqld_safe -user=mysql & 加入到/etc/rc.local文件中三、安装PHP# tar -zxvf php-5.2.9.tar.gz# cd php-5.2.9# ./configure -prefix=/usr/local/php -with-apxs2=/usr/local/apache/bin/apxs -with-mysql=/usr/local/mysql#make#make install#cp php.
8、ini-dist /usr/local/lib/php.ini解析:在安装过程中,-prefix参数定义的是php 的安装目录。-with-apxs2:Apxs是apache提供的一个模块,是为了让php在运行时加载指定的模块到apache。-with-mysql:指定mysql数据库实现apache+php的整合修改apache配置文件,使其支持PHP,vi /usr/local/apache/conf/httpd.conf1. 确认PHP模块已经添加?LoadModule php5_module modules/libphp5.so约在53行,如果我们在安装php时,在参数中跟加了apxs
9、,那么apache的配置文件中已经存在了此项,如没添加则手工添加2. 让apache识别*.php文件在apache 配置文件中添加AddType application/x-httpd-php .php310行左右3、测试apache和php是否整合成功下面我们测试apache和php是否整合成功,在apache文档跟目录下新建一个小小的php程序# cd /usr/local/apache/htdocs/# vi index.php在index.php文件中写入下面三行重启apache服务# /usr/local/apache/bin/apachectl stop# /usr/local/
10、apache/bin/apachectl start访问,在浏览器中输入http:/localhost/index.php出现一下界面则说明整合成功小结:若想以index.php作为默认文档,也就是在访问时直接在浏览器中输入http:/localhost,不加index.php,则可以修改apache配置文件中的DirectoryIndex 项,只需把index.php放到 index.html前面即可四、安装Zend OptimizerZend Optimizer,用优化代码的方法来提高php应用程序的执行速度。实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compile
11、r)产生的代码进行优化。tar zxvf ZendOptimer-3.0.0-linux-glibc21-i386.tar.gzcd ZendOptimizer-3.0.0-linux-glibc21-i386./install.sh指定zend optimizer安装目录指定php.ini文件的位置,php.ini是php的一个配置文件,在运行php时需要读取这个文件。在安装php时,我们将其拷贝到了/usr/local/lib目录下指定apachectl安装完成后会自动重启apache服务五、安装phpmyadmin phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在
12、网站主机上的MySQL的资料库图形化管理工具,可以管理整个MySQL服务器(需要超级用户),也可以管理单个数据库tar zxvf phpMyAdmin-3.2.0-all-languages.tar.gzmv phpMyAdmin-3.2.0-all-languages phpmyadminmv phpmyadmin /usr/local/apache/htdocs/下面开始安装phpmyadmin,在浏览器中输入http:/localhost/phpmyadmin/index.php,会弹出一个对话框,要求输入用户名和密码(超级管理员)我们可以看到,利用图形化工具管理MySQL的界面六、安装
13、discuz在安装dis之前我们还要安装UCenter,UCenter是discuz论坛的管理模板1.安装UCenter解压后把文件夹upload复制到网站根目录下,然后给upload/data文件下的这些文件加上777的权限,否则在安装时没有权限对数据库进行写入Mv upload upload-ucentermv upload-ucenter /usr/local/apache/htdocscd /usr/local/apache/htdocs/ upload-ucenterchmod 777 ./datachmod 777 ./data/cachechmod 777 ./data/view
14、chmod 777 ./data/avatarchmod 777 ./data/logschmod 777 ./data/backupchmod 777 ./data/tmp然后IE访问http:/localhost/ucenter-upload/install/index.php 进行UCenter的安装检查无误后单击下一步,如单击下一步报错的话一般问题的原因是没有权限写入安装数据库2、安装discuz安装discuz把解压后uplocad文件夹中的所有文件移动到网站的根目录下mv upload/* /usr/local/apache/htdocs/cd /usr/local/apache/
15、htdocs/给下面文件加上777权限,以免安装discuz时没有权限写入chmod 777 templateschmod 777 templates/defaultchmod 777 templates/default/*.*chmod 777 ./attachmentschmod 777 customavatarschmod 777 forumdatachmod 777 forumdata/cachechmod 777 forumdata/templateschmod 777 config.inc.phpchmod 777 forumdata/threadcacheschmod 777 f
16、orumdata/logschmod 777 uc_client/data/cache在IE中浏览http:/192.168.1.10/install/index.php测试:在浏览器中输入http:/localhost/index.php,然后会看到论坛的页面 修改网站目录的默认文档,默认的为index.html,要想访问discuz论坛时在localhos后不加index.php,则在apache主配置文件httpd.conf中的DirectoryIndex参数,把index.php放到index.html前面即可OK,下面我们注册一个用户试试安装Discuz!之Linux 环境搭建推荐教
17、程一、系统约定软件源代码包存放位置:/usr/local/src源码包编译安装位置(prefix):/usr/local/software_name脚本以及维护程序存放位置:/usr/local/sbinMySQL 数据库位置:/var/lib/MySQL(可按情况设置)Apache 网站根目录:/home/www/wwwroot(可按情况设置)Apache 虚拟主机日志根目录:/home/www/logs(可按情况设置)Apache 运行账户:www:www二、系统环境部署及调整1. 检查系统是否正常# more /var/log/messages(检查有无系统级错误信息)# dmesg(检
18、查硬件设备是否有错误信息)# ifconfig(检查网卡设置是否正确)# ping (检查网络是否正常)2. 关闭不需要的服务# ntsysv以下仅列出需要启动的服务,未列出的服务一律推荐关闭:atdcrondirqbalancemicrocode_ctlnetworksendmailsshdsyslog3. 重新启动系统# init 64. 配置 vim# vi /root/.bashrc在 alias mv=mv -i 下面添加一行:alias vi=vim 保存退出。# echo syntax on /root/.vimrc5. 使用 yum 程序安装所需开发包(以下为标准的 RPM 包
19、名称)# yum install ntp vim-enhanced gcc gcc-c+ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel kernel6. 定时校正服务器时钟,定时与中国国家授时中心授时服务器同步# crontab -e加入一行:*/30 * * * * ntpdate 210.72.145.447. 源码编译安装所需包 (Source)(1) GD2# cd /usr/
20、local/src# tar xzvf gd-2.0.34.tar.gz# cd gd-2.0.34# ./configure -prefix=/usr/local/gd2# make# make install(2) LibXML2# cd /usr/local/src# tar xjvf libxml2-2.6.30.tar.bz2# cd libxml2-2.6.30# ./configure -prefix=/usr/local/libxml2# make# make install(3) LibMcrypt# cd /usr/local/src# tar xjvf libmcrypt
21、-2.5.8.tar.bz2# cd libmcrypt-2.5.8# ./configure prefix=/usr/local/libmcrypt# make# make install(4) Apache日志截断程序# cd /usr/local/src# tar xzvf cronolog-1.7.0-beta.tar.gz# cd cronolog-1.7.0-beta# ./configure prefix=/usr/local/cronolog# make# make install8. 升级OpenSSL和OpenSSH# cd /usr/local/src# tar xzvf
22、 openssl-0.9.8e.tar.gz# cd openssl-0.9.8e# ./config -prefix=/usr/local/openssl# make# make test# make install# cd .# tar xzvf openssh-4.7p1.tar.gz# cd openssh-4.7p1# ./configure -prefix=/usr -with-pam -with-zlib -sysconfdir=/etc/ssh -with-ssl-dir=/usr/local/openssl -with-md5-passwords# make# make in
23、stall(1)禁用 SSH V1 协议找到:#Protocol 2,1改为:Protocol 2(2)禁止root直接登录此处先建立一个普通系统用户:# useradd username# passwd username找到:#PermitRootLogin yes改为:PermitRootLogin no(3)禁用服务器端GSSAPI找到以下两行,并将它们注释:GSSAPIAuthentication yesGSSAPICleanupCredentials yes(4)禁用 DNS 名称解析找到:#UseDNS yes改为:UseDNS no(5)禁用客户端 GSSAPI# vi /etc
24、/ssh/ssh_config找到:GSSAPIAuthentication yes将这行注释掉。最后,确认修改正确后重新启动 SSH 服务# service sshd restart# ssh -v确认 OpenSSH 以及 OpenSSL 版本正确。三、编译安装L.A.M.P环境1. 下载软件# cd /usr/local/srchttpd-2.2.6.tar.bz2MySQL-5.0.45-linux-i686-glibc23.tar.gzphp-5.2.4.tar.bz2ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz2. 安装MySQL# t
25、ar xzvf MySQL-5.0.45-linux-i686-glibc23.tar.gz# mv MySQL-5.0.45-linux-i686-glibc23 /usr/local/# ln -s /usr/local/ MySQL-5.0.45-linux-i686-glibc23 /usr/local/MySQL# useradd MySQL# chown -R MySQL:root /usr/local/MySQL/# cd /usr/local/MySQL# ./scripts/MySQL_install_db -user=MySQL# cp ./support-files/My
26、SQL.server /etc/rc.d/init.d/MySQLd# chown root:root /etc/rc.d/init.d/MySQLd# chmod 755 /etc/rc.d/init.d/MySQLd# chkconfig -add MySQLd# chkconfig -level 3 5 MySQLd on# cp ./support-files/my-f /etc/f# mv /usr/local/MySQL/data /var/lib/MySQL# chown -R MySQL:MySQL /var/lib/MySQL/# vi /etc/f修改以下内容:(1) 在
27、MySQL 段增加一行:default-character-set = GBK | latin1 | utf8 | BIG5(2) 在 MySQLd 段增加或修改:datadir = /var/lib/MySQL-skip-innodbdefault-character-set = GBK | latin1 | utf8 | BIG5-wait-timeout = 3 | 5 | 10max_connections = 256 | 384 | 512max_connect_errors = 10000000thread_concurrency = CPU个数2将 log-bin 注释# bin
28、/MySQLadmin -u root password password_for_root3. 编译安装Apache# cd /usr/local/src# tar xjvf httpd-2.2.6.tar.bz2# cd httpd-2.2.6# ./configure -prefix=/usr/local/apache2 -with-included-apr -enable-so -enable-deflate=shared -enable-expires=shared -enable-rewrite=shared -enable-static-support -disable-user
29、dir# make# make install# echo /usr/local/apache2/bin/apachectl start /etc/rc.local4. 编译安装PHP# cd /usr/local/src# tar xjvf php-5.2.4.tar.bz2# cd php-5.2.4# ./configure -prefix=/usr/local/php -with-apxs2=/usr/local/apache2/bin/apxs -with-config-file-path=/usr/local/php/etc -with-MySQL=/usr/local/MySQL
30、 -with-libxml-dir=/usr/local/libxml2 -with-gd=/usr/local/gd2 -with-jpeg-dir -with-png-dir -with-bz2 -with-freetype-dir -with-iconv-dir -with-zlib-dir -with-openssl=/usr/local/openssl -with-mcrypt=/usr/local/libmcrypt -enable-soap -enable-gd-native-ttf -enable-ftp -enable-mbstring -enable-exif -disab
31、le-ipv6 -disable-cgi -disable-cli# make# make install# mkdir /usr/local/php/etc# cp php.ini-dist /usr/local/php/etc/php.ini5. 安装Zend Optimizer# cd /usr/local/src# tar xzvf ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz# ./ZendOptimizer-3.3.0-linux-glibc21-i386/install.sh安装Zend Optimizer过程的最后不要选择重启Apa
32、che。6. 整合Apache与PHP# vi /usr/local/apache2/conf/httpd.conf找到:AddType application/x-gzip .gz .tgz在该行下面添加AddType application/x-httpd-php .php找到:DirectoryIndex index.html将该行改为DirectoryIndex index.html index.htm index.php找到:#Include conf/extra/httpd-mpm.conf#Include conf/extra/httpd-info.conf#Include co
33、nf/extra/httpd-vhosts.conf#Include conf/extra/httpd-default.conf去掉前面的“#”号,取消注释。注意:以上 4 个扩展配置文件中的设置请按照相关原则进行合理配置!修改完成后保存退出。# /usr/local/apache2/bin/apachectl restart7. 查看确认L.A.M.P环境信息、提升 PHP 安全性在网站根目录放置 phpinfo.php 脚本,检查phpinfo中的各项信息是否正确。确认 PHP 能够正常工作后,在 php.ini 中进行设置提升 PHP 安全性。# vi /etc/php.ini找到:di
34、sable_functions =设置为:phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server四、服务器安全性设置1. 设置系统防火墙# vi /usr/local/sbin/fw.sh将以下脚本命令粘贴到 fw.sh 文件中。#!/bin/b
35、ash# Stop iptables service firstservice iptables stop# Load FTP Kernel modules/sbin/modprobe ip_conntrack_ftp/sbin/modprobe ip_nat_ftp# Inital chains default policy/sbin/iptables -F -t filter/sbin/iptables -P INPUT DROP/sbin/iptables -P OUTPUT ACCEPT# Enable Native Network Transfer/sbin/iptables -A
36、INPUT -i lo -j ACCEPT# Accept Established Connections/sbin/iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT# ICMP Control/sbin/iptables -A INPUT -p icmp -m limit -limit 1/s -limit-burst 10 -j ACCEPT# WWW Service/sbin/iptables -A INPUT -p tcp -dport 80 -j ACCEPT# FTP Service/sbin/iptab
37、les -A INPUT -p tcp -dport 21 -j ACCEPT# SSH Service/sbin/iptables -A INPUT -p tcp -dport 22 -j ACCEPT# chmod 755 /usr/local/sbin/fw.sh# echo /usr/local/sbin/fw.sh /etc/rc.local# /usr/local/sbin/fw.sh安装 Linux 环境搭建推荐教程一、系统约定软件源代码包存放位置:/usr/local/src源码包编译安装位置(prefix):/usr/local/software_name脚本以及维护程序存放
38、位置:/usr/local/sbinMySQL 数据库位置:/var/lib/MySQL(可按情况设置)Apache 网站根目录:/home/www/wwwroot(可按情况设置)Apache 虚拟主机日志根目录:/home/www/logs(可按情况设置)Apache 运行账户:www:www二、系统环境部署及调整1、检查系统是否正常# more /var/log/messages(检查有无系统级错误信息)# dmesg(检查硬件设备是否有错误信息)#cat /proc/cpuinfo (检查CPU频率是否正常)#top (按1检测CPU核数是否正常,内存大小是否正常)# ifconfig(
39、检查网卡设置是否正确)# ping (检查网络是否正常)2、关闭不需要的服务# ntsysv以下仅列出需要启动的服务,未列出的服务一律推荐关闭:atdcrondirqbalancemicrocode_ctlnetworksendmailsshdsyslog关闭SElinux:修改/etc/selinux/config文件中的SELINUX= 为 disabled3、更换快速源# cd /etc/yum.repos.d/# mv CentOS-Base.repo CentOS-Base.repo.old# wget # mv CentOS-Base.repo.5 CentOS-Base.repo
40、# yum update4、使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)# yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c+ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 lib
41、xml2-devel imake autoconf automake screen sysstat compat-libstdc+-33 curl curl-deve5、定时校正服务器时钟,定时与中国国家授时中心授时服务器同步# crontab -e加入一行:*/30 * * * * ntpdate 210.72.145.44 /dev/null 2&16、下载程序包请到各程序官方网站下载最新的稳定版本存放到/usr/local/src/目录Apache 当前稳定版 2.2.15PHP 当前稳定版5.2.13Mysql 当前稳定版5.0.86l/Zend 当前稳定版3.3.3Memcache
42、当前稳定版2.2.5Memcached 当前稳定版1.4.5文中的配置文件和脚本限于篇幅,请到以下地址下载Apache控制脚本Apache配置文件以上列出的程序最新稳定版下载列表在 /usr/local/src目录下执行wget wget -i lamp_tools.list7、创建web运行用户#groupadd www#useradd -g www www#mkdir -p /home/www/wwwroot#chmod +w /home/www/wwwroot# chown www:www /home/www/wwwroot -R8、重新启动# init 6三、编译安装L.A.M.P环境
43、1、安装MySQL# cd /usr/local/src# tar zxvf mysql-5.0.86-linux-i686-icc-glibc23.tar.gz# mv mysql-5.0.86-linux-i686-icc-glibc23 /usr/local/# ln -s /usr/local/mysql-5.0.86-linux-i686-icc-glibc23/ /usr/local/mysql#groupadd mysql#useradd -g mysql mysql -d /home/mysql -s /sbin/nologin#chown -R mysql:mysql /usr/local/mysql#chown -R mysql:mysql /usr/local/mysql-5.0.86-linux-i686-icc-glibc23/# cd /usr/local/mysql# ./scripts/mysql_install_db -user=mysql#cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld# chmod 755 /etc/rc.d/init.d/mysqld# chkconfig