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=/usr make make 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/freetype2 make make install
snmp模块编译
cd ext/snmp /usr/local/php5/bin/phpize ./configure --with-php-config=/usr/local/php5/bin/php-config make make install
编辑 /usr/local/php5/lib/php.ini,在最下面添加
extension =snmp.so extension=gd.so extension=mysql.so extension=mysqli.so extension=pdo_mysql.so
2. 安装fcgiwrap
apt-get install fcgiwrap
或者源码安装
autoreconf ./configure make make 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-fpm nginx
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); }