Настройка Apache, MySQL, PHP, SSL на Ubuntu 18

  Web серверы

Короткая инструкция по настройке LAMP.

Устанавливаем все что нужно:

apt install apache2 -y
apt install mysql-server -y
apt install php php-mysql -y 

Создаем конфиги

 nano /etc/apache2/sites-available/site.ru.conf 
<VirtualHost *:80>
        ServerName site.ru
        ServerAlias www.site.ru
        DocumentRoot /var/www/site.ru
        Redirect / https://site.ru/
</VirtualHost> 
 nano /etc/apache2/sites-available/site.ru-ssl.conf 
<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerName site.ru
                ServerAlias www.site.ru
                DocumentRoot /var/www/site.ru
                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
                SSLEngine on
                SSLProtocol all -SSLv2
                SSLCertificateFile /etc/ssl/site.ru/cert.crt
                SSLCertificateKeyFile /etc/ssl/site.ru/key.key
                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                        SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /var/www/site.ru/>
                        SSLOptions +StdEnvVars
                        Options FollowSymLinks MultiViews
                        Options -Indexes
                        AllowOverride All
                </Directory>
        </VirtualHost>
</IfModule> 

Далее нужно разместить сертификат.

Если у Вас уже есть сертификат, то прекрасно.
Если его нет можно получить бесплатный сертификт от Lets Encrypt.

Однако, в этом случае нужно закоментировать строку » Redirect / https://site.ru/ » в site.ru.conf , включить сайт и перезапустить апач:

a2ensite site.ru.conf
service apache2 restart 

После этого сайт будет работать без HTTPS и Вы сможете подтвердить владение сайтом.

Также можно создать самоподписной сертификат.

В этом примере сертификат назыавается cert.crt, ключ key.key.

На этом почти все. Кинем сертификат в указанную ранее папку, включим мод ssl для apache, а также сайты и можно проверять корректность работы.

mkdir -p /etc/ssl/site.ru
mv cert.crt key.key /etc/ssl/site.ru
a2enmod ssl
a2ensite site.ru.conf site.ru-ssl.conf
service apache2 restart
echo "<?php phpinfo();" > /var/www/site.ru/index.php 

И в качестве бонуса скрипт, который все это сделает за Вас:

Установка LAMP + SSL скриптом.

Запуск:

wget https://amulin.ru/scripts/webinstall.sh
chmod +x webinstall.sh
./webinstall.sh site.ru 

Нужно понажимать Enter при создании сертификата. После этого в /etc/ssl/site.ru появятся файлы сертификата, которые можно заменить на свои.

Скрипт точно работает на Ubuntu 16 и 18, Debian 9.