天天看點

Apache+Fastcgi子產品+APC經典配置

前言 * FastCGI是一個程式接口,它能加速公共網關接口(CGI),CGI是一種用最常見的方式使Web伺服器調用應用程式的Web應用程式。按一個FastCGI工具來看,使用者要求進入一個網站并使用一個專門的應用軟體的話,使用FastCGI能夠快3到30倍。FastCGI是Web伺服器的一種插件。

一、安裝apache fastcgi子產品:

下載下傳位址:http://down.51cto.com/data/139939 (51cto下載下傳中心)  

tar -zxvf mod_fastcgi-current.tar.gz  

cd mod_fastcgi  

cp Makefile.AP2 Makefile  

vi Makefile 修改top_dir=/usr/local/apache2  #你的apache安裝路徑或者直接編(apache2.0已經安裝)  

make  

make install(這裡采用apache而不采用nginx的原因是:雖然nginx有很多優點,但是對于大部分中小型網站來說,apache經過優化可以滿足通路要求。)

二、安裝MYSQL

tar -zxvf mysql-5.0.75.tar.gz  //解壓  

cd mysql-5.0.75  

 ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charsets=all 

make install  

groupadd mysql  //建立組mysql  

useradd -g mysql mysql  //建立mysql使用者,把mysql加入到mysql組  

cd /usr/local/mysql/  

cp share/mysql/my-medium.cnf  /etc/my.cnf  

cp share/mysql/mysql.server /etc/init.d/mysqld  

(以上是把mysql加入系統服務)  

 chown -R mysql.mysql /usr/local/mysql  

 /usr/local/mysql/bin/mysql_install_db --user=mysql  //初始化資料庫  

 chown -R mysql.mysql /usr/local/mysql/var  

 /usr/local/mysql/bin/mysqld_safe --user=mysql &  //啟動資料庫(或者 service mysqld restart) 

三、安裝php-fpm

在安裝PHP-FPM編譯的時候會報找不到libevent,可以執行

yum -y install libevent*  

wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz  

tar zxvf libevent-1.4.12-stable.tar.gz  

cd libevent-1.4.12  

./configure --prefix=/usr/local/libenent  

mak && make install

tar -jxvf php-5.3.3.tar.bz2  

cd php-5.3.3  

./configure \  

--prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc \  

--with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config \  

--with-zlib --with-curl --with-jpeg-dir --with-freetype-dir --with-png-dir \  

--with-libxml-dir=/usr/ --with-gd  --with-openssl  \  

--with-openssl --with-ldap --with-ldap-sasl --with-xmlrpc --without-pear \  

--enable-xml --enable-gd-native-ttf \  

--enable-ctype --enable-calendar --enable-inline-optimization \  

--enable-magic-quotes --with-bz2 --enable-mbstring \  

--enable-fpm  --enable-safe-mode  --enable-bcmath  --enable-shmop \  

--enable-sysvsem --enable-mbregex  --enable-mbstring --enable-pcntl  \  

--enable-zip --enable-ftp --enable-sockets --enable-soap --with-libevent-dir=/usr/local/libevent/  

make && make install  

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm  

chmod +x /etc/init.d/php-fpm  

cp -r sapi/fpm/php-fpm.conf /usr/local/php5/etc/ 

啟動php-fpm

/etc/init.d/php-fpm start

此時啟動應該會報錯,說php-fpm.conf配置檔案中很多選項沒有打開,隻要按照它的提示打開就OK。

四、修改apache,讓apache支援php-fpm

vi httpd.conf

增加: LoadModule fastcgi_module modules/mod_fastcgi.so   

有的話不用添加。  

在vhosts.conf檔案的項目中加入以下(如果不引用vhosts.conf的話可以把下面的語句加入http.conf的最後)  

    ScriptAlias /cgi-bin/ "/usr/local/php5/bin/"  

    FastCgiExternalServer /usr/local/php5/bin/php-fpm -host 127.0.0.1:9000  

    AddType application/x-httpd-php .php  

    AddHandler php5-fastcgi .php  

    Action php5-fastcgi /cgi-bin/php-fpm  

    <Directory "/usr/local/php5/bin/"> 

    Options -Indexes FollowSymLinks +ExecCGI  

    Order allow,deny  

    Allow from all  

    </Directory> 

#Action php5-fastcgi /cgi-bin/php-fpm中的php-fpm一定要和FastCgiExternalServer中的檔案名一樣.而且/cgi-bin/和前面的ScriptAlias的路徑也要一樣,兩句放一塊就是說上面的映射也就是所有的.php檔案都由/cgi-bin/php-fpm 處理  

 否則會出錯的.  

加完以上的,安裝完成了。但是php-fpm.conf配置檔案需要優化(常見優化見後期給出)  

注:在增加了apc.so後總是出現linux Warning: PHP Startup: Unable to load dynamic library  

後怎麼更改都不行,後重新編譯php-5.3.3,并加上  

--with-libevent-dir=/usr/local/libevent參數,一切OK!最好不要用系統預設的 

五、安裝php-apc的步驟:

PHP APC提供兩種緩存功能,即緩存Opcode(目标檔案),我們稱之為apc_compiler_cache。同時它還提供一些接口用于PHP開發人員将使用者資料駐留在記憶體中,我們稱之為apc_user_cache。我們這裡主要讨論php-apc的配置。

/usr/local/php5/bin/phpize  

export PHP_PREFIX="/usr/local/php5/" 

./configure --enable-apc --enable-apc-mmap --with-apxs=/usr/local/httpd-2.2.14/bin/apxs --with-php-config=$PHP_PREFIX/bin/php-config 

php.ini添加如下語句

extension_dir="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626" 

extension = apc.so  

[APC]  

apc.enabled = 1 

apc.shm_segments = 1 

apc.shm_size = 64M 

apc.optimization = 1 

apc.num_files_hint = 0 

apc.ttl=7200 

apc.user_ttl=7200 

apc.gc_ttl = 3600 

apc.cache_by_default = on

【注意*】

php5.3.3預設沒有把php.ini檔案裡面的short_open_tag = Off設定為short_open_tag = On

是以我們需要把short_open_tag = Off設定為On;否則的話,通路php測試頁面和php頁面不顯示的問題。(安裝php-apc後,網站就無法顯示,無法讀取php變成空白頁面)

由于水準有限 O(∩_∩)O~ ,寫的不詳細地方的請多指教。

本文轉自 wgkgood 51CTO部落格,原文連結:http://blog.51cto.com/wgkgood/421481