apache 2.0.47 安裝筆記(轉)

post0發表於2007-08-09
apache 2.0.47 安裝筆記(轉)[@more@]

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

壓縮除圖片以外的所有輸出內容

SetOutputFilter DEFLATE

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4.0[678] no-gzip

BrowserMatch MSIE !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

DeflateFilterNote Input instream

DeflateFilterNote Output outstream

DeflateFilterNote Ratio ratio

LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate

CustomLog logs/deflate_log deflate

ExtendedStatus On

mod_limitipconn模組的配置,適當的修改一下

MaxConnPerIP 3 最大ip併發連線數

NoIPLimit image/* 對image目錄下檔案不限制

MaxConnPerIP 1

OnlyIPLimit audio/mpeg video 只對audio/mpeg型別檔案限制

# 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這類指令碼檔案,程式原始碼會直接顯示出來的

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-937929/,如需轉載,請註明出處,否則將追究法律責任。

相關文章