Created
April 6, 2018 22:03
-
-
Save RomaniukVadim/5d37a21fe9506d8f5eeec64421e2662a to your computer and use it in GitHub Desktop.
Apache + Nginx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apt-get update | |
apt-get upgrade | |
apt-get install apache2 php7.0 php7.0-cli php7.0-curl php7.0-fpm \ | |
php7.0-mysql apache2 mysql-server mysql-client libapache2-mod-rpaf phpmyadmin \ | |
build-essential apache2-dev \ | |
# В процессе установки не выбираем ничего и просто нажимаем OK в первом окне | |
# Во втором окне выбираем YES, затем придумываем пароль от базы phpmyadmin нажимаем ок | |
# подтверждаем его и нажимаем ок | |
# В debian 9 не спрашивает пароль root при установке mariadb | |
# Поэтому надо задать пароль root в ручную после установки сервера | |
mysqladmin -u root password 'enter password here' | |
service mariadb restart | |
mysql -u root -p mysql | |
update user set plugin='' where user='root'; | |
flush privileges; | |
exit | |
service apache2 stop | |
apt-get install nginx | |
service nginx stop | |
# APACHE2 | |
a2dismod mpm_event | |
a2enmod mpm_worker | |
a2enmod proxy_fcgi | |
nano /etc/apache2/ports.conf | |
поменять "Listen 80" на "Listen 127.0.0.1:81" (Без ковычек!!) | |
cd /etc/apache2/sites-available | |
Берём из папки apache_conf файл с конфигом и кидаем в папку /etc/apache2/sites-available | |
nano domain_name.conf | |
# Изменить путь в конце строки ProxyPassMatch на путь до корневой папки сайта и остальные параметры под себя | |
mkdir /var/www/domain_name | |
mkdir /var/www/domain_name/html | |
# mod_rpaf 0.8.4 | |
# В apache стоит rpaf 0.6 и он не передаёт принимает порт от nginx и не работает правильно | |
# с https уоторый мы будем использовать. Поэтому его надо обязательно обновить. | |
# !!!apache2!!! | |
cd / | |
wget -O rpaf_v0.8.4.tar.gz https://github.com/gnif/mod_rpaf/archive/v0.8.4.tar.gz | |
gunzip rpaf_v0.8.4.tar.gz | |
tar xvf rpaf_v0.8.4.tar | |
cd mod_rpaf-0.8.4/ | |
make | |
make install | |
# Оьязательно!!! | |
# Заменить в /etc/apache2/apache2.conf | |
# LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined | |
# на | |
# LogFormat "%v:%p %{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined | |
nano /etc/apache2/mods-available/rpaf.conf | |
# Привести файл к такому виду | |
<IfModule rpaf_module> | |
RPAF_Enable On | |
RPAF_ProxyIPs 127.0.0.1 ::1 | |
RPAF_SetHostName On | |
RPAF_SetHTTPS On | |
RPAF_SetPort On | |
RPAF_ForbidIfNotProxy Off | |
RPAF_Header X-Forwarded-For | |
</IfModule> | |
a2ensite domain_name.conf | |
service apache2 start | |
# !!!!!!!!! SSL !!!!!!!!!!! | |
# !!!!!!!!Certbot!!!!!!!!!! | |
# https://certbot.eff.org/#debianother-nginx | |
cd / | |
wget https://dl.eff.org/certbot-auto | |
chmod a+x certbot-auto | |
./certbot-auto -d domain_name -d www.domain_name --manual --preferred-challenges dns certonly | |
# Пишем email в процессе генерирования, поотм A, потом N, потом Y. | |
# Добавляем в процессе TXT запись в дмен и получаем сертификаты для ДВУХ ДОМЕНОВ СРАЗУ | |
cd /etc/letsencrypt/live/domain_name | |
# Тут лежат сертификаты и все сгенерированные ботом файлы | |
# fullchain.pem -- Скртификат домена!!! | |
# privkey.pem -- Закрытый или приватный ключь!!! | |
# chain.pem -- Файл с доверенными сертификатами CA!!! | |
# Делаем ключь Деффи Хеллмана | |
openssl dhparam -out dhparams.pem 4096 | |
# NGINX | |
# Выключаем сервер если он включен | |
service nginx stop | |
nano /etc/nginx/sites-available/domain_name | |
# кидаем в /etc/nginx/sites-available конфиг из папки nginx_config | |
# Редактируем конфиг под свои задачи и переименовываем его как надо | |
# Меняем пути до сертификатов, пути о папок с сайтом и имена серверов!!! | |
# создаём символьную ссылку на кинутый конфиг в папке /etc/nginx/sites-enabled | |
ln -s /etc/nginx/sites-available/domain_name /etc/nginx/sites-enabled/domain_name | |
nano /etc/nginx/sites-available/default | |
# убрать default_server и добавить заплатки для других доменов или ip адреса аналоничным методом | |
service nginx start | |
# !!!! PHPMYADMIN !!!!! | |
ln -s /usr/share/phpmyadmin/ /var/www/domain_name/html/phpmyadmin159 | |
# Если надо добавить шифрования то смотрим как они называются отсюда | |
# Cipher!! | |
# https://testssl.sh/openssl-rfc.mapping.html | |
# Чтобы протестировать | |
# https://www.ssllabs.com | |
# Потом | |
# https://hstspreload.org |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment