Cygwin上的Symfony2 - PHP分段错误

时间:2014-12-01 04:45:58

标签: php symfony cygwin

我很难在Cygwin上运行PHP客户端界面。我不断收到Segmentation fault错误。但是一些功能正确完成 - 我不知道它什么时候发生。

如果有人遇到此错误,请告诉我在cygwin下正确运行PHP CLI的任何线索。

提前致谢!

修改

我收到了stackdump,但我不知道它是否有任何说明:

Exception: STATUS_ACCESS_VIOLATION at eip=603B7AC6
eax=0000000A ebx=FFE42FFF ecx=002853E0 edx=FFE43000 esi=00000000 edi=FFE43000
ebp=002853E2 esp=00285240 program=C:\cygwin\bin\php.exe, pid 10056, thread main
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame     Function  Args
002853E2  603B7AC6 (022A018F, 02D40284, 0348030B, 0374034D)
00040002  00F30055 (00340000, 01E00000, 020C0000, 00360000)

此外我试图限制在php.ini

pcre.recursion_limit=1000    
  • 没效果。

每次使用客户端界面时都会崩溃。如果我通过Apache2运行它没有问题。

如何有效地调试它?

修改

我用php-cgi运行它,在那里我收到带有错误描述的html输出:

ContextErrorException: Warning: Invalid argument supplied for foreach() in ...

有了这些信息,我猜输入参数存在问题。如果我从控制台运行没有参数的脚本,我就不会收到segmentation fault

这是Symfony框架,这些脚本在Windows上以及在控制台上的ubuntu上运行。所以我想:   - PHP设置有问题   - Cygwin上的控制台有问题

任何想法我怎样才能更多地调试它?

1 个答案:

答案 0 :(得分:3)

经过长时间无用的研究后,我最终从Cygwin中删除了php5和php,并在那里映射了独立的PHP for Windows。

对于遇到此问题的任何人:

  1. 卸载所有“PHP”扩展程序for cygwin
  2. 运行cygwin
  3. rm -f /usr/bin/php.exe
  4. rm -rf /usr/share/php
  5. 下载并安装全新的PHP for Windows
  6. ln -s /cygdrive/c/your/path/to/php/php.exe /usr/bin/php.exe
  7. 所以我不知道为什么会出现这个问题,但是用于Windows安装的新的本机php有帮助。