Вероятно многим php веб-разработчикам известна ситуация, когда на локале висит несколько веб-серверов с разными версиями php и apache. Ведь удобно иногда переключить версию php когда это необходимо с 5.2 до 5.4. Но иногда просто хочется порядка на родной машине, поэтому решил я как-то обновить ранее вручную установленные несколько сборок apache+php и имеющие огромный беспорядок. Если вы супер-профессионал, то не стоит дальше читать пост, это скорей для новичков, как сэкономить время…
Вот и я решил обновиться, почистить мусор и начать так сказать с нового листа. Скачал Zend Server CE, наивно полагая что это будет отличный вариант для разработки к тому же еще и на ZF. Ранее он был бесплатно доступен на сайте zend.com. Сейчас правда Zend разделили их варианты серверов на 4 типа:
Zend ставит веб-панель для управления сервером, что кажется очень удобным, опять же для начинающих, для специалистов все-таки привычнее лазить «вручную» в файлах настроек.
После установки почти ничего не пришлось настраивать, сервер что называется под ключ, но как всем кажется должно быть большое и жирное НО.
Сам занимаюсь разработкой сайтов на никому не известной самописной cms. Поэтому первое, и наверное решающее, с чем я столкнулся — это проблема работы с htacccess. Сразу залез в настройки апача, чтобы установить необходимые директивы для директории сайта:
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 или еще какой-нить ужас, используйте старый способ «ручками».
Напиши в комментах, какую сборку использует Ты, или если не используешь.
Спасибо за внимание, надеюсь эта статья будет кому-нибудь полезна.
Вот и я решил обновиться, почистить мусор и начать так сказать с нового листа. Скачал 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 или еще какой-нить ужас, используйте старый способ «ручками».
Напиши в комментах, какую сборку использует Ты, или если не используешь.
Спасибо за внимание, надеюсь эта статья будет кому-нибудь полезна.