在systemd中配置php-fpm.service

vim /etc/systemd/system/php-fpm.service

[Unit]

Description=PHP-FPM

After=network.target syslog.target

[Install]

WantedBy=default.target

# Alias=php-fpm.service 不要设置别名。如果本文件名和Alias同名,则会导致systemctl enable php71-fpm报错:Failed to execute operation: Invalid argument

[Service]

#User=nobody

#Group=nobody

#User and Group can be set in the php-fpm configure file

# 2020-04-24更新:参考PHP默认提供的配置文件,使用Type=notify
Type=notify
#Type=forking
## PIDFile=/usr/local/php7/var/run/php-fpm.pid  不需要在这里指定pid文件位置,需要到php-fpm.conf文件中指定

ExecStart=/usr/local/php7/sbin/php-fpm

ExecStop=/bin/kill -INT $MAINPID

ExecReload=/bin/kill -USR2 $MAINPID

保存设置
systemctl daemon-reload

启动php-fpm.service
systemctl start php-fpm

systemctl enable php-fpm设置为开机启动

如果启动失败,请查看日志,常见错误都是权限问题,比如pid目录和php-fpm设置的log目录没有写权限等

 

PS:其实在编译PHP后,会自动生成配置文件,位置:php-${PHP_VERSION}/sapi/fpm/php-fpm.service ,然后直接把这个文件拷贝到/etc/systemd/system 目录即可

PHP 5.3 ~ PHP 5.6 功能变动

PHP 5.3 ~ PHP 5.6 功能变动

本文将会介绍自 PHP 5.3 起,直至 PHP 5.6 中增加/删除/更改的特征。

总纲

PHP 5.3以前:autoload,PDO 和 MySQLi,类型约束,JSON 支持,Phar支持,……

PHP5.3:匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,……

PHP5.4:Short Open Tag, 数组简写形式,Traits, 内置 Web 服务器,……

PHP5.5:yield, list() 用于 foreach, ……

PHP5.6: 常量增强,可变函数参数,命名空间增强,……

PHP 5.3以前

类型约束

通过类型约束可以限制参数的类型,不过这一机制并不完善,目前仅适用于类、接口、 array(数组,从PHP 5.1开始)、callable(可执行类型,从PHP 5.4开始) 以及string 和 int(从PHP 7.0开始).(http://php.net/manual/zh/language.oop5.typehinting.php)

JSON 支持

包括 json_encode(), json_decode() 等函数,JSON 系列函数,可以将 PHP 中的数组结构与 JSON 字符串进行转换。值得注意的是 json_decode() 默认会返回一个对象而非数组,如果需要返回数组需要将第二个参数设置为 true.

Phar支持

http://php.net/manual/zh/phar.requirements.php

继续阅读PHP 5.3 ~ PHP 5.6 功能变动