42

Как установить Apache с поддержкой PHP и MySQL-сервер в Windows без использования каких-либо готовых пакетов, таких как WAMPServer или XAMPP?

2 ответа2

59

апаш

Во-первых, я рекомендую вам прочитать « Замечания по платформам» Apache для Windows - в нем объясняются некоторые специфичные для Windows функции, такие как запуск в качестве службы, которой у вас нет в других ОС, и которую вы, вероятно, никогда ранее не использовали.

Как упомянуто в этих примечаниях к конкретной платформе, Apache не предоставляет двоичные файлы для Windows, однако они имеют ссылки на несколько сторонних сайтов, которые предоставляют двоичные файлы, например Apache Lounge.

С этого веб-сайта мы можем загрузить 32-битную версию (win32) или 64-битную (Win64) - если ваша ОС 64-битная, вы всегда должны пытаться установить 64-битные версии программного обеспечения, но учтите, что вы Вам также потребуется использовать 64-битные модули, то есть, если у вас есть только 32-битный модуль, скачайте 32-битный Apache.

Вот версия, которую я использовал при написании этого: Apache 2.4.10 Win64 - это была последняя версия, когда этот ответ последний раз обновлялся (посмотрите на дату редактирования внизу поста).

После загрузки просто распакуйте папку Apache24 в корень жесткого диска, чтобы у вас был путь, например, C:\Apache24\bin .

Откройте окно командной строки (Windows+R и введите cmd затем нажмите Enter), измените каталог на C:\Apache24\bin и запустите httpd.exe , обычно он не должен печатать никаких ошибок.

Если вы получаете сообщение об ошибке, в котором говорится, что MSVCR110.dll отсутствует в вашей системе, вам нужно установить распространяемый пакет Visual C++ для Visual Studio 2012 - как всегда, при появлении запроса выберите соответствующую битовую версию: vcredist_x86.exe для 32 -Битные системы и vcredist_x64.exe для 64- битных .

Если вы получаете сообщение о том, что он не может привязаться к порту 80, проверьте, использует ли этот порт другое приложение - также известно, что Skype по умолчанию использует порты 80 и 443; Снимите флажок "Использовать порты 80 и 443 в качестве альтернативы для входящих подключений" в расширенных настройках подключения, перезапустите Skype, чтобы применить изменения, и тогда вы сможете запустить Apache без проблем.

Предупреждение типа « Could not reliably determine the server's fully qualified domain name можно пока игнорировать.

Брандмауэр Windows может попросить вас разрешить Apache взаимодействовать в определенных сетях, я рекомендую вам использовать настройки по умолчанию: разрешить его в домашней и рабочей сетях, но не в публичных / ненадежных сетях.

Затем откройте браузер и перейдите по http://localhost , если вы видите страницу, говорящую, что It works ! тогда это означает, что ваша установка Apache работает.

Теперь вы можете остановить запущенный Apache, нажав Ctrl+C в командной строке.

Если вы получили предупреждение о невозможности определить полное доменное имя системы, исправьте его, отредактировав C:\Apache24\conf\httpd.conf и изменив переменную ServerName (она должна быть уже в комментарии, просто раскомментируйте ее) и поменяй)

ServerName <yourhostname>

Замените <yourhostname> либо именем хоста системы, либо localhost .

Наконец, если вы хотите запускать сервер автоматически при запуске системы (даже если никто не входит в систему), вам нужно будет запустить его как службу - в новой командной строке с повышенными правами (с правами администратора) введите:

httpd.exe -k install

Вот и все, теперь у вас есть новая служба в Службах (Windows+R, затем введите «services.msc», затем нажмите Enter) с именем «Apache2.4», которой вы можете управлять, как и любой другой службой Windows.

Ограничение доступа Apache только к localhost - необязательно

Если вы настраиваете это для целей разработки, вы хотите убедиться, что никто, кроме вас, не сможет получить к нему доступ, ваш брандмауэр уже должен позаботиться об этом, но давайте добавим к нему еще один уровень безопасности, сказав Apache принимать запросы от локальных только машина.

Откройте файл конфигурации Apache C:\Apache24\conf\httpd.conf , найдите блок каталогов по умолчанию <Directory "c:/Apache24/htdocs"> .

В конце, если это, должна быть строка Require all granted , это означает, что любой может получить доступ к этому серверу. Давайте сделаем тот Require local который разрешает доступ только с локальной машины.

Кроме того, вы можете указать Apache связываться только с интерфейсом обратной связи. Таким образом, даже если ваш брандмауэр и директивы управления доступом, упомянутые выше, не будут работать, сервер все равно не будет открыт для всего Интернета.

Для этого найдите директиву Listen (по умолчанию она установлена на 80) и измените ее следующим образом:

Listen 127.0.0.1:80
Listen [::1]:80

Первая строка не требует пояснений, вторая - эквивалент первого IPv6, скобки используются в нотации IPv6 для разделения адреса и порта.

Сохраните файл, если вы уже запускаете сервер, затем перезапустите его, чтобы учесть наши изменения, и теперь только localhost имеет доступ, все остальные получат 403 Forbidden .

PHP

Я предлагаю вам прочитать официальную документацию по PHP об установке его в системах Windows.

Загрузите последние двоичные файлы PHP с официальной страницы загрузки PHP для Windows, выберите поточно-ориентированную версию, соответствующую битовой версии вашей установки Apache (x86 для 32-битной, x64 для 64-битной).

Не поточнобезопасная версия предназначена только для двоичного кода CGI - более подробная информация здесь.

Я использовал следующую версию: PHP 5.6.2 VC11 x64 Thread Safe - это была последняя версия, когда этот ответ последний раз обновлялся (посмотрите на дату редактирования внизу поста).

Создайте пустую папку PHP в корне вашего жесткого диска и извлеките туда ранее загруженный архив, у вас должен быть путь вроде C:\PHP\ext , в противном случае вы сделали что-то не так.

В C:\PHP переименуйте php.ini-production или php.ini-development (в зависимости от того, что вы хотите) в php.ini .

Откройте этот файл php.ini , найдите extension_dir = "ext" и раскомментируйте эту строку (удалите первую ;). Это устанавливает расширение dir по умолчанию на ext (которое разрешается в C:\PHP\ext и избегает необходимости добавлять ext/ ко всем путям расширения вручную, как в предыдущих версиях этого поста.

Теперь настройте Apache для использования этого PHP, отредактировав C:\Apache24\conf\httpd.conf - после всех строк LoadModule добавьте следующее:

(Последующее это только PHP 7)

LoadModule php7_module "c:\php\php7apache2_4.dll"

<IfModule php7_module>

    AddHandler application/x-httpd-php .php
    AddType application/x-httpd-php .php .html
    PHPIniDir "c:\php"
</IfModule>

(Ниже приводится только для PHP 5)

LoadModule php5_module C:/PHP/php5apache2_4.dll

<IfModule php5_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Теперь попробуйте запустить Apache вручную, открыв командную строку в C:\Apache24\bin и запустив httpd.exe - если вы не видите ошибок, это значит, что ваш файл конфигурации действителен и PHP, скорее всего, работает.

Вы можете проверить свою установку PHP, создав файл типа info.php с помощью <?php phpinfo(); внутри и перейдя по http://localhost/info.php - вы должны увидеть довольно много информации о вашей системе и вашей установке PHP и всех ее модулях. Если вы получаете что-то еще, например, "Внутренняя ошибка сервера", это означает, что что-то не так.

Теперь вы можете убить текущий процесс Apache (Ctrl+C в консоли) и запустить службу - следующая часть не взаимодействует с Apache и может быть выполнена с уже запущенным сервером.

Композитор - необязательно

Composer - это инструмент для управления зависимостями в PHP, такой как менеджер пакетов. Это позволяет легко устанавливать пакеты PHP и даже целые фреймворки.

Composer требует включения расширения PHP OpenSSL, поэтому давайте включим его в C:\PHP\php.ini .

Используйте функцию поиска вашего текстового редактора для поиска php_openssl.dll , там уже должна быть строка комментария, просто раскомментируйте эту строку.

Теперь загрузите установщик Windows Composer со страницы загрузки или просто воспользуйтесь этой прямой ссылкой.

Следуйте инструкциям, когда будет предложено указать путь к PHP, перейдите к C:\PHP и выберите php.exe .

Вот и все, Composer теперь установлен в масштабе всей системы и может использоваться из любого места - вы можете попробовать его, просто откройте новую командную строку (вы не можете использовать уже открытую, так как она должна прочитать новую PATH установленную с помощью Установщик Composer) и введите composer .

Вы должны получить красивый логотип ASCII-art и что-то вроде этого:

Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28

Расширения PHP MySQL - необязательно

Если вы хотите получить доступ к своей базе данных MySQL из PHP, вам необходимо включить расширения, которые позволяют вам это делать, например php_mysqli или php_pdo_mysql - я рекомендую включить их оба.

Откройте файл конфигурации PHP C:\PHP\php.ini в текстовом редакторе и найдите php_mysqli или php_pdo_mysql - они уже должны быть там, раскомментируйте их.

Готово, теперь вы можете получить доступ к любой базе данных MySQL, используя mysqli или PDO.

MySQL

На странице загрузки установщика MySQL загрузите веб-установщик mysql-installer-web-community-xxxxx.msi .

Я использовал mysql-installer-web-community-5.6.21.1.msi - это была последняя версия, когда этот ответ последний раз обновлялся (посмотрите на дату редактирования внизу поста).

Установщик автоматически установит соответствующую версию (32-битную или 64-битную) в зависимости от вашей системы, даже несмотря на то, что битовая версия MySQL не должна совпадать с Apache и PHP, но все равно выгодно использовать 64-битную версию вашей. система поддерживает его, чтобы использовать более 3 ГБ оперативной памяти, что очень важно, поскольку серверы баз данных, как правило, используют много оперативной памяти.

Следуйте инструкциям установщика, если вы устанавливаете его для разработки, то лучшим вариантом будет по Developer default для разработчика, он также установит MySQL Workbench, который является собственным клиентом с графическим интерфейсом, поэтому вам не нужно устанавливать медленные веб-инструменты. например, PHPMyAdmin, если вам неудобно использовать клиент командной строки.

После того, как все будет установлено, установщик запросит у вас некоторые основные значения конфигурации, я рекомендую отключить "Открыть порт брандмауэра для доступа к сети", если вы не хотите получать доступ к базе данных с другого компьютера в сети.

Установите пароль root - если это только для целей разработки и ваш брандмауэр блокирует входящие соединения из сети, то надежный пароль не требуется.

Наконец, вы можете отключить бесполезный MySQL Notifier, щелкнув правой кнопкой мыши значок в трее, перейдя в Действия -> Параметры, затем снимите флажок Run at Windows Startup и примените. Это сэкономит вам несколько МБ ОЗУ и позволит избежать замедления работы компьютера при загрузке.

И все, теперь у вас есть полнофункциональный сервер WAMP, который работает как сервис и не зависит от какого-либо пользователя (доступен, даже если никто не вошел в систему).

Обратите внимание, что я понятия не имею о безопасности этого, для целей разработки я бы сказал, что это довольно безопасно, так как ваш брандмауэр должен блокировать входящие соединения для Apache (порт 80 и или 443) и MySQL (порт 3306).

Это было проверено на установке Windows 7, оно также должно отлично работать на Vista, Windows 8 и, возможно, Windows Server 2008/2012 - не стесняйтесь комментировать и / или понижать голос, если это не так.

5

PHP 7

Инструкции, приведенные в ответе выше, отлично работают с июля 2017 года, однако, если вы хотите использовать PHP 7, вы должны добавить следующие строки в C:\Apache24\conf\httpd.conf вместо тех, которые в этом ответе (которые работает только для PHP 5) [Добавьте следующее после всех строк LoadModule ]:

LoadModule php7_module C:/PHP/php7apache2_4.dll

<IfModule php7_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Убедитесь, что все пути правильные. Если в вашем каталоге PHP нет php7apache2_4.dll , вы, вероятно, скачали не тот пакет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .