mac安装phalcon的步骤以及遇到的问题

自从上次运行了brew upgrade之后,phalcon就一直不能使用了,不过最近一直没有写php代码,因此也没在意。今天项目要使用phalcon来写,于是又得重新安装一遍phalcon。这里记录下安装的过程,以及重新安装过程中遇到的问题。新版phalcon增加了psr依赖,因此安装过程中报了PHP Fatal error: Class 'psr\container\containerinterface' not found in Unknown on line 0错误。

正常下载并编译phalcon

git clone https://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install

安装完毕

编译结束,添加extension

cd /usr/local/etc/php/7.3/conf.d
vim ext-phalcon.ini
#-- 添加内容到里面
extension=/usr/local/Cellar/php/7.3.4/pecl/20180731/phalcon.so
#-- 内容结束
brew services restart php

然后满怀期待的打开浏览器,以为可以正常看到phpinfo信息。 结果。。。。。。 502 给我报了个502?为什么?一直不都是这么安装的吗?怎么突然就报错了?接着看看命令行下是什么结果:

php -i | grep "phalcon."

PHP Fatal error PHP Fatal error: Class 'psr\container\containerinterface' not found in Unknown on line 0

这是一个什么错误?以前没遇到过啊?赶紧去搜索下,原来是phalcon4.0,加了依赖条件,必须先安装psr扩展,才能正常安装使用。

赶紧的去将php-psr扩展安装上。

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
phpize
./configure
make
sudo make install
cd /usr/local/etc/php/7.3/conf.d
vim ext-psr.ini
#-- 添加内容到里面
extension=/usr/local/Cellar/php/7.3.4/pecl/20180731/psr.so
#-- 内容结束
brew services restart php

这一路安装顺风顺水,没遇到麻烦。安装完了,再测试看看结果: 依然报错
PHP Fatal error: Class 'psr\container\containerinterface' not found in Unknown on line 0

什么鬼情况?细思一下,可能是插件加载顺序的问题?因为psr在排序上会排在phalcon后面,因此判断可能是psr需要在phalcon前加载,因此重命名了ext-psr.ini为ext-a-psr.ini,在它的前面加了个a,让它在phalcon加载前加载。赶紧测试一下:

php -i | grep "phalcon."

success

yeah!顺利完成。phalcon终于可以正常使用了。

相关阅读