安装 Discuz! 系统产品之前必须先搭建好 PHP 的运行环境。目前常用的有两种系统供大家选择,一种是Linux环境下运行,另一种是windows系统环境下运行,我们建议大家采用 Linux 的环境下运行,当然如果只是测试用或者只是运行一些小站点的话可以使用windows系统。 
 
一、系统约定 
软件源代码包存放位置:/usr/local/src 
源码包编译安装位置(prefix):/usr/local/software_name 
脚本以及维护程序存放位置:/usr/local/sbin 
MySQL 数据库位置:/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(检查网卡设置是否正确) 
# ping www.163.com(检查网络是否正常) 
2、关闭不需要的服务 
# ntsysv 
以下仅列出需要启动的服务,未列出的服务一律推荐关闭: 
atd 
crond 
irqbalance 
microcode_ctl 
network 
sendmail 
sshd 
syslog 
关闭SElinux:修改/etc/selinux/config文件中的SELINUX= 为 disabled 
3、更换快速源 
# cd /etc/yum.repos.d/ 
# mv CentOS-Base.repo CentOS-Base.repo.old 
# wget http://centos.ustc.edu.cn/CentOS-Base.repo.5 
# mv CentOS-Base.repo.5 CentOS-Base.repo 
# yum update 
4、使用 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 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-deve 
5、定时校正服务器时钟,定时与中国国家授时中心授时服务器同步 
# crontab -e 
加入一行: 
*/30 * * * * ntpdate 210.72.145.44 > /dev/null 2>&1  
6、下载程序包 
请到各程序官方网站下载最新的稳定版本存放到/usr/local/src/目录 
Apache 当前稳定版 2.2.15 
http://apache.securedservers.com/httpd/ 
PHP 当前稳定版5.2.13 
http://cn.php.net/releases/ 
Mysql 当前稳定版5.0.86 
http://dev.mysql.coml/ 
Zend 当前稳定版3.3.3 
http://downloads.zend.com/ 
Memcache 当前稳定版2.2.5 
http://pecl.php.net/package/memcache/ 
Memcached 当前稳定版1.4.5 
http://memcached.googlecode.com 
文中的配置文件和脚本限于篇幅,请到以下地址下载 
Apache控制脚本 
http://c.sihost.net/jb/httpd 
Apache配置文件 
http://c.sihost.net/jb/httpd.conf 
以上列出的程序最新稳定版下载列表 
http://c.sihost.net/lamp_tools.list 
在 /usr/local/src目录下执行 
wget http://c.sihost.net/lamp_tools.list 
wget -i lamp_tools.list 
7、创建web运行用户 
#groupadd www 
#useradd -g www www 
#mkdir -p /home/www/wwwroot 
#chmod +w /home/www/wwwroot 
# chown www:www /home/www/wwwroot -R 
8、重新启动 
# init 6 
 
三、编译安装L.A.M.P环境 
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 --add mysqld 
# chkconfig --level 3 mysqld on 
# cp ./support-files/my-huge.cnf /etc/my.cnf 
# mv /usr/local/mysql/data /var/lib/mysql 
# chown -R mysql:mysql /var/lib/mysql  
编辑/etc/my.cnf 
在 [mysqld] 段增加 
- datadir = /var/lib/mysql
 
 - skip-innodb
 
 - wait-timeout = 10
 
 - max_connecti** = 512
 
 - max_connect_errors = 10000000 
 
  复制代码 在 [mysqld] 段修改 
- max_allowed_packet = 16M
 
 - thread_cache_size = CPU个数*2
 
  复制代码 
将 log-bin 注释 
service mysqld start 
# bin/mysqladmin -u root password password 
其中引号内的 password 是要设置的 root 密码 
2、编译安装Apache 
# cd /usr/local/src/ 
# tar jxvf httpd-2.2.15.tar.bz2 
# cd httpd-2.2.15/ 
# ./configure --prefix=/usr/local/apache --enable-module=rewrite --disable-access --disable-auth --disable-charset-lite --disable-include --disable-log-config --disable-env --disable-setenvif --disable-mime --disable-status --disable-autoindex --disable-asis --disable-cgid --disable-cgi --disable-negotiation --disable-dir --disable-acti** --disable-userdir --disable-alias --enable-so --enable-mods-shared=' access auth auth_anon auth_dbm auth_digest dav dav_fs acti** alias asis autoindex cache cern_meta cgi charset_lite deflate dir disk_cache env expires file_cache headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias' 
# make 
# make install 
# cd /usr/local/src/ 
# mv /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.old 
# cp -f /usr/local/src/httpd.conf /usr/local/apache/conf/httpd.conf 
# cp -f /usr/local/src/httpd /etc/init.d/httpd 
# chmod 755 /etc/init.d/httpd 
# chkconfig --add httpd 
# chkconfig httpd on 
3、编辑安装PHP所需的支持库 
Libiconv 
# cd /usr/local/src/ 
# tar zxvf libiconv-1.13.1.tar.gz 
# cd libiconv-1.13.1/ 
# ./configure --prefix=/usr/local 
# make 
# make install 
# cd .. 
Libmcrypt 
# tar zxvf libmcrypt-2.5.8.tar.gz  
# cd libmcrypt-2.5.8 
# ./configure 
# make 
# make install 
# /sbin/ldconfig 
# cd libltdl/ 
# ./configure --enable-ltdl-install 
# make 
# make install 
# cd /usr/local/src/ 
Mhash 
# tar zxvf mhash-0.9.9.9.tar.gz 
# cd mhash-0.9.9.9/ 
# ./configure 
# make 
# make install 
# cd .. 
# ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la 
$ ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so 
$ ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 
$ ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 
# ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 
# ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 
# ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 
# ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 
# ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 
$ ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 
# tar zxvf mcrypt-2.6.8.tar.gz 
# cd mcrypt-2.6.8 
# /sbin/ldconfig 
# ./configure 
# make 
# make install 
4、编译安装PHP 
# cd /usr/local/src 
# tar zxvf php-5.2.13.tar.gz 
# cd php-5.2.13 
# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/etc --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --enable-magic-quotes --with-mysql=/usr/local/mysql --with-pear --enable-sockets --with-ttf --with-freetype-dir=/usr --enable-gd-native-ttf --with-zlib --enable-sysvsem --enable-sysvshm --with-libxml-dir=/usr --with-apxs2=/usr/local/apache/bin/apxs --with-iconv-dir=/usr/local --with-xmlrpc --enable-xml --enable-shmop --enable-zip --with-mhash --with-mcrypt --enable-discard-path --enable-bcmath --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --with-openssl 
# make ZEND_EXTRA_LIBS='-liconv' 
# make install 
# ./libtool --finish /usr/local/src/php-5.2.13/libs 
# cp php.ini-dist /usr/local/etc/php.ini 
# echo 'ulimit -SHn 65535' >> /etc/rc.local 
# service httpd start 
5、安装PHP扩展模块(Discuz! X1.5 用户选装) 
Memcache 
# cd /usr/local/src 
# tar zxvf memcache-2.2.5.tgz 
# cd memcache-2.2.5/ 
# /usr/local/php/bin/phpize 
# ./configure --with-php-config=/usr/local/php/bin/php-config 
# make 
# make install 
修改php.ini文件,路径/usr/local/etc/ 
查找: 
修改为: 
- extension_dir = "/usr/local/php/lib/php/extensi**/no-debug-non-zts-20060613/"
 
  复制代码 在此句下面一行 
添加:- extension = "memcache.so"
 
  复制代码 
查找: 
修改为: 
保存。 
 
Memcached 
# cd /usr/local/src 
# tar zxvf libevent-1.4.13-stable.tar.gz 
# cd libevent-1.4.13-stable 
# ./configure --prefix=/usr/lib 
# make 
# make install 
# cd ../ 
# tar zxvf memcached-1.4.5.tar.gz 
# cd memcached-1.4.5 
# ./configure --prefix=/usr/local --with-libevent=/usr/lib/ 
# make  
# make install 
# /usr/local/bin/memcached -d -u www -m 128 
-p **的TCP端口 (缺省: 11211) 
-d 以守护进程方式运行 以守护进程方式运行 Memcached Memcached 
-u 运行运行 Memcached的账户 非root用户 
-m 最大的内存使用单位是MB 缺省是64MB 
-c 软连接数量缺省是1024 
-v 输出警告和错误信息 
-vv 打印客户端的请求和返回信息 
-h 打印帮助信息 
-i 打印memcached和libevent的版权信息 
6、安装Zend Optimizer 
# cd /usr/local/src 
# tar zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz 
# cd ZendOptimizer-3.3.3-linux-glibc23-i386 
# ./install 
Please specify the location for installing  
Zend Optimizer: 
这里填写Zend的安装路径,按下面写即可 
/usr/local/Zend 
Confirm the location of your  
php.ini file: 
这里填写的是php.ini的路径,按下面写即可 
/usr/local/etc 
Are you using Apache Web server?  
这里选YES 
Apache的控制组件路径 
/usr/local/apache/bin/apachectl 
是否重启Apache,YES,回车 
7、查看确认L.A.M.P环境信息、提升 PHP 安全性 
保存以下内容为info.php到/home/www/wwwroot/,检查phpinfo中的各项信息是否正确。 
确认 PHP 能够正常工作后,编辑/usr/local/etc/php.ini进行设置提升PHP安全性。 
找到: 
 
在等号后添加下面的函数名字:- exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source syslog,readlink,symlink,popepassthru,stream_socket_server
 
  复制代码 
四、服务器安全性设置 
设置系统防火墙 
# vi /usr/local/sbin/fw.sh 
将以下脚本命令粘贴到 fw.sh 文件中。 
#!/bin/bash 
# Stop iptables service first 
service 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 INPUT -i lo -j ACCEPT 
# Accept Established Connecti** 
/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/iptables -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 环境搭建就全部完成了! 
 
 
 
 
 
相关阅读: 
1、纵横搜索搜索域名设置的详细教程 
2、Discuz!X2.5取消登陆15分钟限制 
3、DZX2/2.5 教你如何给超级版主更多的权限 
4、[X2.5 0901版本新功能]是否允許UID登入及其跟其他功能的相互性 
5、解决编辑器中word粘贴内容功能失效的方法 
 |   
 
上一篇: 纵横搜索搜索域名设置的详细教程下一篇: CentOS 5 服务器 Nginx 环境推荐教程 
 
 |