前言 * 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
- 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變成空白頁面)
最後測試,可以訪問apc.php測試效果。(欲瞭解更多APC優化知識,可以參看http://www.perfgeeks.com/?p=298)
由於水平有限 O(∩_∩)O~ ,寫的不詳細地方的請多指教。