如何在AWS Cloud9中通过PHPBrew切换PHP 5.6/7.2版本
在AWS Cloud9中通过PHPBrew切换Apache使用的PHP版本(5.6与7.x)及解决Apache崩溃问题
我正在使用AWS Cloud9 IDE,希望通过PHPBrew来切换Apache(非CLI场景)使用的PHP版本,主要在5.6和7.x之间灵活切换,但遇到了几个棘手的问题,想请大家帮忙解决:
当前背景与初始问题
目前bash环境里的PHP版本是5.6.31,但前端phpinfo()一开始显示的是5.5.9-1ubuntu4.17,和预期不符。之前在另一个Cloud9工作区成功把PHPBrew安装的PHP设为Apache使用的系统级版本,但记不清具体操作细节了,而且不敢修改那个工作区来尝试切换到PHP7,只能在新环境重新摸索。
我已经执行的操作步骤
- 安装PHPBrew:
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew chmod +x phpbrew sudo mv phpbrew /usr/local/bin/phpbrew phpbrew -v phpbrew init echo '[[ -e /home/ubuntu/.phpbrew/bashrc ]] && source /home/ubuntu/.phpbrew/bashrc' >> ~/.bashrc - 安装编译依赖:
sudo apt-get update sudo apt-get install apache2-dev sudo apt-get install libcurl4-gnutls-dev sudo apt-get install libmcrypt-dev libreadline-dev - 安装带Apache模块支持的PHP 5.6.31:
sudo phpbrew install php-5.6.31 +default +dbs +mb +iconv +apxs2=/usr/bin/apxs2
补充配置信息
- Apache的PHP模块配置文件内容:
$ cat /etc/apache2/mods-available/php5.load LoadModule php5_module /usr/lib/apache2/modules/libphp5.6.31.so - PHPBrew已安装的版本列表:
$ phpbrew list * php-5.6.31
当前进展与新问题
我把Cloud9的运行器从PHP内置Web服务器切换为**Apache httpd(PHP、HTML)**后,phpinfo()终于显示PHPBrew安装的5.6.31版本正常了,但当我安装PHP 7.2.1之后,Apache直接崩溃,控制台报错:
/mnt/shared/bin/run-apache2: line 70: 4813 Segmentation fault apache2
我完全没有Linux使用经验,摸不清问题出在哪里,现在的核心需求是:
- 先确保PHP 5.6.31能稳定在Apache中持续工作
- 实现通过
phpbrew switch命令在5.6.31和7.x版本之间切换Apache使用的PHP版本,且不会导致Apache崩溃
内容的提问来源于stack exchange,提问作者Firsh - justifiedgrid.com
相关产品推荐
相关产品推荐

