Как установить Apache с поддержкой PHP и сервером MySQL в Windows без использования каких-либо готовых пакетов, таких как WAMPServer или XAMPP?
Как установить Apache с поддержкой PHP и сервером MySQL в Windows без использования каких-либо готовых пакетов, таких как WAMPServer или XAMPP?
Ответы:
Во-первых, я рекомендую вам прочитать специфичные для платформы замечания Apache для Windows - в нем объясняются некоторые специфичные для Windows функции, такие как запуск в качестве службы, которой у вас нет в других ОС, и которую вы, вероятно, никогда ранее не использовали.
Как упомянуто в этих примечаниях к платформе, Apache не предоставляет двоичные файлы для Windows, однако они имеют ссылки на несколько сторонних сайтов, которые предоставляют двоичные файлы, например Apache Lounge .
С этого веб-сайта мы можем загрузить 32-битную версию (win32) или 64-битную (Win64) - если ваша ОС 64-битная, вы всегда должны пытаться установить 64-битные версии программного обеспечения, но учтите, что вы Вам также понадобится использовать 64-битные модули, то есть, если у вас есть только 32-битный модуль, скачайте 32-битный Apache.
Вот версия, которую я использовал при написании этого: Apache 2.4.10 Win64 . Последняя версия, когда этот ответ последний раз обновлялся: Apache 2.4.38 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.
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 об установке его в системах Windows.
Загрузите последние версии двоичных файлов PHP с официальной страницы загрузки PHP для Windows , выберите поточно-ориентированную версию, соответствующую битовой версии вашей установки Apache (x86 для 32-битной, x64 для 64-битной).
Не поточнобезопасная версия предназначена только для двоичного кода CGI - более подробная информация здесь .
Я использовал следующую версию: PHP 5.6.2 VC11 x64 Thread Safe . Последняя версия, когда этот ответ последний раз обновлялся: PHP 7.3.3 VC15 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's). установщик) и тип composer
.
Вы должны получить красивый логотип ASCII-art и что-то вроде этого:
Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28
Если вы хотите получить доступ к своей базе данных MySQL из PHP, вам нужно включить расширения, которые позволяют вам это делать, например, php_mysqli
или php_pdo_mysql
- я рекомендую включить их оба.
Откройте файл конфигурации PHP C:\PHP\php.ini
в текстовом редакторе и найдите php_mysqli
или php_pdo_mysql
- они уже должны быть там, раскомментируйте их.
Готово, теперь вы можете получить доступ к любой базе данных MySQL , используя либо mysqli
или PDO
.
На странице загрузки установщика MySQL загрузите веб-установщик mysql-installer-web-community-xxxxx.msi
.
Я использовал mysql-installer-web-community-5.6.21.1.msi. Последняя версия, когда этот ответ последний раз обновлялся: mysql-installer-web-community-8.0.15.0.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 - не стесняйтесь комментировать и / или понижать голос, если это не так.
MSVCR110.dll
ошибка обнаружилась (в текущей версии Apache), я закончил установку Visual C ++ Redistributable 2010 SP1. После этого я получил еще одну ошибку о файле VCRUNTIME140.dll
, которая потребовала от меня установить распространяемый Visual C ++ для Visual Studio 2015.
Инструкции в ответе выше работают отлично с июля 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>
Убедитесь, что все пути правильные. Если у вас нет php7apache2_4.dll
каталога PHP, возможно, вы скачали не тот пакет.