Я очень люблю 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 это тоже вполне реально делать.
Прежде чем устанавливать 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. Тут ничего сложного, просто выполняем
sudo apt-get install mysql
В процессе установки должно появится окно, в котором нужно ввести пароль root пользователя, который отличается от root пользователя ОС. Это администраторский доступ именно к базе данных.
Для запуска MySql выполняем такую же команду, которую мы бы вызывали бы и в Linux:
sudo service mysql start
Я с проблемами не сталкивался, поэтому надеюсь, что вы тоже не столкнетесь.
Ну и последний шаг – установить интерпретатор 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 напрямую.
Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание
Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.
Добавить Комментарий