Сервер Mint (но так же должно работать и на Ubuntu, Debian)
Установка Apache
через консоль
sudo apt install apache2
Устанавливается хорошо, только если у вас не стояли до этого XAMPP, MAMP и прочее. Они забивают порт 80, поэтому их необходимо выгрузить из памяти. Для этого можно найти их PID lsof -i :80 и убить процесс kill 9999 , где 9999 — номер процесса, найденного при вызове lsof
Если уже установили, а Apache так и не запустился, можно переустановить:
sudo apt install —reinstall apache2
Тестируем Apache
Открываем http://localhost вы должны увидеть стандартную страницу apache2-default с фразой ‘It works!»
Устанавливаем PHP
Заходим в консоль опять и оттуда:
sudo apt install php libapache2-mod-php
Установит последнюю версию php
Затем перезагрузим Apache
sudo systemctl restart apache2
Тестируем PHP
Создадим файл в /var/www/html/test.php
sudo gedit /var/www/html/test.php
и напишем там
<?php phpinfo();
Сохранить закроем. Зайдем теперь по адресу http://localhost/test.php
и вы должны увидеть страницу, на которой логотип PHP и все служебные параметры и настройки php
Установка MySQL
sudo apt install mysql-server
хоть и mint спрашивает пароль при установке mysql, иногда этого не случается, поэтому теперь нужно сменить пароль. Для этого можно запустить mysql от root
sudo mysql
и в mysql уже сменить пароль (тут описано как)
коротко оттуда:
sudo systemctl restart apache2
Зайдем теперь в веб-интерфейс phpMyAdmin
Настройка Apache для разрешения использования .htaccess
Сначала включим возможность использования файла .htaccess в конфигурационном файле Apache.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Добавим директиву AllowOverride All в секцию <Directory /usr/share/phpmyadmin>
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .
Сохраняем и перезапускаем Apache
sudo systemctl restart apache2
Добавляем виртуальные хосты (virtual-hosts)
Заходим в /etc/apache2/sites-available/example.com.conf (можно для начала скопировать его из папки /etc/apache2/sites-available/ или /etc/apache2/sites-enabled)
Открываем новый файл с root правами, будет что-то типа:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Таких можно создать несколько. Подключим доступные сайты:
sudo a2ensite example.com.conf
и перезагрузим Apache
sudo service apache2 restart
Модуль mod_rewrite
Если возникает ошибка с правилами в htaccess, то это скорей всего не работает (или не подключен) модуль mod_rewrite
sudo a2enmod rewrite
и перезапускаем опять Apache
Создаем файл .htaccess
Теперь когда мы разрешили использовать htaccess, необходимо создать этот файл
sudo nano /usr/share/phpmyadmin/.htaccess
Запишем туда следующее
AuthType Basic AuthName "Restricted Files" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
Введённые нами строки означают следующее:
AuthType Basic
: Эта строка задаёт тип авторизации. Указанный тип (Basic
) означает, что авторизация будет осуществляться на основе пароля и файла пароля.AuthName
: Эта строка задаёт текст приветствия в диалоге авторизации. Используйте общие слова и фразы в этой строке, чтобы злоумышленникам было сложнее определить, что за система скрывается за диалогом авторизации.AuthUserFile
: Эта строка задаёт адрес файла пароля, который используется для авторизации. Файл должен находиться в недоступной для внешнего мира директории. Чуть далее мы создадим этот файл.Require valid-user
: Эта строка означает, что только аутентифицированные пользователи могут осуществлять доступ к защищаемой системе.
После ввода указанных строк, сохраните и закройте файл.
Создание файла пароля .htpasswd для аутентификации
Теперь, когда мы задали путь для нашего файла пароля в директиве AuthUserFile
в нашем файле .htaccess
, нам необходимо создать этот файл.
Для того, чтобы это сделать, нам понадобится установить дополнительный пакет из стандартных репозиториев:
sudo apt-get install apache2-utils
Теперь нам доступна утилита htpasswd
.
Указанный нами ранее путь выглядел следующим образом: /etc/phpmyadmin/.htpasswd
. Создадим этот файл и добавим в него первого пользователя следующей командой:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd
Вам будет предложено выбрать и подтвердить пароль для созданного пользователя. После этого файл будет создан и в него будет добавлен хэш указанного вами пароля.
Для добавления нового пользователя выполните следующую команду без флага -c
:
sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
Теперь, когда вы настроили доступ к поддиректории phpMyAdmin, при попытке входа в phpMyAdmin вам будет предложено ввести логин и пароль пользователя:
https://доменное_имя_или_IP_адрес/phpmyadmin
После ввода логина и пароля вы будете перенаправлены на страницу аутентификации phpMyAdmin. Таким образом, мы создали дополнительный слой защиты для вашего phpMyAdmin.