Короткая инструкция по настройке 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.