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

ставим по классике: Apache, MySQL и PHP

Как всегда перед установкой нового софта необходимо обновить список пакетов нашего сервера, но для начала ремарка: если доступ по ssh недоступен из-за прошлых ключей (тот же ip адрес например был раньше) то обновим и удалим прежние ключи:

ssh-keygen -R 192.168.1.*

ну и дальше все ставим по классике:

sudo apt update

затем установим все доступное, если есть желание:

sudo apt apgrade

Ставим сам сервер Apache:

sudo apt install apache2

все установили, заходим в браузер по ip и смотрим страницу-заглушку:

Установка MySQL

Следующий этап — это установка системы управления базами данных, а именно, MySQL.

MySQL является довольно популярной СУБД. MySQL используется для хранения данных сайта и довольно часто используется в приложениях, написанных с помощью PHP.

Команда для инсталляции выглядит следующим образом:

sudo apt install mysql-server

После завершения процесса можно проверить версию установленного пакета:

mysql -V

все установили и теперь произведем настройку безопасности MySQL:

sudo mysql_secure_installation
  • Remove anonymous users (Удалить анонимных пользователей)?  — Yes
  • Disallow root login remotely (Запретить авторизацию root вне localhost)? — Yes
  • Remove test database and access to it (Удалить тестовую БД и доступы к ней)? — Yes
  • Reload privilege tables now (Перезагрузить таблицу привилегий после настройки)? — Yes
  • All done! 

Далее коннектимся к MySQL:

sudo mysql

сменим пароль root и сразу изменить способ иднетификации:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'новыйпароль';

выходим, и пробуем зайти под root:

exit
mysql -u root -p

смотрим всех пользователей что у нас есть и их хосты

SELECT host, user FROM mysql.user;

добавим нового пользователя с доступом по локальному ip (пишем тут ip своего компа, с которого хотим зайти через специальный софт). Привилегии у пользователя обычные. Команда FLUSH PRIVILEGES дает серверу команду перечитать привилегии.
Подробнее в документации.

CREATE USER 'test'@'192.168.1.%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

примеры записи хоста пользователя:

somehost.example.com
localhost
127.0.0.1
::1
192.168.123.%
192.168.123.0/255.255.255.0
%

поправим конфиг mysql для доступа извне

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

правим строки со следующими параметрами:

bind-address            = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0

Далее обязательно сохраним документ Ctrl+S и закроем Ctrl+X
к стати посмотреть статус MySQLможно командой

systemctl status mysql

а теперь перезагрузим его что бы все наши изменения заработали

systemctl restart mysql

проверяем, все работает — profit!

как добавить пользователя, назначит ему привилегии общие и к конкретным базам или таблицам — смотрим тут и тут еще подробно про весь MySQL
но вот основное, пожалуй что нам нужно. Это добавить пользователя, и дать ему все права на базу данных:

можем сделать второго root, не локального а внешнего (строго НЕ рекомендуется):

CREATE USER 'rootin'@'192.168.1.%' IDENTIFIED BY 'super_password';
GRANT ALL PRIVILEGES ON *.* TO 'rootin'@'192.168.1.%' WITH GRANT OPTION;

теперь я могу в локальной сети зайти под root(in) и создавать базы данных, экспортировать и импортировать их. Это просто привычка работы с GUI интерфейсом.

создадим еще пользователя и дадим ему все привилегии только к одной базе даных::

CREATE USER 'user01'@'192.168.1.%' IDENTIFIED BY 'super_password';
GRANT ALL PRIVILEGES ON your_data_base.* TO 'user01'@'192.168.1.%';

скорее всего мы на этом этапе мы столкнемся с ошибкой авторизации нашего нового пользователя — «Authentication plugin ‘caching_sha2_password«. У меня так получается каждый раз после создания пользователя. Лечится просто — нужно сменить режим авторизации и снова прописать наш пароль (или новый пароль):

ALTER USER 'user01'@'%' IDENTIFIED WITH mysql_native_password BY 'super_password';

Теперь все работает как надо. Пользователи проходят авторизацию и имеют доступ ALL PRIVILEGES только к своей базе данных.

Установим PHP

PHP — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. Поддерживается большинством провайдеров и позволяет выполнять приложения написанные на PHP.

Для дальнейшей работы вам также понадобится библиотека libapache2-mod-php для обработки PHP в Apache и библиотека php-mysql для PHP, используемая для подключения к MySQL из PHP.

Чтобы установить PHP, а также необходимые библиотеки, используем следующую команду:

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

По завершению установки есть возможность посмотреть версию установленного пакета:

php -v

в общем все установили. MySQL даже настроили.

Дальше настройка Apache, а именно — Виртуальные хосты. Нужно прописать несколько сайтов.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *