Я изо всех сил пытаюсь запустить клиентский интерфейс PHP на Cygwin. Я получаю постоянно Segmentation fault
ошибка. Но некоторые функции выполнены правильно — я не могу сказать, когда это произойдет.
Если у кого-то возникла эта ошибка, пожалуйста, дайте мне понять, как правильно запустить PHP CLI под Cygwin.
Заранее спасибо!
РЕДАКТИРОВАТЬ
Я получаю 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
Любая идея, как я могу отладить это больше?
После долгих часов бесполезных исследований я заканчиваю удалением php5 и php из Cygwin и отображением там автономного PHP для Windows.
Для тех, кто сталкивается с этой проблемой:
rm -f /usr/bin/php.exe
rm -rf /usr/share/php
ln -s /cygdrive/c/your/path/to/php/php.exe /usr/bin/php.exe
Так что я не знаю, почему эта проблема возникла у меня, но свежий родной php для установки Windows помог.
Других решений пока нет …