php7.0 性能,PHP 7.0 安装使用与性能监测!

Ubuntu 12.04 LTS,在网上已经找到 7.0 正式版的 ppa,所以不需要编译,使用如下命令可直接安装。

安装 PHP7.0与扩展

sudo add-apt-repository ppa:ondrej/php-7.0 sudo apt-get update

sudo apt-get install php7.0-fpm php7.0-cli php7.0-common php7.0-json php7.0-mysql php7.0-opcache php7.0-curl

由于 Memcached、Redis 扩展并没有在 pecl 发布支持 PHP7 的最新版本,所以需要到 Github 找到 PHP7 的分支进行手动编译安装。

redis、memcached的github地址如下

https://github.com/phpredis/phpredis/

https://github.com/rlerdorf/php-memcached

Redis 安装方法

git clone https://github.com/phpredis/phpredis/ cd phpredis

git checkout php7

phpize

./configure make

ssudo make install

Memcached 安装方法

Memcached 需要先下载 libmemecached 库才能正常编译。

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar -zxvf libmemcached-1.0.18.tar.gz

cd libmemcached-1.0.18

./configure make

sudo make install

sudo apt-get install pkg-config

git clone https://github.com/rlerdorf/php-memcached.git

cd php-memcached

git checkout php7

phpize

./configure make

sudo make install

自己编译的这2个扩展需要手动在配置文件里加载

sudo touch /etc/php/mods-available/redis.ini sudo touch /etc/php/mods-available/memcached.ini

并将两个文件内容写上

extension=redis.so extension=memcached.so

cd /etc/php/7.0/fpm/conf.d sudo ln -http://www.sm136.com /etc/php/mods-available/redis.ini ./

sudo ln -s /etc/php/mods-available/memcached.ini ./

如果命令行下需要启用扩展,同样需要在 cli/conf.d 目录下将其链接过去。 最后重启服务器

sudo service php7.0-fpm restart

配置文件的调整 由于 PHP7.0 最大的改进是性能,所以务必要启用 opcache 保证其能发挥最大作用。 将 php.ini 的如下配置启用。

opcache.enable=1 opcache.enable_cli=1

opcache.file_cache=/tmp

opcache.error_log=/var/log/opcache_errors.log

ppa 安装的包默认 errordisplay 是 off 的。 而且 errorlog 是注释的,意味着出现问题时查看不到任何信息。

因此请写入如下配置

error_log=/var/log/php_errors.log sudo chown www-data.www-data /var/log/php_errors.log

本人安装的是 Nginx 服务器,请确保用户数组更改为与自己 webserver 一样的,否则还是不会出现任何提示。 opcache_errors.log 文件同样如此。

关于 opcache 的更多内容可以访问这里查看http://www.laruence.com/2015/12/04/3086.html

异常处理与解决

在配置完成后,就需要实际的将程序跑一下了。目前将老系统转移到 EN PHP7.0 后,第一个错误就是

09-Dec-2015 12:27:48 Asia/Chongqing] PHP Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime() in /init.php:46

已经不再存在setmagicquotes_runtime 这个函数了。如果要兼容的话需要加上判断

if(PHP_VERSION_ID < 70000){ set_magic_quotes_runtime(); }

监控与调优

我在系统里安装了 OneAPM 提供的 Agent。这样可以实时监测到整个系统的运行情况。其他版本的 Agent 官方网站已经提供了下载。截止本文落笔,PHP 7.0版本官方提供了一个下载地址是:https://oneapm.kf5.com/attachments/download/366552/0015667f0036f47c827fcb8fcbfbc79/

在这之前更多人会使用 xhprof 来检测和优化系统,但是 xhprof 对整体的程序性能采集样本无法很好的归纳,也没有很好的可视化曲线图和 Web 事务跟踪,导致在短时间内很难对系统瓶颈进行评估。

所以我使用 OneAPM 的 PHP Agent 来完成这些工作,OneAPM 同样使用定时采样定时汇报的方式来收集性能信息,并且官方宣称耗费资源小于5%。不过对于使用性能提升数倍的 PHP7.0 来部署的话这些损耗可以忽略不计,而且本人只在集群若干机器内部署了一台。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值