Введіть ім'я домену:
.ua .com.ua .in.ua .org.ua
.ru .com .net .org
Показати всі домени

Встановлення стека LEMP

Відповіді на запитання від компанії "Український хостинг".

Установка стека LEMP в Ubuntu

Стек LEMP (Linux, nginx, MySQL, PHP) є набором відкритих програмних продуктів для запуску веб-серверів.
Скорочення LEMP утворено за першими літерами назв продуктів, що входять в пакет - Linux, Nginx (вимовляється як Engine x), MySQL, PHP.

Перш ніж приступити до установки, необхідно підключитися до сервера по ssh .

Установка стека LEMP в Ubuntu складається з кількох кроків:

  1. Установка Nginx

    Nginx є веб-сервером і поштовим проксі-сервером, що працює на Unix-подібних операційних системах.

    Процес встановлення Nginx виглядає таким чином:

    Встановлюємо epel-release:

    sudo yum install epel-release

    Запускаємо установку Nginx:

    sudo yum install nginx

    Запускаємо Nginx:

    sudo systemctl start nginx

    Бачимо помилку:

    Job for nginx.service failed because control process exited with error code. Натисніть "systemctl status nginx.service" та "journalctl -xe" for details.

    Ця помилка виникає тому, що порт 80 вже прослуховується.

    Щоб у цьому переконатися встановлюємо net-tools

    sudo yum install net-tools

    І після цього вводимо команду:

    netstat-ntupl | grep 80

    Якщо 80 порт зайнятий, тоді зупиняємо його:

    sudo systemctl stop httpd.service

    Потім виконуємо повторно запуск Nginx:

    sudo systemctl start nginx

    Тепер вводимо IP адресу сервера в браузері і перевіряємо, чи з'являється стартова сторінка nginx.

    Сторінка не з'явилась.

    Причина в iptables та для вирішення проблеми необхідно виконати в терміналі команду:

    sudo iptables -I INPUT 4 -p tcp --dport 80 -j ACCEPT

    Тепер відкривши IP-адресу сервера в браузері ми побачимо стартову сторінку nginx.

    Включаємо Nginx для запуску при завантаженні:

    sudo systemctl enable nginx
  2. Установка MySQL (MariaDB)

    MariaDB є відгалуженням від системи управління базами даних MySQL, що розробляється спільнотою.

    Встановлюємо MariaDB та допоміжні пакети:

    sudo yum install mariadb-server mariadb

    Запускаємо MariaDB:

    sudo systemctl start mariadb
    Запускаємо сценарій безпеки, що дозволяє видалити деякі небезпечні значення за умовчанням, а також обмежити доступ до системи баз даних:
    sudo mysql_secure_installation

    Після виконання запиту з'явиться повідомлення із запитом пароля root.

    Оскільки MySQL був тільки що встановлений і пароля root немає, необхідно просто натиснути enter.

    Після цього необхідно натиснути 'y', щоб задати пароль для користувача root.

    Після призначення пароля та підтвердження пароля з'явиться повідомлення на зображенні 10.

    Для інших питань необхідно просто натиснути клавішу enter у кожному питанні, щоб прийняти значення за замовчуванням:

    Включаємо MariaDB для запуску під час завантаження:

    sudo systemctl enable mariadb
  3. Встановлення PHP
    PHP є поширеною мовою програмування загального призначення з відкритим кодом.
    Встановлюємо php, а також пакети php-mysql і php-fpm:
    sudo yum install php php-mysql php-fpm
    Вносимо зміни до конфігурації php для більшої безпеки. У прикладі використовується текстовий редактор nano, для встановлення якого потрібно виконати команду:
    yum install nano
    Відкриваємо основний файл конфігурації php-fpm:
    sudo nano /etc/php.ini
    Змінюємо значення
    ;cgi.fix_pathinfo=1
    на значення
    cgi.fix_pathinfo=0
    Зберігаємо зміну у файлі, натиснувши клавіші Ctrl+x , потім клавішу y і потім клавішу Enter
    Далі відкриваємо файл конфігурації php-fpm www.conf:
    sudo nano /etc/php-fpm.d/www.conf
    Змінюємо значення
    listen = 127.0.0.1: 9000
    на значення
    listen = /var/run/php-fpm/php-fpm.sock
    У тому ж файлі змінюємо значення
    ;listen.owner = nobody
    ;listen.group = nobody
    на значення
    listen.owner = nobody
    listen.group = nobody
    У тому ж файлі змінюємо значення
    user = apache
    group = apache
    на значення
    user = nginx
    group = nginx
    Зберігаємо зміну у файлі, натиснувши клавіші Ctrl+x , потім клавішу y і потім клавішу Enter.
    Запускаємо php:
    sudo systemctl start php-fpm
    Включаємо php для запуску при завантаженні:
    sudo systemctl enable php-fpm
  4. Налаштування Nginx для обробки сторінок PHP
    Відкриваємо файл /etc/nginx/nginx.conf:
    sudo nano /etc/nginx/nginx.conf
    Змінюємо наступні рядки:
     server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    root /usr/share/nginx/html;
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    location / {
    }
    error_page 404 /404.html;
    location = /40x.html {
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
    }
    змінюємо на наступні рядки (замість ip адреси 93.190.42.52 необхідно вказати ip адресу власного севрера):
     server { listen 80; server_name 93.190.42.52; # note that these lines are originally from the "location /" block root /usr/share/nginx/html; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ .php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
    Зберігаємо зміну у файлі, натиснувши клавіші Ctrl+x , потім клавішу y і потім клавішу Enter.
    Перезавантажуємо Nginx, щоб внести необхідні зміни:
    sudo systemctl restart nginx
  5. Тестування PHP
    Створюємо новий файл:
    sudo nano /usr/share/nginx/html/info.php
    Вказуємо у файлі наступний код:
    Зберігаємо зміну у файлі, натиснувши клавіші Ctrl+x , потім клавішу y і потім клавішу Enter.
    Відкриваємо у браузері адресу http://93.190.42.52/info.php (замість 93.190.42.52 необхідно вказати адресу свого сервера) та бачимо інформацію про php.
Мітки: LEMP, Ubuntu, сервер, vps

Див. також:

Будь ласка, виберіть мову сайту за промовчанням: