1.编译php5.4,加载相应模块

mysql模块编译时需要注意,--withmysql=DIR      Include MySQL support.  DIR is the MySQL base mysqlnd the MySQL native driver will be used

DIR是根目录,可以用find / -name mysql.h查找  ,/usr/include/mysql/mysql.h,只需/usr即可

./configure --prefix=/usr/local/php5 --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-fastcgi --with-mysql=/usr --withmysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usrmakemake install

   编译好后发现少了一些模块,不过可以手动编译单个模块。

   gd模块编译

cd ext/gd/usr/local/php5/bin/phpize./configure --with-php-config=/usr/local/php5/bin/php-config --with-freetype-dir=/usr/local/include/freetype2makemake install

    snmp模块编译

cd ext/snmp/usr/local/php5/bin/phpize./configure --with-php-config=/usr/local/php5/bin/php-configmakemake install

       编辑 /usr/local/php5/lib/php.ini,在最下面添加

extension =snmp.soextension=gd.soextension=mysql.soextension=mysqli.soextension=pdo_mysql.so

2. 安装fcgiwrap

apt-get install fcgiwrap

   或者源码安装

autoreconf./configuremakemake install

3.nginx配置

   cacti.conf

server {        listen 80;        server_name cacti.test.com;        index index.php index.html;        root /var/www/cacti/site;        charset utf-8; #weathermap插件正常显示中文        location ~ \.php$        {                fastcgi_pass 127.0.0.1:9000;                fastcgi_index index.php;                include /etc/nginx/fastcgi_params;        }                                                                                                                                                                                                                                                                                          location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$        {                expires 30d;                access_log off;        }                                                                                                                                                                                                                                                                                          location ~ .*\.(js|css)?$        {                expires 1h;                access_log off;        }        #weathermap编辑页面,添加验证        location /plugins/weathermap/editor.php        {                fastcgi_pass 127.0.0.1:9000;                include /etc/nginx/fastcgi_params;                auth_basic "Login:";                auth_basic_user_file /etc/nagios3/htpasswd.users;        }                                                                                                                                                                                                                                                                                   }

   nagios.conf

server {        listen 80;        server_name nagios.test.com;        index index.php index.html;        root /var/www/nagios3/htdocs;        auth_basic "Nagios Login pain";        auth_basic_user_file /etc/nginx/htpasswd.users;                                                                                                                                                                                                                                                          #stylesheets没有这块,不能正常显示        location /stylesheets/ {                alias /etc/nagios3/stylesheets/;        }        location ~ \.php$ {                fastcgi_pass 127.0.0.1:9000;                fastcgi_index index.php;                include /etc/nginx/fastcgi_params;        }                                                                                                                                                                                                                                                           location ~ \.cgi$ {                root /usr/lib/cgi-bin/nagios3;                rewrite ^/cgi-bin/nagios3/(.*)$ /$1 break;#此处必须用break。使用last或不用都会出现403错误                fastcgi_pass  unix:/var/run/fcgiwrap.socket; #sudo apt-get install fcgiwrap安装                fastcgi_index index.cgi;                #fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/nagios3/$1;#也可以这样写                fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/nagios3$fastcgi_script_name;#cgi脚本位置,可以用$document_root代替                fastcgi_param AUTH_USER $remote_user;                fastcgi_param REMOTE_USER $remote_user;                fastcgi_param   QUERY_STRING            $query_string;                fastcgi_param   REQUEST_METHOD          $request_method;                fastcgi_param   CONTENT_TYPE            $content_type;                fastcgi_param   CONTENT_LENGTH          $content_length;                fastcgi_param   SCRIPT_FILENAME         $request_filename;                fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;                fastcgi_param   REQUEST_URI             $request_uri;                fastcgi_param   DOCUMENT_URI            $document_uri;                fastcgi_param   DOCUMENT_ROOT           $document_root;                fastcgi_param   SERVER_PROTOCOL         $server_protocol;                fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;                fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;                fastcgi_param   REMOTE_ADDR             $remote_addr;                fastcgi_param   REMOTE_PORT             $remote_port;                fastcgi_param   SERVER_ADDR             $server_addr;                fastcgi_param   SERVER_PORT             $server_port;                fastcgi_param   SERVER_NAME             $server_name;                fastcgi_param   REDIRECT_STATUS         200;        }}

4.运行

/etc/init.d/fcgiwrap start/usr/local/php5/sbin/php-fpmnginx

5.cacti0.87g 使用php5.4出现错误的解决方法,错误内容为:PHP message: PHP Fatal error:  Call to undefined function session_unregister() in /var/www/cacti/site/lib/functions.php on line 410,修改functions.php 410行附近内容为:

/* kill_session_var - kills a session variable using two methods -- session_unregister() and unset() */function kill_session_var($var_name) {        /* register_global = off: reset local settings cache so the user sees the new settings */        /*session_unregister($var_name);*/        /* register_global = on: reset local settings cache so the user sees the new settings */        /*unset($_SESSION[$var_name]);*/        unset($var_name);}