摘要
同学写了一套商业php论坛程序-discuz!,给我提供了一套。由于他采用zend加密了部分代码,所以我必须要求服务器支持php+mysql+ zend。而最近有人恶意连接我服务器,导致mysql总是出现过多连接,所以,我还安装了mod_limitipconn,来限制每个ip连接。 (2003-08-15 10:39:40)
By 光辉
1:首先安装mysql
我们选择安装4.0的rpm包,当然,如果你认为喜欢自己编译,那么你就去慢慢忍受那漫长的编译吧。
下载地址:http://www.mysql.com/downloads/mysql-4.0.html
请下载 "Linux x86 RPM downloads" 中的 "Server" 和 "Client programs" 包装
安装:rpm -ivh MySQL-server-4.0.14-0.i386.rpm
rpm -ivh MySQL-client-4.0.14-0.i386.rpm
2: Apache与php安装:
首先下载他们的源代码包
php-4.3.2.tar.gz:http://www.php.net/downloads.php
apache_1.3.28.tar.gz: http://www.apache.org/dist/httpd/
解压缩:tar -zxvf php-4.3.2.tar.gz
tar -zxvf apache_1.3.28.tar.gz
1) cd apache.1.3.28
./configure
2) cd ../php.4.3.2
./configure --with-mysql --with-apache=../apache_1.3.28
3) make
make install
4) cd apache_1.3.28
cp ../php4.3.2/libs/libphp4.a /src/modules/php4/libphp4.a
./configure --prefix=/var/apache --activate-module=src/modules/php4/libphp4.a --enable-shared=max
(本人/var/apache是一个单独分区,所以安装到了这里)
5)make
make install
6)cp /root/php4.3.2/php.ini-dist /usr/local/lib/php.ini (不过这步后面看到会被zend的代替),但因为我们安装zend前要测试apache是否整合了php,所以,我们还是要做这步。
7)打开你的/usr/local/apache/conf/httpd.conf,在加上一句加下面两句:
AddType application/x-httpd-php .php .htm .html
AddType application/x-httpd-php-source .phps
8)测试:
vi test.php
输入
然后保存在你网页的目录下,打开浏览器,看是否可以了?
9)自启动
vi /etc/rc.d/rc.local 加一行 /var/apache/bin/apachectl start
3:ZendOptimizer的安装
据说这个能提高php效率很多.
下载:http://www.zend.com/store/free_download.php?pid=13
选择linux的包。然后本地解压。
安装:运行install.sh 教本就是,按照提示一步一步来,只是apache bin的目录可能要自己选择。基本很简单,这里就不详细说了。重要的是测试zend是否工作,我给大家一个别人做的加密了的php文件,如果你能看到红色汉字就是对了的了,否则没工作。
zendtest.php.txt
4,安装mod_limitipconn
参考了本文:http://www.linuxaid.com.cn/articles/3/9/395926416.shtml
下载地址:http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz
然后解压:tar zxvf mod_limitipconn-0.04.tar.gz
cd mod_limitipconn-0.04
编译安装:/var/apache/bin/apxs -c -i -a mod_limitipconn.c
注意选择好自己的apache目录!
修改httpd.conf文件:
1)全局控制:
在httpd.conf加上以下几行:
< IfModule mod_limitipconn.c >
< Location / > # 所有虚拟主机的/目录
MaxConnPerIP 3 # 每IP只允许3个并发连接
NoIPLimit image/* # 对图片不做IP限制
< /Location >
< Location /mp3 > # 所有主机的/mp3目录
MaxConnPerIP 1 # 每IP只允许一个连接请求
OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件
< /Location >
< /IfModule >
2) 局部限制:
< VirtualHost xx.xxx.xx.xx >
ServerAdmin wgh@hrbeu.XXX.com
DocumentRoot /home/wgh
ServerName www.hrbeu.com
< IfModule mod_limitipconn.c >
< Location / > # 所有虚拟主机的/目录
MaxConnPerIP 3 # 每IP只允许3个并发连接
NoIPLimit image/* # 对图片不做IP限制
< /Location >
< Location /mp3 > # 所有主机的/mp3目录
MaxConnPerIP 2 # 每IP只允许两个连接请求
OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件
< /Location >
< /IfModule >
ErrorLog /home/wgh/logs/error_log
CustomLog /home/wgh/logs/access_log common
< /VirtualHost >
3) 还必须将apache的ExtendedStatus设置为ON.在httpd.conf找到
# ExtendedStatus On
去掉#就可以了
4)重新启动apache以使起修改生效
/var/apache/bin/apachectl restart
好了,现在我们已经完成我们的任务,休息,昨天晚上从12点做到2点多,累了!