PHP 7.2.0 已于 2017 年11月30日正式发布GA版,大家可以第一时间尝鲜了。这里我们介绍如何在 Debian 9 “Stretch” 上安装配置 PHP-7.2,以便大家及时升级。目前 Debian.cn 全站已稳定运行在 PHP-7.2 版本中。
本教程使用以下系统及组合: Debian 9 stretch 、Debian 8 Jessie、Ubuntu 16.04 LTS、Ubuntu 14.04 LTS / PHP-7.2 、PHP-7.1、PHP-5.6
安装 PHP-7
Ondřej Surý 的 PHP PPA 为 Ubuntu 16.04/14.04 提供了 PHP-7.2 版本,也通过个人网站为 Debian 9/8 提供 PHP7.2 版本。Ondřej Surý 是 Debian PHP 软件源的官方维护者之一,所以说稳定性和安全性基本上不是问题。软件源安装的 PHP 默认以 Unix Socket 的状态运行在 /run/php/php7.2-fpm.sock,比使用 TCP 以 localhost:9000 的方式性能更好。
由于 PHP7.2 是新出的版本势必有不少的兼容性问题,我们建议等待开发者通知兼容PHP-7.2后,再进行升级,一些 PECL 扩展可能也不会及时适配该最新版。建议在你的网站业务低峰时段更新,并提前做好备份,以及回退的准备。Debian.cn 使用的是 WordPress 4.9 ,已支持 PHP7.2。
添加软件源
添加 GPG
wget-O/etc/apt/trusted.gpg.d/php.gpg https://mirror.xtom.com.hk/sury/php/apt.gpg
注意:这里我们使用了 Sury 的一个镜像网站,以便快速访问。Sury 镜像的原始地址为: https://packages.sury.org/php/ ,在美国访问比较慢。
安装 apt-transport-https
apt-getinstall apt-transport-https
添加 sury 软件镜像源
echo"deb https://mirror.xtom.com.hk/sury/php/ $(lsb_release -sc) main"|sudo tee/etc/apt/sources.list.d/php.list
更新软件源缓存:
apt-getupdate
安装软件
安装 PHP7.2:
apt install-y php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-opcache
如果你想要安装PHP-7.1, 替换这个命令中的 php7.2 为 php7.1 即可。PHP5.6 亦同。
设置 PHP 7
安装完成后,编辑 /etc/php/7.2/fpm/php.ini 替换换 ;cgi.fix_pathinfo=1 为 cgi.fix_pathinfo=0 快捷命令:
sed-i's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/'/etc/php/7.2/fpm/php.ini
配置修改了,需要重启生效,命令如下:
systemctl restart php7.2-fpm
更多日常的操作:
systemctl restart php7.2-fpm#重启systemctl start php7.2-fpm#启动systemctl stop php7.2-fpm#关闭systemctl status php7.2-fpm#检查状态
安装更多组件
上面的一条命令安装 PHP 只是安装了部分 PHP 拓展,更多的软件可见:
root@debian.cn-service:~# apt-cache search php7.2php-radius-radius client libraryforPHP
php-http-PECL HTTPmoduleforPHPExtendedHTTPSupportphp-uploadprogress-file upload progress tracking extensionforPHP
php-yaml-YAML-1.1parserandemitterforPHP
php-mongodb-MongoDBdriverforPHP
php-apcu-APCUserCacheforPHP
php-imagick-Providesa wrapper to theImageMagicklibrary
php-ssh2-Bindingsforthe libssh2 library
php-redis-PHP extensionforinterfacingwithRedisphp-memcached-memcached extensionmoduleforPHP,uses libmemcached
php-apcu-bc-APCuBackwardsCompatibilityModulephp-rrd-PHP bindings to rrd tool system
php-uuid-PHP UUID extension
php-memcache-memcache extensionmoduleforPHP
php-zmq-ZeroMQmessaging bindingsforPHP
php-igbinary-igbinary PHP serializer
php-msgpack-PHP extensionforinterfacingwithMessagePackphp-geoip-GeoIPmoduleforPHP
php-tideways-TidewaysPHPProfilerExtensionphp-yac-YAC(YetAnotherCache)forPHP
php-mailparse-Emailmessage manipulationforPHP
php-oauth-OAuth1.0consumerandprovider extension
php-gnupg-PHP wrapper around the gpgme library
php-propro-propromoduleforPHP
php-raphf-raphfmoduleforPHP
php-solr-PHP extensionforcommunicatingwithApacheSolrserver
php-stomp-StreamingTextOrientedMessagingProtocol(STOMP)clientmoduleforPHP
php-gearman-PHP wrapper to libgearman
php-phalcon-full-stack PHP framework deliveredasa C-extension
php-ds-PHP extension providing efficient data structuresforPHP7php-sass-PHP bindings to libsass-fast,nativeSassparsinginPHP
php-lua-PHPEmbeddedlua interpreter
libapache2-mod-php7.2-server-side,HTML-embedded scripting language(Apache2module)libphp7.2-embed-HTML-embedded scripting language(EmbeddedSAPI library)php7.2-bcmath-BcmathmoduleforPHP
php7.2-bz2-bzip2moduleforPHP
php7.2-cgi-server-side,HTML-embedded scripting language(CGI binary)php7.2-cli-command-line interpreterforthe PHP scripting language
php7.2-common-documentation,examplesandcommonmoduleforPHP
php7.2-curl-CURLmoduleforPHP
php7.2-dba-DBAmoduleforPHP
php7.2-dev-FilesforPHP7.2moduledevelopment
php7.2-enchant-EnchantmoduleforPHP
php7.2-fpm-server-side,HTML-embedded scripting language(FPM-CGI binary)php7.2-gd-GDmoduleforPHP
php7.2-gmp-GMPmoduleforPHP
php7.2-imap-IMAPmoduleforPHP
php7.2-interbase-InterbasemoduleforPHP
php7.2-intl-InternationalisationmoduleforPHP
php7.2-json-JSONmoduleforPHP
php7.2-ldap-LDAPmoduleforPHP
php7.2-mbstring-MBSTRINGmoduleforPHP
php7.2-mysql-MySQLmoduleforPHP
php7.2-odbc-ODBCmoduleforPHP
php7.2-opcache-ZendOpCachemoduleforPHP
php7.2-pgsql-PostgreSQLmoduleforPHP
php7.2-phpdbg-server-side,HTML-embedded scripting language(PHPDBG binary)php7.2-pspell-pspellmoduleforPHP
php7.2-readline-readlinemoduleforPHP
php7.2-recode-recodemoduleforPHP
php7.2-snmp-SNMPmoduleforPHP
php7.2-soap-SOAPmoduleforPHP
php7.2-sqlite3-SQLite3moduleforPHP
php7.2-sybase-SybasemoduleforPHP
php7.2-tidy-tidymoduleforPHP
php7.2-xml-DOM,SimpleXML,WDDX,XML,andXSLmoduleforPHP
php7.2-xmlrpc-XMLRPC-EPImoduleforPHP
php7.2-zip-ZipmoduleforPHP
php7.2-xsl-XSLmoduleforPHP(dummy)php7.2-server-side,HTML-embedded scripting language(metapackage)php7.2-sodium-libsodiummoduleforPHP