Intereting Posts
Как устранить / получить ответ об ошибке при запуске недопустимых заданий BigQuery? Javascript + PHP-шифрование с помощью pidCrypt Радиальные градиенты с непрозрачностью в PHP Защита доступа к веб-API Удалите весь текст, который находится под "(" и ")" В PHP, когда я использую fwrite, я не получаю правильный набор символов При использовании уникальной буквенно-цифровой строки для короткого URL-адреса лучше ли хранить созданную строку в базе данных или кодировать / декодировать «на лету»? Doctrine 2 LifecycleCallbacks с абстрактным базовым классом не называются Импорт данных из TXT-файла в MySQL проверить файл xml на xsd, используя php Вход PHP: форматирование текста? Несколько функций AJAX на одной странице функций Публикация на страницу Facebook из приложения Facebook без входа в facebook Как вставить данные с IGNORE, если одна переменная всегда различна? Определите PHP-функцию в XSL и вызовите ее. Возможное? Как?

Каковы технические отличия между безопасными и безопасными потоковыми пакетами для Windows XP?

В настоящее время я собираюсь установить PHP для среды разработки на базе Apache / Windows, но, похоже, я собираюсь упасть на первое препятствие: выбор правильного пакета для установки.

PHP доступен не менее чем из четырех вариантов :

  • VC9 x86 Non Thread Safe
  • VC9 x86 Thread Safe
  • VC6 x86 Non Thread Safe
  • VC6 x86 Thread Safe

В чем разница между этими версиями в практическом смысле?

Если это не было достаточно сложно, версия 5.3 PHP доступна только в VC9 (с 5.2 поставляется с пакетами VC6). И все же, согласно сайту PHP, вы не должны использовать VC9 с Apache … Итак, почему Apache получает более старую версию?

Это все очень запутанно, и я хотел бы, чтобы какая-то помощь поняла выбор.

После многих исследований мне удалось найти собственные ответы на этот вопрос.

В самой базовой форме ответ: какая версия PHP, которую вы должны установить, – это то, что вы используете на веб-сервере.

Вот более подробное объяснение терминов, используемых при выборе версии PHP на основе того, что я узнал:


VC6 vs VC9

Во-первых, разные версии 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.

Thread Safe vs Non Thread Safe

Еще раз это сводится к вашему веб-серверу. По умолчанию Apache устанавливается на Windows как модуль , но его можно изменить для работы в качестве FastCGI . Между ними существует много различий, но по существу FastCGI является более современным, быстрым, более надежным и ресурсоемким. Для кого-то, использующего локальную среду разработки, FastCGI может быть излишним, но, видимо, многие хостинговые компании работают по FastCGI по причинам, о которых я говорил, поэтому есть хорошие аргументы для этого в среде разработки.

Если вы используете Apache (или IIS) в качестве FastCGI (или CGI), то вам нужна версия Non Thread Safe для PHP. Если вы используете Apache по умолчанию (как модуль), вам понадобится более традиционная версия Thread Safe .

Обратите внимание: все это относится только к пользователям Windows.


Я не буду беспокоиться о FastCGI (если кто-то не убедит меня иначе), поэтому для меня я хочу версию VC9 Thread Safe для PHP .

Вот и все.

Дальнейшее чтение:

  • Официальное заявление относительно PHP и VC6
  • Разница между безопасными потоками PHP и небезопасными двоичными файлами
  • FastCGI в Википедии
  • FastCGI для IIS
  • Visual C ++ в Википедии
  • Скомпилируйте свой собственный PHP (объяснение VC6 / VC9)

Лично я использую виртуализированный сервер 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 находится на вашем хосте, и используйте ее в качестве руководства.