关于php:Phalcon devtools无法正常工作

Phalcon devtools not working

我正在尝试在OSX上安装Phalcon开发工具。我已经安装了Phalcon,并且工作正常。

我已经按照此处的说明进行操作:http://docs.phalconphp.com/en/latest/reference/mactools.html

在终端中运行命令phalcon时,得到以下输出:

1
2
3
4
5
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脚本中注意到,最后它具有:

1
2
3
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是正确的:

1
2
which php
/Applications/MAMP/bin/php/php5.5.23/bin/php

检查phalcon.php脚本,并使用xdebug,我发现问题出在这里:

1
2
3
4
5
6
7
8
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的错误日志显示:

1
[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。这很奇怪,因为我在Web应用程序中使用了Phalcon,而且效果很好。如您所见,我已将该扩展加载到php.ini中。

enter

1
PHP 5.5.23 (cli) (built: Apr  9 2015 19:29:27)

如您所见,Phalcon在正确的目录中:

1
2
3
4
5
ls /Applications/MAMP/bin/php/php5.5.23/lib/php/extensions/no-debug-non-zts-20121212
apcu.so
imagick.so
phalcon.so
...

正如您在phpinfo()中所看到的,它已经安装好了...

enter

1
echo"<?php phpinfo(); ?>" | php > phpinfo.txt && cat phpinfo.txt | grep phalcon

显示未安装Phalcon:

1
php -m

有什么想法吗?


尝试了很多之后,我发现参考文献中显示的代码是错误的:

1
2
ln -s ~/phalcon-tools/phalcon.sh ~/phalcon-tools/phalcon
chmod +x ~/phalcon-tools/phalcon

正确的方法可以在github repo中找到:

1
2
ln -s ~/phalcon-devtools/phalcon.php /usr/bin/phalcon
chmod ugo+x /usr/bin/phalcon

基本上,链接不应该是脚本,而应该是php文件。解决此问题后,我可以正确运行开发工具。


可能是在命令行ini文件中未安装phalcon,所以抛出了错误。

只需在终端中键入此命令。

1
php --ini

然后检查输出,有趣的行是

1
Loaded Configuration File:         /etc/php5/cli/php.ini

现在尝试检查

1
phalcon.so

是否已加载到那里。

对于web和cli,提供了不同的phalcon.so文件,因此我们需要在两个文件中都包含" phalcon.so "。

所以phalcon.so包含在您的网络php.ini中,因此它运行得很流畅,我猜它不是命令行。


我和你有同样的问题。只要我将这两行添加到我的?/ .bash_profile文件中,我就解决了它。

1
2
export PATH=$PATH:/Users/scott/phalcon-tools
export PTOOLSPATH=/Users/scott/phalcon-tools

起初,我仅将第一行添加到.bash_profile中,因此我得到了与您相同的信息。