Apache PHP MySQL Zend GD OpenSSL vsftpd 完全编译安装手册 |
|
系统 Debian Linux v3.1r0 (Sarge) Kernel v2.6.11 i686
安装方式:源码编译 版权:本文章可以任意转载,但请注明作者和出处,谢谢 作者:keelort 微米天空: http://www.micronsky.net 原文链接: http://bbs.micronsky.net/viewtopic.php?t=160
################ ##### 软件 ##### ################
Apache v2.0.54 官方主页: http://www.apache.org http://www.apache.org/dist/httpd/httpd-2.0.54.tar.gz [7.16MB]
PHP v4.3.11 官方主页: http://www.php.net http://cn.php.net/distributions/php-4.3.11.tar.gz [4.64MB]
Zend Optimizer v2.5.10 官方主页: http://www.zend.com http://downloads.zend.com/optimizer/2.5.10/ZendOptimizer-2.5.10-linux-glibc21-i386.tar.gz [3.36MB]
MySQL v4.0.24 官方主页: http://www.mysql.com http://ftp.stu.edu.tw/pub/Unix/Database/Mysql/Downloads/MySQL-4.0/mysql-4.0.24.tar.gz [16.1MB] phperz~com
GD Library v2.0.33 官方主页: http://www.boutell.com/gd/ http://www.boutell.com/gd/http/gd-2.0.33.tar.gz [573KB]
FreeType v2.1.10 官方主页: http://www.freetype.org http://savannah.nongnu.org/download/freetype/freetype-2.1.10.tar.gz [1.31MB]
Jpeg v6b 官方主页: http://www.ijg.org ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz [598KB]
LibPNG v1.2.8 官方主页: http://www.libpng.org/pub/png/ http://switch.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.8.tar.gz [498KB]
OpenSSL v0.9.7g 官方主页: http://www.openssl.org http://www.openssl.org/source/openssl-0.9.7g.tar.gz [2.98MB]
vsftpd v2.0.3 官方主页: http://vsftpd.beasts.org ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz [149KB]
zlib v1.2.2 官方主页: http://www.gzip.org/zlib/ phperz~com http://www.zlib.net/zlib-1.2.2.tar.gz [420KB]
ClibPDF v2.02-r1-1 官方网站: http://www.fastio.com http://www.fastio.com/clibpdf202r1.tar.gz [836KB]
mod_limitipconn v0.22 官方网站: http://dominia.org/djao/ http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz [6.18KB]
Bandwidth Module v0.6 官方网站: http://www.ivn.cl/apache/ http://www.ivn.cl/apache/bw_mod-0.6.tgz [28.5KB]
Apache DoS Evasive Maneuvers Module v1.10 官方网站: http://www.nuclearelephant.com/projects/dosevasive/ http://www.nuclearelephant.com/projects/dosevasive/mod_dosevasive_1.10.tar.gz [19.1KB]
################ ##### 安装 ##### ################
1、解压缩,把所有源码压缩包放在一个目录中,解压缩所有 .tar.gz 压缩包 for i in `ls *.gz`;do tar zxvf $i; done; phperz.com
2、开始安装
##### zlib #####
cd zlib-1.2.2 ./configure make make install cd ..
##### OpenSSL #####
cd openssl-0.9.7g ./config --prefix=/usr/local/ssl \ --openssldir=/usr/local/ssl \ shared \ zlib
make make install ln -s /usr/local/ssl /usr/lib/ssl cd ..
##### MySQL #####
cd mysql-4.0.24
编辑 sql/mysqld.cc : 搜索:&max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1, 修改:&max_connections, 0, GET_ULONG, REQUIRED_ARG, 1000, 1, 16384, 0, 1,
groupadd mysql useradd -g mysql mysql
./configure \ --prefix=/server/mysql \ --sysconfdir=/server/mysql \ www.phperz.com --without-isam \ --without-debug \ --enable-assembler \ --with-unix-socket-path=/tmp/mysql.sock \ --with-mysqld-user=mysql \ --with-extra-charset=all \ --with-client-ldflags=-all-static \ --with-mysqld-ldflags=-all-static \ --localstatedir=/data/mysql/data
如果出现了以下错误: checking for tgetent in -ltermcap... no checking for termcap functions library... configure: error: No curses/termcap library found 说明 curses/termcap 库没有安装 apt-cache search curses | grep lib 安装 libncurses5-dev ,然后重新运行配置
mkdir /data mkdir /data/mysql mkdir /data/mysql/data
make make install
/server/mysql/bin/mysql_install_db --user=mysql
chown -R mysql /data/mysql chgrp -R mysql /data/mysql www.phperz.com chown -R root /server/mysql chgrp -R mysql /server/mysql cp /server/mysql/share/mysql/my-medium.cnf /server/mysql/my.cnf
/server/mysql/share/mysql/mysql.server start /server/mysql/bin/mysqladmin -u root password 123456789 cd ..
##### Apache2 #####
cd httpd-2.0.54
./configure --prefix=/server/httpd \ --enable-so \ --with-mysql=/server/mysqld \ --enable-cgi \ --with-config-file-path=/server/httpd/conf \ --enable-track-vars \ --enable-mods-shared=all \ --enable-cache \ --enable-disk-cache \ --enable-mem-cache \ --enable-rewrite \ --with-mpm=worker \ --with-ssl=/usr/local/ssl \ --enable-ssl
make make install cd ..
##### mod_deflate ##### php程序员之家 cd httpd-2.0.54/modules/filters
/server/httpd/bin/apxs -i -c -a mod_deflate.c
修改 Apache 配置文件 /server/httpd/conf/httpd.conf : 添加: <Location /> # Insert filter SetOutputFilter DEFLATE
# Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48 # the&nbsaoenbsp;regex won''''t work. You can use the following # workaround to get the desired effect: php程序员站 BrowserMatch \bMSI[E] !no-gzip !gzip-only-te/tl
# Don''''t compress images SetEnvIfNoCase Request_URI \ \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
# Make&nbssr&bsp;proxies don''''t deliver the wrong content #Header append Vary User-Agent env=!dont-vary </Location>
DeflateFilterNote&nb;ai LogFormat ''''"%v %h %l %u %t "%r" %>s %b "%{Referer}i" "%{UseAeti"" (%{ratio}n)'''' deflate
CustomLog logs/deflate_log deflate
然后 cd ../../../
##### FreeType #####
cd freetype-2.1.10
./configure --prefix=/usr/local/freetype
make make install cd ..
##### LibPNG ##### phperz.com cd libpng-1.2.8
cp scripts/makefile.linux makefile
make test make install cd ..
##### Jpeg #####
cd jpeg-6b
mkdir /usr/local/jpeg mkdir /usr/local/jpeg/bin mkdir /usr/local/jpeg/lib mkdir /usr/local/jpeg/include mkdir /usr/local/jpeg/man mkdir /usr/local/jpeg/man/man1 ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
make make install cd ..
##### GD Library #####
cd gd-2.0.33
./configure --prefix=/usr/local/gd \ --with-jpeg=/usr/local/jpeg \ --with-freetype=/usr/local/freetype \ --with-png \ --with-zlib
make make install cd ..
##### ClibPDF #####
cd ClibPDF/source cp Makefile.Linux makefile phperz.com make make install cd ..
##### PHP #####
cd php-4.3.11
./configure --prefix=/server/php \ --with-apxs2=/server/httpd/bin/apxs \ --with-gd=/usr/local/gd \ --enable-gd \ --enable-gd-native-ttf \ --with-jpeg-dir=/usr/local/jpeg \ --with-png \ --with-ttf \ --with-zlib \ --with-freetype-dir=/usr/local/freetype \ --enable-magic-quotes \ --with-mysql=/server/mysql \ --with-mysql-sock=/tmp/mysql.sock \ --with-iconv \ --with-mbstring \ --enable-mbstring \ --enable-track-vars \ --enable-force-cgi-redirect \ --enable-ftp \ --with-config-file-path=/server/httpd/conf \ --with-openssl=/usr/local/ssl \ --with-openssl-dir=/usr/local/ssl \ --with-cpdflib=/usr/local \ --with-pear=/server/php/pear php程序员站
make make install
cp php.ini-dist /server/httpd/conf/php.ini cd ..
##### Zend Optimizer #####
cd ZendOptimizer-2.5.10-linux-glibc21-i386
./install
操作 [OK] [EXIT] [YES] [/server/zend] [/server/httpd/conf] [YES] [/server/httpd/bin/apachectl] [OK] [OK] [NO]
cd ..
##### mod_limitipconn #####
cd mod_limitipconn-0.22
/server/httpd/bin/apxs -i -c -a mod_limitipconn.c
修改 Apache 配置文件 /server/httpd/conf/httpd.conf: 查找:#ExtendedStatus On ,去掉注释"#" 查找:CustomLog logs/access_log common ,修改成 CustomLog logs/access_log common env=!LIMITIP 添加: <IfModule mod_limitipconn.c> <Location /> www.phperz.com MaxConnPerIP 5 NoIPLimit image/* </Location>
<Location /mp3> MaxConnPerIP 2 OnlyIPLimit audio/mpeg video </Location> </IfModule>
然后 cd ..
##### Bandwidth Module #####
cd bw_mod-0.6
/server/httpd/bin/apxs -i -c -a bw_mod-0.6.c
cd ..
带宽限制在虚拟主机中设置
##### Apache DoS Evasive Maneuvers Module #####
cd mod_dosevasive
/server/httpd/bin/apxs -i -c -a mod_dosevasive20.c
cd ..
等一下启动 Apache2 后可以测试 perl test.pl
###############################################################################################
现在,WEB 服务已经安装完毕! php程序员站 测试 WEB 服务:
mkdir /data/vhosts mkdir /data/vhosts/localhost
启动 Apache2 /server/httpd/bin/apachectl start 如果出错请参考下一贴中的 httpd.conf 和 虚拟主机配置文件示例
MySQL 服务前面已经启动了,密码是:123456789
编辑一个 info.php 放在&nbbsp;/data/vbsp;/data/vhosts/localhost 下面,内容如下:
<?php phpinfo(); ?>
测试: http://localhost/info.php OK,看到 PHP 信息了吧
##### 开机自动启动服务 #####
cp /server/httpd/bin/apachectl /etc/init.d/httpd cp /server/mysql/share/mysql/mysql.server /etc/init.d/mysql recconf 配置,已经有 httpd 和 mysql 选项了,选中,OK
如果没有 rcconf ,用 apt-get install rcconf 安装
####################### ##### 使 SSL 工作 ##### www.phperz.com #######################
mkdir /server/ssl cd /server/ssl
##### 手工签署证书 ##### /usr/local/ssl/bin/openssl genrsa -des3 \ -rand 任意大文件1:任意大文件2 \ -out server.key 1024
输入密码 重复密码
/usr/local/ssl/bin/openssl req -new -key server.key -out server.csr
Enter pass phrase for localhost.key: #<--## 输入密码 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be anpeautns;value, www~phperz~com If you enter ''''.'''', the field will be left blank. ----- Country Name (2 letter code) [AU]:CN #<--## 国家代码 State or Province Name (full name) [Some-State]:LN #<--## 省或州 Locality (eg, city) []:SY #<--## 城市 Organization Name (eg, company) [Internet Widgits Pty Ltd]:micronsky.net #<--## 组织名称 Organizational Unit Name (eg, section) []:root #<--## 部门 Common Name (eg, YOUR name) []:keelort #<--## 名字 Email Address []:keelort@gmail.com #<--## 电子邮 r b>Pleaens;enter the following ''''extra'''' attributes to be sent with your certificate request A challenge password []: #<--## 直接回车就可以 www.phperz.com An optional company name []: #<--## 直接回车就可以
/usr/local/ssl/bin/openssl x509 -req \ -days 3650 \ -in server.csr \ -signkey server.key \ -out server.crt
................................................................................
注意:SSL 部分目前还不是很明白,apachectl startssl 启动后 http:// 不能用,只能用 https:// 连接, 不知道怎么回事请高手指教,暂时没有写全
###############################################################################################
##### vsftpd #####
cd vsftpd-2.0.3
编辑 builddefs.h : #define VSF_BUILD_PAM 修改为 #undef VSF_BUILD_PAM
编辑 defs.h : #define VSFTP_DEFAULT_CONFIG "/etc/vsftpd.conf" 修改为 #define VSFTP_DEFAULT_CONFIG "/server/vsftpd/conf/vsftpd.conf" www~phperz~com
make
useradd nobody mkdir /usr/share/empty mkdir /data/ftp useradd -d /data/ftp ftp chown root:root /data/ftp chmod og-w /data/ftp
install --m 755 vsftpd /server/vsftpd/vsftpd install -m 644 vsftpd.8 /usr/share/man/man8 install -m 644 vsftpd.conf.5 /usr/share/man/man5 mkdir /server/vsftpd/conf install -m 644 vsftpd.conf /server/vsftpd/conf/vsftpd.conf
使 vsftpd 以 standalone 方式启动: 编写名为 vsftpd 的启动脚本:
[code:1:b9bd2e7e99] #!/bin/sh # /etc/init.d/vsftpd #
set&nbs- b> # Exit if vsftpd.conf doesn''''t have listen=yes or listen_ipv6=yes # (mandatory for standalone operation) if [ -f /server/vsftpd/conf/vsftpd.conf ] && ! egrep -iq "^ *listen(_ipv6)? *= *yes" php程序员站
/server/vsftpd/conf/vsftpd.conf; then exit 0 fi
DAEMON=/server/vsftpd/vsftpd NAME=vsftpd
test -x $DAEMON || exit 0
case "$1" in start) echo -n "Starting FTP server: $NAME" start-stop-daemon --start --background -m --pidfile /tmp/vsftpd.pid --exec $DAEMON echo "." ;; stop) echo -n "Stopping FTP server: $NAME" start-stop-daemon --stop --pidfile /tmp/vsftpd.pid --oknodo --exec $DAEMON echo "." ;; restart) www.phperz.com echo -n "Restarting FTP server: $NAME" start-stop-daemon --stop --pidfile /tmp/vsftpd.pid --oknodo --exec $DAEMON start-stop-daemon --start --background -m --pidfile /tmp/vsftpd.pid --exec $DAEMON echo "." ;; reload|force-reload) echo "Reloading $NAME configuration files" start-stop-daemon --stop --pidfile /tmp/vsftpd.pid --signal 1 --exec $DAEMON echo "." ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload}" exit 1 ;; phperz.com esac
exit 0 [/code:1:b9bd2e7e99]
运行 rcconf 选中 vsftpd ,确定
重新启动,试试试不是所有的服务都启动了,呵呵...
全文完
最后编辑 [2005-06-27] 文章比较长,难免有错误,还请高手指教,谢谢 :) 原文链接: http://bbs.micronsky.net/viewtopic.php?t=160
|
|
[收藏此页] [打印本页] [返回顶部] |
|
|
|
|
|
|
|
|
|