LAMPнабір відкритого програмного забезпечення для створення веб-серверів при використанні ОС Linux.

Абревіатура є набором перших літер назв технологій Linux, Apache, MySQL та PHP.

Набір LAMP називають стеком, бо у ньому кожний наступний рівень залежить попереднього. Операційна система Ubuntu/Linux Mint (наразі мова саме про них) є основою веб-сервера Apache, який у свою чергу є основою бази даних, що зберігає всю інформацію, яку обслуговує веб-сервер. MySQL, що керує базою даних, можна замінити на MariaDB, що має такі самі можливості. Мову програмування P* (PHP, Perl, Python) використовують для керування базою даних і організації взаємодії з користувачем.

На відміну від багатоплатформного XAMPP все ще збережено (станом на квітень 2022 року) підтримку платформ з 32-бітною адресацією пам'яті.

Встановлення програмного забезпечення LAMP здійснюють, завантаживши ОС під обліковим записом адміністратора. Для завантаження усіх складових однією вказівкою потрібно попередньо встановити програму tasksel вказівкою терміналу.

sudo apt install tasksel

Після цього виконати таку вказівку терміналу.

sudo tasksel install lamp-server

Якщо у процесі встановлення виникнуть негаразди, його буде зупинено. У цьому випадку користувач отримає повідомлення про розташування текстового файлу FROZEN з описом причини зупинку. Цього буде достатньо, щоб "вручну" ліквідувати причину зупинки й приодовжити встановлення. Наприклад, вилучити вміст певної теки.

Бажані кроки після встановлення LAMP

  1. Перевірити можливість перегляду сайту з власного ПК. Отримати сторінку певного вигляду за адресою http://localhost/, введеною у рядку адреси браузера.

  2. Встановити поточну IP-адресу сайту. Виконати вказівку терміналу:
    ip address
    і отримати виведення такого вигляду.

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host є
           valid_lft forever preferred_lft forever
    2: enp9s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
        link/ether 00:21:70:83:49:26 brd ff:ff:ff:ff:ff:ff
    3: wlx6c60eb298d61: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 6c:60:eb:29:8d:61 brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.99/24 brd 192.168.1.255 scope global dynamic noprefixroute wlx6c60eb298d61
           valid_lft 259159sec preferred_lft 259159sec
        inet6 fe80::dd17:dbf8:c737:4c26/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever

    Тут після слова inet вказано IP-адресу сервера (192.168.1.99 для даного прикладу виведення).

  3. Перейти у браузері за посиланням http://IP-адреса сервера й отримати сторінку такого самого вигляду, як і при переході за адресою http://localhost/. Для поданого вище прикладу виведення посилання буде таким: http://192.168.1.99.

  4. Встановити пароль супер-користувача бази даних. Виконати вказівку терміналу:

    sudo mysql_secure_installation


    У процесі її виконання відповісти на кілька службових запитань Yes.

    Якщо буде встановлено пароль, який суперечить наявним обмеженням MySQL щодо паролів (наприклад, пароль з одного символу), то з цим паролем можна буде зайти в оболонку MySQL і працювати з базами даних, набираючи вказівки MySQL з клавіатури. Але доступ з програм та середовища phpMyAdmin буде неможливим. У цьому випадку потрібно встановити наявні обмеження за допомогою вказівки оболонки MySQL:

    mysql> SHOW VARIABLES LIKE 'validate_password%';

    Найімовірніше буде отримано таке повідомлення.

    +--------------------------------------+--------+
    | Variable_name                        | Value  |
    +--------------------------------------+--------+
    | validate_password_check_user_name    | OFF    |
    | validate_password_dictionary_file    |        |
    | validate_password_length             | 8      |
    | validate_password_mixed_case_count   | 1      |
    | validate_password_number_count       | 1      |
    | validate_password_policy             | MEDIUM |
    | validate_password_special_char_count | 1      |
    +--------------------------------------+--------+

    Висновок з цього повідомлення такий: пароль має складатися щонайменше з 8 символів, містити щонайменше одну цифру, щонаменше по одному символу в обох регістрах, щонайменше один спеціальний символ. Виправити стан можна вказівкою такого вигляду:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '!@#123Qwe';

    Тут !@#123Qwe — новий пароль.

  5. Перевірити опрацювання коду PHP:
    • cтворити файл /var/www/html/i.php з єдиним рядком: <?php echo phpinfo(); ?>
    • перезапустити веб-сервер вказівкою терміналу: service apache2 restart
    • перейти у браузері за посиланням http://IP-адреса сервера/i.php
    • отримати сторінку певного вигляду.

Підвищення функціональності PHP здійснюють встановленням додаткових модулів за таким алгоритмом.

  1. Переглянути список доступних бібліотек з коментарем англіською мовою за допомогою вказівки терміналу.

    apt-cache search php7

  2. Встановити потрібний модуль вказівкою терміналу.

    sudo apt-get install назва_пакунку

phpMyAdminпрограма, що надає графічний інтерфейс у середовищі браузера для роботи з MySQL. Її легко встановити у середовищі менеджера програм.

Додавання phpMyAdmin до конфігурації веб-сервера Apache здійснюють за таким алгоритмом.

  1. Відкрити файл конфігурації у текстовому редакторі вказівкою терміналу.
    sudo nano /etc/apache2/apache2.conf
  2. Вписати у його кінець фалу такий рядок.
    Include /etc/phpmyadmin/apache.conf
  3. Зберегти файл і вийти з середовища.
  4. Перезапустити Apache вказівкою терміналу.
    sudo service apache2 restart
  5. Увійти в середовище phpMyAdmin у браузері за однією з адрес: http://localhost/phpmyadmin або http://ip_адреса/phpmyadmin, де ip_адреса — раніше визначена адреса сервера.

Заміна пароля MySQL без використання його поточного значення можлива при виконанні таких кроків.

  1. Перевірити версію MySQL вказівкою терміналу:

    mysql --version

    Якщо версія нижче 8, шукати рішення у глобальній мережі. Інакше діяти так, як описано нижче.

  2. Зупинити MySQL вказівкою терміналу.

    sudo systemctl stop mysql.service

  3. Для наступного входження в оболонку MySQL без введення пароля встановити змінне середовище MYSQLD_OPTS, яке MySQL використовує під час запуску, у режимі пропуску (нехтування) таблиць зі службовими даними. Для цього використати вказівку терміналу.

    sudo systemctl set-environment MYSQLD_OPTS="--skip-networking --skip-grant-tables"

  4. Запустити MySQL вказівкою терміналу.

    sudo systemctl start mysql.service
  5. Увійти в оболонку MySQL як користувач root за допомогою вказівки терміналу.

    sudo mysql -u root

  6. Всі наступні вказівки у терміналі набрати в середовищі оболонки MySQL, про що буде свідчити відповідне запрошення mysql> на початку рядка:

    mysql> flush privileges;
    mysql> USE mysql;
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '***';
    mysql> quit;
    Зміст цих вказівок такий:
    • видалити привілеї;
    • вибрати базу даних MySQL;
    • встановити пароль користувача root, вказавши його замість ***;
    • вийти з оболонки MySQL.
  7. Завершити всі процеси MySQL та перезапустіть службу MySQL вказівками терміналу.

    sudo killall -u mysql
    sudo systemctl restart mysql.service
  8. Увійти у систему з новим паролем: використати вказівку терміналу

    sudo mysql -u root -p
    після чого:
    • ввести пароль адміністратора ОС і натиснути клавішу Enter;
    • ввести пароль адміністратора MySQL (root), введений на кроці 6 замість ***, і натиснути клавішу Enter.

Текст упорядкував Олександр Рудик.