apache 2.0.47 安装笔记
cloudxx
|
1#
cloudxx 发表于 2003-11-04 23:20
apache 2.0.47 安装笔记
apache 2.0.47 安装笔记
cloud/2003.10.23 mail:flashc@21cn.com 欢迎转载,转载请保留以上信息,谢谢 个人水平有限,文中难有遗漏错误的地方,欢迎指出。笔记系后期整理,不能保证完全可用,主要是apache的conf文件,不知道是否有遗漏,请大家见谅。 解压软件 # tar zxvf httpd-2.0.47.tar.gz -C /setup mod_limitipconn是一个限制同一IP连接次数的模块 # tar zxvf mod_limitipconn-0.22.tar.gz -C /setup # cd /setup/httpd-2.0.47 给apache打补丁,支持同一ip连接的代理跟踪 # patch -p1 < ../mod_limitipconn/apachesrc.diff # ./configure --prefix=/web/httpd \ 安装目录 --datadir=/www \ 发布网页目录 --enable-so \ 启用共享模块功能,安装php.mod_perl必需 --enable-deflate \ 启用压缩支持 --with-mpm=worker \ 启用线程和进程混合的多道处理模块worker,默认是prefock,即1.3里面的纯进程工作模式,注意,这里如果选择worker的话,那么后面编译PHP的时候是不能选择MM(使用内存来保存会话信息)的支持的!ZendPerformanceSuite只能工作在prefock工作模式!!! --with-module=aaa:../mod_limitipconn-0.22/mod_limitipconn.c \ 静态编译mod_limitipconn模块到httpd内部(如果你想动态加载安装那就自己去看看README好了,很简单的) --enable-forward 激活同一ip的代理连接跟踪,打的补丁也是针对这个的 # make # make install # cd /web/httpd # bin/httpd -l 查看编译的模块,注意一下是否有mod_limitipconn的输出。 # tar zxvf mm-1.3.0.tar.gz -C /setup # tar jxvf php-4.3.3.tar.bz -C /setup # tar zxvf gd-2.0.15.tar.gz -C /setup # tar zxvf jpeg-v6b.tar.gz -C /setup # tar zxvf libpng-1.2.5.tar.gz -C /setup # tar zxvf zlib-1.1.4.tar.gz -C /setup # tar jxvf freetype-2.1.5.tar.bz2 -C /setup # cd /setup/mm-1.3.0 # ./configure --prefix=/web/mm # make && make install # echo "/web/mm/lib" >;>; /etc/ld.so.conf # ldconfig # ldconfig -p | grep mm 查找mm库的输出 # cd ../libpng-1.2.5 # cp scripts/makefile.gcmmx makefile (makefile.gcmmx是针对MMX指令集优化的,具体看INSTALL文件) # cd ../jpeg-6b # mkdir /usr/local/man/man1 # make && make install && make install-lib # cd ../gd-2.0.15 # ./configure 配置完成后,注意输出的信息是否如下: Xpm库我总是安装不成功,不管它了,也很少用,一般PNG/JPEG/FREETYPE三个库打开支持就行了 ** Configuration summary for gd 2.0.15: Support for PNG library: yes Support for JPEG library: yes Support for Freetype 2.x library: yes Support for Xpm library: no # make && make install # cp gd.h /usr/local/lib \\编译PHP的时候会缺少这个文件出错 # cd ../zlib-1.1.4 # ./configure --shared \\shared生成zlib的共享库文件 # make && make install # cd ../freetype-2.1.5.tar.bz2 -C /setup # ./configure # make && make install # echo "/usr/local/lib" >;>; /etc/ld.so.conf # ldconfig # cd ../php-4.3.3 # # ./configure --with-apxs2=/web/httpd/bin/apxs --enable-track-vars (打开变量跟踪功能) --with-zlib-dir=/usr/local/lib --with-gd=/usr/local/lib --with-mm=/web/mm (如果你编译apache选择了worker的mpm模块,那么就不要加上mm的支持,mm是不支持线程工作的,否则编译的时候会出错的) --enable-sysvmsg --enable-sockets --enable-sysvshm --enable-sysvsem --enable-gd-native-ttf --with-ttf=/usr/lib --disable-debug --with-tiff-dir=/usr/lib --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-mysql=/web/mysql --with-xml --with-gdbm-dir=/usr/lib --enable-ftp --enable-inline-optimization --with-gettext=/usr/lib --enable-magic-quotes --enable-safe-mode \\激活安全模式 --enable-bcmath \\打开bcmath函数支持 --enable-memory-limit=yes \\打开运行时内存限制 --enable-wddx \\wddx是一种网站间XML数据交换支持技术,原文意思大致如此 --enable-thread-safety \\配合apache的worker模块 --with-freetype-dir=/usr/local/lib \\打开freetype库支持 # make # make install # cp php.ini-recommended /usr/local/lib/php/php.ini # vi php.ini \\适当的修改php.ini文件 safe_mode = Off \\是否使用安全模式 register_globals = Off \\是否允许注册全局变量 max_execution_time = 30 \\脚本最大执行时间 max_input_time = 60 \\脚本最大输出时间 memory_limit = 20M \\php使用的内存限制 post_max_size = 8M \\php最大传递数据 file_uploads = On \\是否允许http文件传输 upload_max_filesize = 2M \\http件传输文件大小限制 allow_url_fopen = On \\PHP的远程文件打开功能,如果服务器有多用户使用,最好关闭 session.save_handler = mm \\如果编译时加上了mm的共享内存支持,请修改成mm error_reporting = E_ALL & ~E_NOTICE \\脚本出错报告格式,如果要加强安全,可修改成E_ALL display_errors = On \\是否显示脚本执行错误 log_errors = On \\是否允许日志记录错误 error_log = /usr/local/apache/logs/php_error.log \\错误日志存放地址 disable_functions = phpinfo, get_cfg_var \\禁止phpinfo,get_cfg_var函数的使用,如果你的服务器就自己一个用就不需要了 # tar zxvf mod_perl-2.0-curent.tar.gz -C /setup # cd /setup/mod_perl-1.99_10 # perl Makefile.PL MP_APXS=/web/httpd/bin/apxs # make # make install # vi /web/httpd/conf/httpd.conf \\修改apache配置文件 LoadModule php4_module modules/libphp4.so LoadModule perl_module modules/mod_perl.so AddDefaultCharset GB2312 AddHandler cgi-script .cgi AddHandler cgi-script .pl PerlRequire "/web/httpd/conf/startup.pl" AddType application/x-httpd-php .php AddType text/html .shtml AddOutputFilter INCLUDES .shtml DirectoryIndex index.html index.cgi index.shtml index.php <IfModule mod_deflate.c>; \\压缩除图片以外的所有输出内容 <Location />; SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI \ \.(?:gif|jpe?g|png)$ no-gzip dont-vary Header append Vary User-Agent env=!dont-vary </Location>; DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate CustomLog logs/deflate_log deflate </IfModule>; ExtendedStatus On <IfModule mod_limitipconn.c>; \\mod_limitipconn模块的配置,适当的修改一下 <Location /somewhere>; MaxConnPerIP 3 \\最大ip并发连接数 NoIPLimit image/* \\对image目录下文件不限制 </Location>; <Location /mp3>; MaxConnPerIP 1 OnlyIPLimit audio/mpeg video \\只对audio/mpeg类型文件限制 </Location>; </IfModule>; # vi startup.pl \\添加一个startup.pl文件预先加载perl模块 use Apache2 (); # use lib qw(/home/httpd/perl); # enable if the mod_perl 1.0 compatibility is needed use Apache::compat (); # preload all mp2 modules # use ModPerl::MethodLookup; # ModPerl::MethodLookup::preload_all_modules(); use ModPerl::Util (); use Apache::RequestRec (); use Apache::RequestIO (); use Apache::RequestUtil (); use Apache::Server (); use Apache::ServerUtil (); use Apache::Connection (); use Apache::Log (); use APR::Table (); use ModPerl::Registry (); use Apache::Const -compile =>; ':common'; use APR::Const -compile =>; ':common'; 1; 还有就是zend optimizer和zend performance suite 的安装,很easy的,直接执行install就ok了,zend performance suite效果不错,使用他自带的测试程序测试加速很多,看上去感觉很舒服,虽然我不知道是否速度到底提升了多少,网上有下载的,去google搜索一下"zend performance suite 商业版"关键字就知道了,不过里面的license文件就不好找了,ttdown.com这个站上的license只有php加速和压缩的功能,没有缓冲功能模块的许可,zend performance suite 的压缩输出模块使用我发现phpbb的论坛没法正常工作了,建议还是不要使用. JSP的配置如果是RESIN就很简单的,配置和APACHE的连接就configure --with-apxs/make/make install三部就ok了,然后修改一下resin的配置文件,修改其doc变量指向apache的web文档目录,比tomcat简单多了,我就不多说了,网上很多教程的。做好连接后要记得屏蔽resin的8080端口,因为从这个端口直接访问你的php这类脚本文件,程序源代码会直接显示出来的。 |