Ответ 1
У меня возникла проблема с таймаутом, но не с исключениями. Я работаю над сайтом Zend Framework. Следуя отладчику глубоко в кишки, я отследил проблему до использования iconv_strlen. Он не вызывает какую-либо странную строку, это простая функция, используемая для проверки имени хоста.
Чтобы проверить проблему, я попробовал простой значок iconv_strlen ( "test", "UTF-8" ); Это вызывает появление ошибки - бесконечный вращающийся загрузчик в браузере, но сообщение об ошибке отсутствует, а script выходит за пределы максимального времени выполнения. Похоже, что в этой версии PHP это нечеткое число.
Мой коллега нашел эту статью, которая могла бы решить эту проблему. Я на машине Mac OS X обновлен до последнего Snow Leopard, который составляет 10.6. Кажется, что это известная ошибка, и есть обходной путь, если вы создаете свой собственный php или используете встроенную версию Apple или используете порты.
- Ошибка # 49267 Связывание с ошибкой для iconv: "Undefined символы: _libiconv"
- PHP 5.3.0 на Mac OS 10.6 (Snow Leopard) - Fabien Potencier; 05 ноября 2009 г.
Короче говоря, вы можете вникать в перекомпиляцию своего собственного php с вышеупомянутым патчем, но этот вид побеждает точку MAMP в первую очередь.
Самое быстрое решение просто либо никогда не использует iconv_strlen() (или любую из функций iconv_) - и это не вариант, если вы используете Zend Framework, или еще раз верните MAMP для использования php 5.2.
До тех пор, пока MAMP не начнет включать исходные файлы php и не предоставит метод, позволяющий легко перекомпилировать php в комплекте со всеми необходимыми библиотеками, это обязательно останется ограничением пакета. MAMP отлично работает, пока вы не дойдете до точки, где вам нужно перекомпилировать php. Когда это происходит, гораздо проще просто использовать порты.