Установка и настройка стека LEMP: Ubuntu, Nginx, MySQL, PHP

14 августа 2023 г.

Стек LEMP предназначен для развертывания веб-приложений написанных с использование распространенных фреймворков (Laravel, Yii, CodeIgniter, Symfony, CakePHP, Zend, Phalcon и т.п.).

В этой статье я попробовал собрать пошаговую инструкцию с исправлением возможных встречающихся проблем.
Для примера установки и настройки будет использована ОС Ubuntu 22.04, MySQL8, PHP8.1.

  1. Подготовка ОС 
    sudo apt install -f vim htop ssh curl ubuntu-restricted-extras openssh-server ca-certificates tzdata;
    sudo add-apt-repository ppa:git-core/ppa; sudo apt install -f git; git config --global pull.rebase false; git branch -m master main;
    sudo snap install core; sudo snap refresh core;
  2. Установка и настройка веб-сервера Nginx
    sudo apt install -f nginx
  3. Установка и настройка MySQL
    https://dev.mysql.com/downloads/repo/apt/
    sudo apt install -f mysql-client mysql-server;
    sudo snap install mysql-workbench-community;
  4. Установка PHP
    sudo apt install -f php8.1 php8.1-cli php8.1-common php8.1-curl php8.1-dev php8.1-fpm php8.1-gd php8.1-intl php8.1-json php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-soap php8.1-xml php8.1-zip php8.1-xdebug php8.1-imagick php8.1-gmp;
  5. Настройка PHP и расширений
    sudo vim /etc/php/8.1/fpm/php.ini
    short_tags On
    upload_max_filesize = 25M
    post_max_size = 25M
    	

    sudo systemctl restart php8.1-fpm
  6. Настройка обработчика PHP
    sudo add-apt-repository ppa:ondrej/php;
    sudo apt install -f php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-dev php7.4-fpm php7.4-gd php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-soap php7.4-xml php7.4-zip php7.4-xdebug php7.4-imagick php7.4-gmp;
    sudo update-alternatives --set php /usr/bin/php7.4;
  7. Дополнительные инструменты
    • Composer
      php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"; 
      php composer-setup.php;
      sudo mv composer.phar /usr/local/bin/composer;