PHP连接Nginx服务器并解析Nginx日志的方法
《PHP实例:PHP连接Nginx服务器并解析Nginx日志的方法》要点: php与nginx整合PHP实例 PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀;同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐Nginx+PHP/PHP-FPM这个组合对PHP进行解析. #fastcgi php与nginx整合 [root@server79 php-5.4.12]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini 拷贝php的启动剧本 [root@server79 fpm]# pwd /root/php-5.4.12/sapi/fpm [root@server79 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm 给启动剧本加可执行权限 [root@server79 fpm]# chmod +x /etc/init.d/php-fpm [root@server79 ~]# vim /usr/local/lnmp/php/etc/php.ini cgi.fix_pathinfo=0 date.timezone = /Asia/Shanghai [root@server79 ~]# cp /usr/local/lnmp/php/etc/php-fpm.conf.default /usr/local/lnmp/php/etc/php-fpm.conf [root@server79 etc]# vim php-fpm.conf 打开注释pid = run/php-fpm.pidPHP实例 php-fpm.conf文件参数解析 listen = 127.0.0.1:9000 标签user和group用于设置运行FastCGI进程的用户和用户组.必要注意的是,这里指定的用户和用户组要和Nginx配置文件中指定的用户和用户组一致. user = nginx group = nginx 标签max_children用于设置FastCGI的进程数.依据官方建议,小于2GB内存的服务器,可以只开启64个进程,4GB以上内存的服务器可以开启200个进程. <value name="max_children">5</value> 标签request_terminate_timeout用于设置FastCGI执行脚本的时间.默认是0s,也便是无限执行下去,可以根据情况对其进行修改. <value name="request_terminate_timeout">0s</value> 标签rlimit_files用于设置PHP-FPM对打开文件描述符的限制,默认值为1024.这个标签的值必需和Linux内核打开文件数关联起来,例如要将此值设置为65535,就必需在Linux命令行执行'ulimit -HSn 65536'. <value name="rlimit_files">1024</value> 标签max_requests指明了每个children最多处理多少个哀求后便会被关闭,默认的设置是500. pm.max_requests = 500 标签allowed_clients用于设置允许访问FastCGI进程解析器的IP地址.如果不在这里指定IP地址,Nginx转发过来的PHP解析哀求将无法被接受. <value name="allowed_clients">127.0.0.1</value> 5.治理FastCGI进程 /usr/local/php/bin/php-cgi --fpm 或者
/usr/local/php/sbin/php-fpm start 建议采纳第二种方式启动FastCGI进程.
[root@server79 etc]# /etc/init.d/php-fpm start 配置nginx的主配置文件,打开与php的接口 [root@server79 conf]# pwd /usr/local/lnmp/nginx/conf [root@server79 conf]# vim nginx.conf user nginx; # location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9000; //当地9000端口 fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi.conf; } [root@server79 conf]# nginx -t^C [root@server79 conf]# nginx -s reload^C [root@server79 html]# pwd /usr/local/lnmp/nginx/html [root@server79 html]# cat index.php <?php phpinfo()?> 测试:浏览器中输入192.168.0.179/index.php,出现php页面PHP实例
access_log日志格局PHP实例 log_format main '$server_name$remote_addr$remote_user[$time_local]"$request"' '$status$body_bytes_sent"$http_referer"' '"$http_user_agent""$http_x_forwarded_for"';
??? server_name????????? : 虚拟主机的主机名称?
需求 php代码PHP实例 /** * Description:按行读取文件内容进行过滤婚配 * * @return array */ function readFileContent ($filename) { $weibo_content = array(); $fh = @fopen($filename,'r'); if ($fh) { while (! feof($fh)) { $row = fgets($fh,4096); $row_arr = explode("",$row); if (isset($row_arr[3]) && preg_match('/weibo/',$row_arr[3])) { $weibo_content[] = $row_arr; } } } fclose($fh); return $weibo_content; } 欢迎参与《PHP实例:PHP连接Nginx服务器并解析Nginx日志的方法》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |