В настоящее время я собираюсь установить PHP для среды разработки на базе Apache / Windows, но, похоже, я собираюсь упасть на первое препятствие: выбор правильного пакета для установки.
PHP доступен не менее чем из четырех вариантов :
В чем разница между этими версиями в практическом смысле?
Если это не было достаточно сложно, версия 5.3 PHP доступна только в VC9 (с 5.2 поставляется с пакетами VC6). И все же, согласно сайту PHP, вы не должны использовать VC9 с Apache … Итак, почему Apache получает более старую версию?
Это все очень запутанно, и я хотел бы, чтобы какая-то помощь поняла выбор.
После многих исследований мне удалось найти собственные ответы на этот вопрос.
В самой базовой форме ответ: какая версия PHP, которую вы должны установить, – это то, что вы используете на веб-сервере.
Вот более подробное объяснение терминов, используемых при выборе версии PHP на основе того, что я узнал:
Во-первых, разные версии Apache для Windows скомпилированы с разными компиляторами. Например, версии на Apache.org предназначены для компиляции с использованием Microsoft Visual C ++ 6 , также известного как VC6 . Этот компилятор очень популярен, но и очень старый. (Он восходит к 1998 году).
Существуют разные версии Apache для разных компиляторов. Например, версии, доступные для загрузки с ApacheLounge.com , предназначены для компиляции с использованием популярного и более недавнего компилятора Microsoft Visual C ++ 9 с 2008 года. Также известен как VC9 .
(Примечание. Эти два компилятора являются двумя наиболее популярными опциями. Поэтому, хотя возможно иметь скомпилированную версию Apache VC7, VC8 и т. Д., Маловероятно, что вы столкнетесь с ними.)
Использование этого более позднего компилятора (VC9) важно, потому что последние версии PHP распространяются только в форме VC9 (хотя старые версии все еще доступны для VC6).
Кроме того, согласно ApacheLounge, существует множество улучшений при использовании версии Apache, скомпилированной с VC9, «в таких областях, как Performance, MemoryManagement и Stability».
Если этого было недостаточно, разработчики PHP сделали следующее заявление на своем сайте:
Пользователи Windows: учтите, что мы больше не предоставляем сборки, созданные с помощью Visual Studio C ++ 6 (VC6). Невозможно поддерживать высококачественную и безопасную сборку PHP для Windows с использованием этого неподдерживаемого компилятора.
Мы рекомендуем сборки VC9 Apache, как это предусмотрено ApacheLounge .
Все пользователи PHP должны заметить, что серия PHP 5.2 больше не поддерживается. Всех пользователей настоятельно рекомендуется обновить до PHP 5.3.6.
В целом, это чрезвычайно веский аргумент в пользу использования версий Apache и PHP VC9, если вы спросите меня.
Поэтому, если вы используете версию Apache с официального сайта Apache , она будет скомпилирована с VC6, и поэтому вы должны использовать более старую версию PHP для этого компилятора. Если вы используете версию Apache, скомпилированную с VC9, например, доступную на ApacheLounge.com , вы можете использовать последнюю версию PHP (для VC9).
Для меня, запуская локальную среду разработки, было бы желательно иметь последнюю версию PHP, поэтому требуется версия Apache VC9, поэтому я могу использовать версию PHP VC9.
Еще раз это сводится к вашему веб-серверу. По умолчанию Apache устанавливается на Windows как модуль , но его можно изменить для работы в качестве FastCGI . Между ними существует много различий, но по существу FastCGI является более современным, быстрым, более надежным и ресурсоемким. Для кого-то, использующего локальную среду разработки, FastCGI может быть излишним, но, видимо, многие хостинговые компании работают по FastCGI по причинам, о которых я говорил, поэтому есть хорошие аргументы для этого в среде разработки.
Если вы используете Apache (или IIS) в качестве FastCGI (или CGI), то вам нужна версия Non Thread Safe для PHP. Если вы используете Apache по умолчанию (как модуль), вам понадобится более традиционная версия Thread Safe .
Обратите внимание: все это относится только к пользователям Windows.
Я не буду беспокоиться о FastCGI (если кто-то не убедит меня иначе), поэтому для меня я хочу версию VC9 Thread Safe для PHP .
Вот и все.
Дальнейшее чтение:
Лично я использую виртуализированный сервер LAMP. Каждый хостинг, который я использую, зависит от некоторых особенностей Linux, и между WAMP и LAMP существует слишком много различий. Затем я просто использую сервер LAMP по умолчанию для этой версии Linux.
Моя фактическая настройка прямо сейчас – с VMWare (Fusion on Mac, Player в Windows). У меня есть 3 виртуальных машины – один для PHP5.3 с Ubuntu 10.04 LTS, а другой для PHP 5.1 на Ubuntu 8.04 LTS. (Один из хостов, которые я использую, находится на RedHat, который в настоящее время поддерживает только PHP 5.1). У меня есть третья виртуальная машина для RubyOnRails dev.
Другими словами, я стараюсь, чтобы моя среда разработки была как можно ближе к моей производственной среде. Так что выясните, какая версия Apache и PHP находится на вашем хосте, и используйте ее в качестве руководства.