我正在尝试在OSX上安装Phalcon Dev Tools。我安装了Phalcon并且工作正常。
我已按照此处的说明操作:http://docs.phalconphp.com/en/latest/reference/mactools.html
当我在终端中运行命令phalcon
时,我得到以下输出:
Phalcon Developer Tools Installer
Make sure phalcon.sh is in the same dir as phalcon.php and that you are running this with sudo or as root.
Installing Devtools...
Working dir is: /Users/me/phalcon-tools
Done. Devtools installed!
现在我该如何使用devtools?当我输入phalcon commands
时输出与上面完全相同,并继续告诉我它已安装。
我在这里错过了什么吗?
我在phalcon.sh
脚本中注意到,最后它有:
if check_install; then
php "$PTOOLSPATH/phalcon.php" $*
fi
因此,如果check_install通过,请运行phalcon.php
。我试图手动运行这个脚本,终端没有任何反应。
$PTOOLSPATH
已定义。我使用echo $PTOOLSPATH
确认了这一点。
我的/usr/bin/env php
是正确的,并指向MAMP的PHP。我现在使用MAMP安装了Phalcon。我的PHP是正确的:
which php
/Applications/MAMP/bin/php/php5.5.23/bin/php
检查phalcon.php
脚本,并使用xdebug,我发现问题就在这里:
if (!extension_loaded('phalcon')) {
throw new Exception(
sprintf(
"Phalcon extension isn't installed, follow these instructions to install it: %s",
Script::DOC_INSTALL_URL
)
);
}
因此未加载Phalcon扩展。不知道为什么它不在终端中打印异常的输出。但是,PHP的错误日志显示:
[21-May-2015 22:37:48 Europe/Berlin] PHP Fatal error: Class 'Phalcon\Script' not found in /Users/me/phalcon-tools/phalcon.php on line 41
现在我很难过。
修改
正在运行php -m
向我显示未安装Phalcon。这很奇怪,因为我在我的网络应用程序中使用Phalcon,它工作正常。如您所见,我已在php.ini
中加载了扩展程序。
我正在使用的PHP版本是:
PHP 5.5.23 (cli) (built: Apr 9 2015 19:29:27)
如您所见,Phalcon位于正确的目录中:
ls /Applications/MAMP/bin/php/php5.5.23/lib/php/extensions/no-debug-non-zts-20121212
apcu.so
imagick.so
phalcon.so
...
正如您从phpinfo()
所见,它已安装......
以下命令也会给出不同的结果:
将Phalcon显示为已安装:
echo "<?php phpinfo(); ?>" | php > phpinfo.txt && cat phpinfo.txt | grep phalcon
显示尚未安装Phalcon:
php -m
有什么想法吗?
答案 0 :(得分:0)
我和你有同样的问题。只要我将这两行添加到〜/ .bash_profile文件中,我就解决了它。
export PATH=$PATH:/Users/scott/phalcon-tools
export PTOOLSPATH=/Users/scott/phalcon-tools
首先,我只将第一行添加到.bash_profile中,我也收到了相同的信息。
答案 1 :(得分:0)
可能在命令行ini文件中没有安装phalcon,因此它会抛出错误。
只需在终端输入此命令即可。
php --ini
然后检查输出有趣的行是
Loaded Configuration File: /etc/php5/cli/php.ini
现在尝试检查
phalcon.so
也会加载到那里。
对于web和cli,提供了不同的phalcon.so文件,因此我们需要包含&#34; phalcon.so &#34;在两个文件中。
所以 phalcon.so 包含在你的网站php.ini中,所以它在那里运行顺畅而不是我猜的命令行。