Как стать автором
Обновить

Zend Server CE и почему это не вариант

Вероятно многим php веб-разработчикам известна ситуация, когда на локале висит несколько веб-серверов с разными версиями php и apache. Ведь удобно иногда переключить версию php когда это необходимо с 5.2 до 5.4. Но иногда просто хочется порядка на родной машине, поэтому решил я как-то обновить ранее вручную установленные несколько сборок apache+php и имеющие огромный беспорядок. Если вы супер-профессионал, то не стоит дальше читать пост, это скорей для новичков, как сэкономить время…

Вот и я решил обновиться, почистить мусор и начать так сказать с нового листа. Скачал Zend Server CE, наивно полагая что это будет отличный вариант для разработки к тому же еще и на ZF. Ранее он был бесплатно доступен на сайте zend.com. Сейчас правда Zend разделили их варианты серверов на 4 типа:
  • 1. Free Edition
  • 2. Small Business Edition
  • 3. Professional Edition
  • 4. Enterprise Edition
Но не суть. Установил я это чудо. Вся установка сводится к указанию пути приложения.
Zend ставит веб-панель для управления сервером, что кажется очень удобным, опять же для начинающих, для специалистов все-таки привычнее лазить «вручную» в файлах настроек.
После установки почти ничего не пришлось настраивать, сервер что называется под ключ, но как всем кажется должно быть большое и жирное НО.
Сам занимаюсь разработкой сайтов на никому не известной самописной cms. Поэтому первое, и наверное решающее, с чем я столкнулся — это проблема работы с htacccess. Сразу залез в настройки апача, чтобы установить необходимые директивы для директории сайта:
AllowOverride All

htaccess заработал, но с одним нюансом.
При попытке изменить директивы php из htaccess сервер выдавал 500ю ошибку. Долго гуглив я не мог понять в чем же тут проблема. Поискав решение в интернете, таки наткнулся на суть сей проблемы.
Дело в том, что стандартный пакет установки Zend Server не предоставляет выбора при установке и ставит php как cgi-модуль. Для обычной разработки конечно различия небольшие, есть еще плюсы. К примеру, можно перегрузить php без перезагрузить php одной кнопкой — удобно, ну и конечно же это скорость работы.
Но есть один существенный недостаток. Дело в том, что когда php установлен как cgi модуль php.ini читается каждый раз при загрузке любой страницы, и для каждой страницы запускается отдельное cgi приложение, а переменные php_value менять при этом нельзя. Конечно слова «нельзя» у разработчиков не бывает, на самом деле можно изменить директивы php.ini, из htaccess, но это уже другая история.
cgi-модуль также не позволяет работать с авторизацией и заголовками.
В общем огорчившись так сказать результатом, скачал по старинке новую версию php, установил её как модуль Apache.

Вывод:

Не поддавайтесь на готовые решения типо «под ключ» для серверов таких как Zend Server CE, я уже молчу про сборки типа denver, xamp или еще какой-нить ужас, используйте старый способ «ручками».
Напиши в комментах, какую сборку использует Ты, или если не используешь.
Спасибо за внимание, надеюсь эта статья будет кому-нибудь полезна.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.