PHP 5.6.39 安装、配置、日志配置详解

PHP软件版本5.6.39
一、PHP的编译安装管理:
① : php编译安装,php的编译安装依赖的库比较多,编译安装会稍微难一点
yum -y install epel-release [安装epel源]
yum -y install gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel
【安装RZ上传软件:yum install lrzsz -y】XSHELL好使,putty使用后无反应。 上传命令:rz -E
② :tar -zxf php-5.6.39.tar.gz
cd php-5.6.39
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-ctype --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fpm
make
make install
cp php.ini-production /usr/local/php/etc/php.ini 源码安装时我们指定配置文件放在/usr/local/php/etc,我们把默认的配置文件改名并放到相应目录。
【编译安装说明】:
--prefix=/usr/local/php #安装路径
--with-config-file-path=/usr/local/php/etc #配置文件路径
--enable-fpm #需要支持fpm,nginx是通过fpm来调用php程序的

③ php安装验证: cd /usr/local/php/bin/
./php –v

bin目录放置PHP的程序,像nginx一样,
etc目录放置php的配置文件,
include目录放置头文件,
Lib目录放置一些包和一些依赖的库,
sbin目录放置php-fpm var目录放置日志等
④ php的管理命令
/usr/local/php/bin/php -i|grep ini #查看配置文件路径
/usr/local/php/bin/php -m #查看php的模块
/usr/local/php/bin/php -i|grep configure #查看php的环境检查参数,网站搬家要用到

二、PHP的日志和动态安装扩展模块:
① cd /usr/local/php/bin vim php.ini
php错误日志配置:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
记录所有的日志,不包含过时函数提示和php严格语法提示,通常也会忽略E_NOTICE的报错。

php错误日志记录到文件
log_errors = On
log_errors_max_len = 1024
error_log = /tmp/php_errors.log
错误日志直接输出到屏幕,注意生产环境需要关闭
display_errors = On

php需要更改时区配置
date.timezone = PRC
PRC的英文含义是 People’s Republic of China
【php的模块再说明:/usr/local/php/bin/php -m #需要gd模块才能绘图,需要mysql相关模块才能操作mysql】

②动态安装模块【即后期安装所需的功能模块】
首先需要安装动态模块的包: yum install autoconf –y
其次需要使用动态扩展工具: /usr/local/php/bin/phpize #php动态扩展模块的工具

假设php需要操作redis的话,可以动态安装php redis模块,不需要重新编译php。
去pecl网站下载redis的扩展 【网址 https://pecl.php.net/package/redis
tar -zxvf redis-4.2.0.tgz
cd redis-4.2.0
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config make && make install

③php配置文件里添加redis.so,并检查redis扩展有没有安装成功
vim /usr/local/php/etc/php.ini
配置文件添加extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/redis.so

/usr/local/php/bin/php -m

三、PHP-fpm的配置和管理:
①php-fpm作用:nginx调用php程序是通过php-fpm这个接口程序来的,php-fpm专门为nginx+php的架构开发。
②php-fpm的默认配置样例文件/usr/local/php/etc/php-fpm.conf.default
提取样例配置文件内容 cat /usr/local/php/etc/php-fpm.conf.default|egrep -v ‘^;|^$‘
[global]
[www]
user = nobody
group = nobody
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
③php-fpm的默认配置文件位置 /usr/local/php/etc/php-fpm.conf; PHP-FPH启动时读取该文件,需要自己创建配置文件,默认安装完成后是没有的。
vim /usr/local/php/etc/php-fpm.conf 将提取的步骤二的内容复制到该文件中。
④ php-fpm的启动和关闭
/usr/local/php/sbin/php-fpm -t #先检查配置文件
/usr/local/php/sbin/php-fpm #启动php-fpm
pkill -9 php-fpm #闭关php-fpm
⑤ php-fpm加入systemctl管理/usr/lib/systemd/system/php-fpm.service
vim /usr/lib/systemd/system/php-fpm.service 复制以下内容:

[Unit]
Description=php-fpm
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
ExecStop=pkill -9 php-fpm

[Install]
WantedBy=multi-user.target

管理php-fpm
systemctl enable php-fpm #开机启动php-fpm
systemctl start php-fpm #启动php-fpm

默认启动检查:
ps auxf|grep php-fpm
netstat -tulnp|grep php-fpm

⑥ 默认配置说明
user、group代表php-fpm运行的用户和组
listen表示fpm监听的方式,默认使用的是网络的监听方式,还有一种socket的监听方式

socket监听的配置方式
listen = /dev/shm/php-fpm.sock
listen.owner = www
listen.group = www

两种监听方式的选择
如果nginx+php-fpm是在同一台机器的话,建议使用sock的方式
如果nginx+php-fpm在不同机器的话,只能选择网络方式

php-fpm的工作进程数的配置
pm = dynamic #pm可以配置php-fpm的进程管理方式,有动态dynamic或者静态static两种方式
pm的相关配置:可配置最大php-fpm的数量 pm.max_children = 5
启动需要多个fpm pm.start_servers = 2
fpm最小要空闲几个 pm.min_spare_servers = 1
fpm最大要空闲几个 pm.max_spare_servers = 3 pm.min_spare_servers = 1

⑦nginx+fpm的两种结合方式:
⑦->①第一种,使用网络连接的方式。php-fpm监听在127.0.0.1:9000
[global]
[www]
user = www
group = www
listen = 127.0.0.1:9000

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
nginx使用网络的方式连接php-fpm
user www; #更改用户 【特别注意:nginx+php-fpm整合,启动这两个进程的用户名一定要一致!!!】
index index.html index.htm index.php; #默认的网页展现增加一个index.php
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
测试nginx+fpm网络连接方式是否成功:浏览器访问一个PHP页面,如能正常显示表明配置成功。
⑦->②第二种,使用socket的方式。php-fpm监听在/dev/shm/php-fpm.sock
[global]
[www]
user = www
group = www
listen = /dev/shm/php-fpm.sock
listen.owner = www listen.group = www

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

nginx使用socket的方式连接php-fpm
user www; #更改用户 【特别注意:nginx+php-fpm整合,一】
index index.html index.htm index.php; #默认的网页展现增加一个index.php
location ~ .php$ {
root html;
fastcgi_pass unix:/dev/shm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
测试nginx+fpm的socket方式是否成功

⑧nginx+fpm的日志说明:
客户访问一个php程序的过程: 客户 -> nginx -> php-fpm -> nginx -> 客户

nginx的upstream_response_time观察调用php程序花费的时间 $upstream_response_time $request_time
nginx的error日志说明:error_log logs/error.log notice;

php的错误日志显示打开的话,会直接显示网页上:display_errors = On 【 /usr/local/php/etc/php.ini】

php-fpm的错误日志记录 【/usr/local/php/etc/php-fpm.conf】
[global]
error_log = /tmp/fpm_error_log
log_level = notice

php-fpm的慢日志,php只要处理超过1s就会有记录
slowlog = /tmp/phpslow.log
request_slowlog_timeout = 1s

原文地址:http://blog.51cto.com/python20101030/2341418

时间: 2024-11-03 17:13:51

PHP 5.6.39 安装、配置、日志配置详解的相关文章

centos7.0 安装日志--图文详解-python开发环境配置

centos7.0发布之后,就下载了everthing的DVD镜像,今天有时间,所以决定在vbox底下体验一番--- 上图: 默认是体验安装,作为一个忠实粉丝,我决定选择直接安装! 这个界面是这次新版本更新后改的,它把以前要下一步.上一步可以修改的操作全部集中到一个页面来,默认选择是下图这样,比如你想修改软件安装选项只要点击相应选项就可以了. 每次你更改安装选项之后,它都会自动从新计算安装源,如果你的选择的资源本地没有,还可以通过网络来安装,默认网络是不启用的,所以我们需要自己手工设置一下网络.

CentOS 6 安装,配置 httpd-2.4详解

实验主机IP 172.18.254.37 ,此时httpd程序版本为2.2.15,apr,apr-util版本均为1.3.9. 主要思路:要想此主机应用httpd-2.4,要编译安装httpd-2.4,升级apr,apr-util版本为1.4+ 安装详解: 1.安装开发环境包组和开发程序包 # yum groupinstall "Development Tools" "Server Platform Development" -y   //开发环境包组 # yum 

Nginx错误日志(error_log)配置及信息详解

Nginx状态信息(status)配置及信息详解 nginx与php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有帮助.为了后续的zabbix监控,我们需要先了解一下nginx的状态页. Nginx状态信息(status)介绍 Nginx软件在编译时又一个with-http_stub_status_module模块,这个模块功能是记录Nginx的基本访问状态信息,让使用者了解Nginx的工作状态.要想使用状态模块,在编译时必须增加--with-http_stub

webpack安装配置使用教程详解

webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对于不喜欢使用 jspm测试的朋友可以参考一下. webpack 入门 目录 1 安装 webpack2 初始化项目3 webpack 配置4 自动刷新5 第三方库6 模块化7 打包.构建8 webpack 模板我最近大量使用的是 jspm,但因为用它搭建的前端开发环境中,写测试代码非常困难,而项目又

srs配置-基本RTMP配置 && 日志配置

1.RTMP URL rtmp://HOST:PORT/app/stream_name rtmp: 协议头 HOST:注意的IP地址或域名 app: 应用名称 stream_name:流名称 2.SRS中基本RTMP的配置 listen              1935; pid                 ./objs/srs.pid; chunk_size          60000; ff_log_dir          ./objs; srs_log_tank        f

Nginx状态信息(status)配置及信息详解

Nginx状态信息(status)配置及信息详解 nginx与php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有帮助.为了后续的zabbix监控,我们需要先了解一下nginx的状态页. Nginx状态信息(status)介绍 Nginx软件在编译时又一个with-http_stub_status_module模块,这个模块功能是记录Nginx的基本访问状态信息,让使用者了解Nginx的工作状态.要想使用状态模块,在编译时必须增加--with-http_stub

MySql绿色版配置及使用详解

最近在做项目开发时用到了MySql数据库,在看了一些有关MySql的文章后,很快就上手使用了.在使用的过程中还是出现了一些问题,因为使用的是绿色免安装版的MySql所以在配置的时候出现了一些问题,该篇文章就主要针对MySql绿色版的配置及其使用进行讨论. 一.MySql概述 MySql数据库是有瑞典MySql AB公司开发,现在该公司被Oracle收购属于Oracle所有.同SQL Server类似,它也是基于关系型数据库的数据库管理系统,在Web应用方面MySQL是最好的RDBMS之一,因为它

Nginx配置与应用详解

前言 Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能.Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品.目前,包括新浪.腾讯等知名网站都已使用Nginx作为Web应用服务器.本文带来的是Nginx配置与应用详解. 基础特性 基本功能 静态资源的web服务器,能缓存打开的文件描述符 反向代理服务器,缓存.负载均衡 支持FastCGI 模块化,非DS

java开源框架SpringSide3多数据源配置的方法详解

原创整理不易,转载请注明出处:java开源框架SpringSide3多数据源配置的方法详解 代码下载地址:http://www.zuidaima.com/share/1781579130801152.htm 在SpringSide 3社区中,不断有人提出多数据源配置的问题,但是时至今日却一直没有一个完美的答案.经过一个星期的折腾,我总算搞清楚了在SpringSide 3中配置多数据源的各种困难并加以解决,在这里,特地把我配置SpringSide 3项目中多数据源的过程写出来,与大家分享. 我使用

Nginx配置文档详解

Nginx的配置文档详解,在这儿做个总结,以便以后使用的时间查看. 以下大部分自己整理,部分来自参考 #设置用户 #user  nobody; #启动进程数(一般和服务器的CPU相同) #可以使用 $ cat /proc/cpuinfo 查看内核数 worker_processes  2; #设置错误文件存放的路径 #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log