自PHP-5.3.3起,PHP-FPM加入到了PHP核心,編譯時加上--enable-fpm便可提供支持。 PHP-FPM以守護進程在後臺運行,Nginx響應請求後,自行處理靜態請求,PHP請求則通過fastcgi_pass交由PHP-FPM處理,處理完畢後返回。 Nginx和PHP-FPM的組合,是一種穩定、高效的PHP運行方式,效率要比傳統的Apache和mod_php高出很多。php
//系統說明
html
1.centos6.4 IP:10.10.54.157mysql
2.軟件版本:nginx1.4.5+mysql5.5+php5.4nginx
//編譯安裝nginx1.4.5sql
1.下載nginx1.4.5 shell> wget 2.解壓nginx.1.4.5 shell> tar xvf nginx-1.4.5.tar.gz 3.編譯安裝 shell> yum -y install zlib-devel pcre-devel openssl-devel #nginx依賴包 shell> ./configure --prefix=/usr/local/nginx --with-pcre --with-http_stub_status_module --user=apache --group=apache --with-http_ssl_module --with-http_gzip_static_module shell> make && make install 4.啓動nginx shell> /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 5.打開瀏覽器測試是否能夠訪問
//編譯安裝mysql5.5shell
1.編譯安裝 shell> groupadd mysql && useradd -g mysql mysql -s /sbin/nologin shell> mkdir -p /data/mysql shell> cd /home/softs/mysql-5.5.30 shell> cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/dbdata -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_SSL=yes shell> make && make install #配置 shell> cp -f /home/softs/mysql-5.5.30/support-files/my-large.cnf /etc/my.cnf shell> cp -f /home/softs/mysql-5.5.30/support-files/mysql.server /etc/init.d/mysqld shell> chmod 755 /etc/init.d/mysqld shell> vim /etc/my.cnf --------------------------- [mysqld datadir=/data/mysql socket=/usr/local/mysql/tmp/mysql.sock --------------------------- shell> chown mysql.mysql /usr/local/mysql -R #初始化數據庫 shell> /usr/local/mysql/scripts/mysql_install_db --user=root --datadir=/data/mysql --basedir=/usr/local/mysql shell> chown mysql.mysql /data/mysql -R shell> /etc/init.d/mysqld restart #添加環境變量 shell> echo "export PATH=${PATH}:/usr/local/mysql/bin" >> /etc/profile
//編譯安裝php5.4數據庫
1.編譯前說明 #yum安裝運行環境 shell> yum –y install libxml2-devel curl-devel libpng-devel openldap-devel #安裝PHP前須要編譯安裝這兩個源碼包:libmcrypt mhash #nginx使用fpm的方式條用php,php5.4之後版本中已經支持php-fpm,因此只須要在php編譯參數裏指定--enable-fpm便可 2.首先安裝libmcrypt-2.5.8 wget http://pkgs.fedoraproject.org/repo/pkgs/libmcrypt/libmcrypt-2.5.7.tar.gz/b1be163143f8e8ed0474beeb642b3bad/libmcrypt-2.5.7.tar.gz tar xvf libmcrypt-2.5.7.tar.gz cd libmcrypt-2.5.7 ./configure make && make install 3.安裝mhash-0.9.9.9 wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/download tar -jxvf mhash-0.9.9.9.tar.bz2 cd mhash-0.9.9.9 ./configure make && make install 4.創建軟鏈接到/usr/lib ln -s /usr/local/lib/libmcrypt* /usr/lib ln -s /usr/local/lib/libmhash.* /usr/lib ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 5.安裝php5.4 tar xvf php-5.4.25.tar.gz cd php-5.4.25 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/tmp/mysql.sock --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --with-curlwrappers --enable-fpm --enable-fastcgi --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap 【error1】 configure: error: Cannot find ldap libraries in /usr/lib. 【solution1】 shell> ln -s /usr/lib64/libldap* /usr/lib/ shell> ldconfig 【error2】 Generating phar.php /home/softs/php-5.4.25/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory make: *** [ext/phar/phar.php] Error 127 【solution2】 shell> ln -s /usr/local/mysql/lib/libmysqlclient* /usr/lib/ shell> ldconfig shell> make && make install
//配置nginx支持phpapache
1.首先爲php建立配置文件: cp php.ini-production /usr/local/php/php.ini mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf ln -s /usr/local/php/bin/php /usr/bin/ 2.配置php-fpm.conf vi /usr/local/php/etc/php-fpm.conf -------------------------------- listen = /var/run/php-fpm.sock # 使用unix socket -------------------------------- #啓動php-fpm /usr/local/php/sbin/php-fpm shell> ps aux | grep php-fpm #查看php-fpm是否成功 root 3412 0.0 0.0 103236 892 pts/3 S+ 13:56 0:00 grep php-fpm root 29811 0.0 0.5 281608 5280 ? Ss Mar12 0:05 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) nobody 29812 0.0 1.5 290576 15832 ? S Mar12 0:00 php-fpm: pool www nobody 29813 0.0 1.8 293496 19064 ? S Mar12 0:01 php-fpm: pool www nobody 30839 0.0 1.1 286492 11300 ? S Mar12 0:00 php-fpm: pool www 3.配置nginx,添加支持php vi /usr/local/nginx/conf/nginx.conf ------------------------------------------------------------- http { server { listen 80; server_name localhost; charset uft-8; access_log logs/host.access.log; location / { #默認網站根目錄 root /var/www/bbs; # 添加index.php的首頁文件 index index.php index.html index.htm; } #添加下面的內容,注意$document_root在默認配置文件中沒有 location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcg i_params; include fastcgi.conf; } } } ------------------------------------------------------------ #修改完以後重啓nginx
//支持ssl加密傳輸vim
-------------------------------------------------------------- user apache apache; worker_processes 2; error_log logs/error_nginx.log; pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access_nginx.log main; sendfile on; tcp_nopush on; keepalive_timeout 65; gzip on; #虛擬主機配置文件 # include virtual/www.zijian.com.conf; server { #https加密協議默認端口 listen 443; server_name bbs.zijian.com; charset uft-8; access_log logs/bbs.access.log main; #網站根目錄 root /var/www/bbs; index index.php index.html; location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; include fastcgi.conf; } #配置ssl,證書用openssl工具生成,下面的路徑是證書的存放目錄,證書須要用系統自帶的openssl工具生成 #訪問這個server時候,用https://xxx.com格式 ssl on; ssl_certificate /usr/local/nginx/conf/ssl/client.pem; ssl_certificate_key /usr/local/nginx/conf/ssl/client.key; } } -------------------------------------------------------------------