Найти тему
anykey

Установка LAMP на WSL2 Ubuntu 20.04

Установка Web-сервера на Ubuntu 20.04 работающей под WSL2 на Windows 10. Все команды выполняются от имени пользователя, который создавался при установке Ubuntu WSL

Обновляем систему

sudo apt update
sudo apt upgrade

Установка Apache2

sudo apt install apache2

Редактируем файл

sudo nano /etc/apache2/ports.conf

Вместо Listen 80 пишем Listen 127.0.0.1:80 (или Listen 0.0.0.0:80), таким образом Apache будет прослушивать 80 порт по TCPv4

Стартуем Apache, и проверяем в браузере Windows хост 127.0.0.1, должна отобразиться страница по умолчанию для Apache

sudo service apache2 start
Apache2 Ubuntu Default Page: It works
Apache2 Ubuntu Default Page: It works

Установка MariaDB

sudo apt install mariadb-server

Стартуем сервис

sudo service mysql start

Настраиваем MySQL с помощью скрипта

sudo mysql_secure_installation

Сначала скрипт попросит ввести пароль root для подключения к базе данных, так как базу мы только что установили, то пароль пустой, поэтому просто нажимаем Enter

-2

Далее скрипт настройки спросит, хотим ли мы установить пароль пользователю root - соглашаемся

-3

Вводим пароль пользователя root (нужно придумать - например sqlpass) и подтверждаем его

Далее будут следующие вопросы:

Remove anonymous users? [Y/n]

Соглашаемся

Disallow root login remotely? [Y/n]

Тут желательно ответить да, но для упрощения подключения к базе лучше ответить нет, так как в данном примере будем подключаться из Windows с помощью программы HeidiSQL, и управлять пользователями удобнее из нее, иначе придется создавать базы данных из командной строки

Remove test database and access to it? [Y/n]

Тут можно ответить на Ваше усмотрение

Reload privilege tables now? [Y/n]

Соглашаемся

Подключаемся из консоли к MariaDB, и разрешаем вход пользователю 'root'@'localhost'

sudo mariadb
ALTER USER 'root'@'localhost' IDENTIFIED BY 'sqlpass';
\q
-4

Проверяем подключение программой HeidiSQL

-5

После нажатия кнопки Open должно произойти подключение к серверу баз данных, и мы должны стандартные для MySQL базы данных

-6

MariaDB успешно установлена

Дополнение:

Заметил что при старте службы возникают ошибки

sudo service mysql start
* Starting MariaDB database server mysqld
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Сервер mysql запускается, но при проверке статуса, возникает та-же ошибка, т.к. используется mysqladmin, а он по умолчанию пытается подключиться без пароля

sudo service mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
*

Т.к. сервер у нас локальный, можно сделать пароль root пустым и таких проблем не будет, так-же останется возможность подключения через HeidiSQL, но с пустым паролем

Установка пустого пароля выполняется командой

sudo mysqladmin -p password ""

При выполнении команды необходимо будет ввести пароль root сервера MySQL, который мы устанавливали ранее

Попробуем проверить статус mysql сервера

-7

Команда успешно отработала

Создание тестового сайта в домашней директории

Так-как в домашней папке WSL слишком много файлов, с которыми неудобно работать из Windows создадим отдельную директорию для работы, и сразу папку для сайтов

-8
mkdir work
mkdir work/www

Папку work добавим на панель быстрого доступа проводника Windows

-9

Создадим папку сайта testsite.local, и папку для публичных файлов. Обычно папку для публикации называется public_html

mkdir work/www/testsite.local
mkdir work/www/testsite.local/public_html

Создадим конфиг нашего сайта

sudo nano /etc/apache2/sites-available/testsite.local.conf

Вставим в него следующие настройки

<VirtualHost *:80>
ServerName testsite.local
ServerAdmin webmaster@localhost
DocumentRoot /home/anykey/work/www/testsite.local/public_html/
ErrorLog ${APACHE_LOG_DIR}/testsite.error.log
CustomLog ${APACHE_LOG_DIR}/testsite.access.log combined
</VirtualHost>

Отредактируем конфигурацию Apache

sudo nano /etc/apache2/apache2.conf

В настройках необходимо найти секции Directory и добавить еще одну секцию

<Directory /home/anykey/work/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Активируем наш тестовый сайт

sudo a2ensite testsite.local

Перезапустим Apache

sudo service apache2 reload

В публичной папке сайта создадим файл index.html

nano work/www/testsite.local/public_html/index.html

И вставим в него тестовое содержимое

<h1>Hello World!</h1>
<p>This is the landing page of <strong>testsite.local</strong>.</p>

Отредактируем файл hosts Windows, для этого откроем Блокнот от имени администратора и откроем файл "C:\Windows\System32\drivers\etc\hosts", добавим в него следующую строчку

127.0.0.1 testsite.local
-10

Проверим наш тестовый сайт в браузере, для этого в адресной строке введем http://testsite.local/, должно получиться следующее

-11

Тестовый сайт работает

Установка PHP

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

Проверим версию

-12

Перезапустим Apache

sudo service apache2 restart

Проверим работу PHP

В публичной папке с тестовым сайтом создадим index.php

nano work/www/testsite.local/public_html/index.php

Вставим в него следующее содержимое

<?php
phpinfo();

Проверим работу PHP в браузере, откроем страницу http://testsite.local/index.php

Должно отобразиться следующее содержимое

-13

PHP на сервере Apache2 работает

Теги: #wsl #ubuntu #lamp #mariadb #apache #php

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц