标签:default local unit follow bmc 静态 Opens bcmath soap
PHP软件版本5.6.39③ 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的环境检查参数,网站搬家要用到
②动态安装模块【即后期安装所需的功能模块】
首先需要安装动态模块的包: 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
标签:default local unit follow bmc 静态 Opens bcmath soap
原文地址:http://blog.51cto.com/python20101030/2341418