Блог экспериментатора инженера-разработчика: Infanty.
Я пишу how-to статьи на редкие темы или статьи обзоры - для себя и тех кто со мной работает.
Блог существует при поддержке: "Оккупационных сил Марса".

LAMP

Для установки LAMP (Linux + Apache + MySQL + PHP) в Ubuntu необходимо просто набрать в консоли:

sudo tasksel install lamp-server
sudo tasksel install lamp-server 

После этого установим Rewrite модуль для Apache (он нужен если например в дальнейшем необходимо установить CMS Drupal с использованием чистых ссылок), набрав в консоли:

sudo a2enmod rewrite 

Перезапустим Apache (что бы изменения вступили в силу), набрав в консоли:

sudo /etc/init.d/apache2 restart 

Для проверки работы Apache достаточно набрать Ip-адрес сервера в строке браузера.

После копирования файлов сайта с локального компьютера на сервер в VirtualBox (в папку: "/var/www/example.test"), добавим для него новый виртуальный хост в Apache создав в папке: "/etc/apache2/sites-available" файл "example.test.conf" следующего содержания:

<VirtualHost *:80>
  ServerName www.example.test
  ServerAlias *.example.test example.test
  
  DocumentRoot /var/www/example.test

  ErrorLog ${APACHE_LOG_DIR}/example.test_error.log
  CustomLog ${APACHE_LOG_DIR}/example.test_access.log combined

  <Directory "/var/www/example.test">
    AllowOverride All
  </Directory>
</VirtualHost> 

Создадим на этот файл символьную ссылку в папке: "/etc/apache2/sites-enabled". И перезапустим Apache.

LNMP

Для установки LNMP (Linux + Nginx + MySQL + PHP) в Ubuntu необходимо поочередно установить каждый из пакетов входящий в состав LNMP.

Для установки, запуска и проверки статуса Nginx, наберём в консоли:

sudo apt install nginx
sudo service nginx start
sudo service nginx status

Для установки, запуска и проверки статуса MySQL, наберём в консоли:

sudo apt install mysql-server
sudo service mysql start
sudo service mysql status

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

sudo mysql_secure_installation

Отвечаем: Yes - на все вопросы кроме первого, связанного с активацией плагина оценки сложности пароля.

В MySQL 5.7 (и более поздних версиях), пользователь root - по умолчанию аутентифицируется с помощью плагина auth_socket, а не по паролю. Исправим это, набрав в консоли:

sudo mysql

Проверяем, что пользователь root - аутентифицируется с помощью плагина auth_socket:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

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

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourNewPassword';
mysql> FLUSH PRIVILEGES;

Повторно проверяем как аутентифицируется пользователь root, и выходим из оболочки MySQL набрав в консоли: "exit".

Для установки, запуска и проверки статуса PHP, наберём в консоли:

sudo apt-get install -y php7.2 php7.2-fpm php7.2-gd php7.2-mysql php7.2-cli php7.2-curl 
sudo apt-get install -y php7.2-mbstring php7.2-xml php7.2-opcache
sudo service php7.2-fpm start 
sudo service php7.2-fpm status

Для проверки работы Nginx достаточно набрать Ip-адрес сервера в строке браузера.

После копирования файлов сайта с локального компьютера на сервер в VirtualBox (в папку: "/var/www/example.test"), добавим для него новый виртуальный хост в Nginx создав в папке: "/etc/nginx/sites-available" файл "example.test" следующего содержания:

server {
  listen 192.168.56.101:80;

  server_name example.test;
  root /var/www/example.test;

  gzip_static on;
  index index.php;

  location = /favicon.ico {
    log_not_found off;
    access_log off;
  }

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location ~* \.(txt|log)$ {
    allow 127.0.0.1;
    deny all;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
  }

  location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires max;
    log_not_found off;
  }
} 

Создадим на этот файл символьную ссылку в папке: "/etc/nginx/sites-enabled". И перезапустим Nginx.

Примечания по hosts

Для доступа к сайту в VirtualBox по URL из браузера локального компьютера под управлением ОС Windows - внесём правки в файл: "C:\Windows\System32\drivers\etc\hosts" (где ОС Windows установлена на диске: "C:\"). Добавив в конец файла строку:

192.168.56.101 example.test

В Ubuntu аналог файла hosts хранится в папке: etc (если у Вас основная локальная система: Ubuntu). Не забывайте добавлять данные в hosts файл локального компьютера вне зависимости от вашей ОС.

Чтобы браузер Firefox автоматически не исправлял (с перенаправлением) URL сайта с HTTP на HTTPS - задаём сайту доменную зону: "*.test".

Примечания по PHP 5.6 и PHP 7.1

В случае если в автоматическом режиме (на Ubuntu 16.04) была установлена 7-я версия PHP, а требуется версия 5.6, то для её установки и активации наберём в консоли:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php5.6 libapache2-mod-php5.6 php5.6-curl php5.6-gd php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-xmlrpc
sudo a2dismod php7.0
sudo a2enmod php5.6
service apache2 restart 

В случае если в автоматическом режиме (на Ubuntu 18.04) была установлена версия PHP 7.2, а требуется версия 5.1, то для её установки и активации наберём в консоли:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt-get install -y php7.1 php7.1-fpm php7.1-gd php7.1-mysql php7.1-cli php7.1-curl php7.1-mbstring php7.1-xml
sudo a2dismod php7.2
sudo a2enmod php7.1
service apache2 restart