Web разработка на PHP, Apache и MySQL под Windows или как поставить WAMP

Я очень люблю Web разработку на PHP, Apache и MySQL, но не люблю Windows версии этих сервисов. Не знаю почему у меня такое отношение, но они создавались для nix систем в командной строке работать с ними – как в родной стихии. 

Именно поэтому работаю с PHP только под macOS и на эту ОС перешел уже почти 10 лет назад и обожаю ее за то, что тут с AMP можно работать как в родной стихии.

С появлением Windows Subsystem for Linux ОС Windows открыла себя для любителей Linux, потому что в этой ОС стало возможным запускать родные nix сервисы. Это круто. За счет того, что у меня есть Мак, я долго даже не пробовал WSL, но сегодня попробовал и все оказалось очень просто и очень круто. С чем я решил и поделиться с тобой – рассказать, как установить Apache 2, MySQL и PHP в Windows и использовать потом эту тройку для разработки. Процесс очень похож на Ubuntu версию Linux, такой же простой и те же команды. 

Хоть я и буду продолжать работать с PHP только на Маке, но тест показал, что под Windows это тоже вполне реально делать. 

 

Установка Apache в Windows WSL

Прежде чем устанавливать AMP (Apache, MySql и PHP) на Windows Subsystem for Linux желательно обновить пакеты:

sudo apt-get update

 

sudo apt-get install apache2

 

 

Отвечаем y и ждем, когда завершиться установка. Когда она завершиться, можно попробовать запустить сервер Apache, выполнив команду: 

 

sudo service apache2 start

 

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

Ошибка доступа к порту может выглядеть так: 

 

* Starting Apache httpd web server apache2                                                                             

(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80

(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80

no listening sockets available, shutting down

AH00015: Unable to open logs

Action 'start' failed.

The Apache error log may have more information.

 

Итак, если у вас возникла ошибка, то возможно работает IIS, всторенный в Windows сервер Web, который по умолчанию не ставится, но видимо вы его поставили. Откройте оснастку Services (Сервисы) и здесь нужно найти сервис World Wide Web Publishing Service. Не знаю, в русской версии Windows он как-то локализован или нет. Из того, что я нагуглил, похоже в русской редакции Windows этот сервис все же перевели как Служба публикации в Интернете. 

 

 

Если вам он нужен в будущем, то просто остановите его пока, для этого щелкаем правой кнопкой мыши и выбираем Stop. Если не нужен, то его полностью можно отключить, для чего дважды кликаем по имени (или правой кнопкой по нему и выбираем Свойства) и в появившемся окне выбираем в поле Startup Type ручной режим:

 

 

Теперь снова пробуем запустить Apache:

 

sudo service apache2 start

 

На этот раз ошибок не должно быть, потому что других проблем я не встречал. Вы должны увидеть окно сетевого экрана, который попросит вас подтвердить разрешение на доступ к 80-му порту. Разрешите доступ. 

Теперь в Windows можно запустить любой браузер и в поле адреса ввести localhost. В результате вы должны увидеть страницу Apache 2 по умолчанию. Если увидели, то все прошло удачно. Если нет, то даже не знаю, где могла возникнуть проблема. 

 

Установка MySql в Windows WSL

Теперь ставим mysql. Тут ничего сложного, просто выполняем 

 

sudo apt-get install mysql

 

В процессе установки должно появится окно, в котором нужно ввести пароль root пользователя, который отличается от root пользователя ОС. Это администраторский доступ именно к базе данных. 

Для запуска MySql выполняем такую же команду, которую мы бы вызывали бы и в Linux: 

 

sudo service mysql start

 

Я с проблемами не сталкивался, поэтому надеюсь, что вы тоже не столкнетесь. 

 

Установка PHP в Windows WSL

Ну и последний шаг – установить интерпретатор PHP вместе с библиотеками для Apache и MySQL. Для этого выполняем эту команду: 

 

sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

 

Работа с удаленными сайтами

У меня локальном диске все проекты находятся в папке c:\Projects. Для C# проектов тут есть папка c:\Projects\dotnet, а для PHP проектов есть c:\Projects\php. Эту папку можно подключить к WSL, чтобы Apache видел все мои файлы из Windows. Для этого выполняем команду:

 

sudo ln -s /mnt/c/Projects/php /var/www/html

 

Теперь если обратиться к папке /var/www/html, то можно увидеть все файлы, которые у меня в Windows в папке c:\Projects. Круто? Это очень удобно, потому что теперь можно использовать Visual Studio Code для работы с PHP файлами в визуальном интерфейсе Windows, а они будут использоваться Apache в подсистеме Linux. 

Из под Windows создайте файл c:\Projects\php\test.html и попробуйте обратиться к URL localhost/php/test.html и вы должны увидеть содержимое файла. Linux получает доступ к Windows папке и не нужно ничего копировать между двумя системами, просто работаете в Windows привычным способом и обращаетесь к тем же файлам из Linux напрямую. 



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне