Skip to content

Instantly share code, notes, and snippets.

@RomaniukVadim
Created April 6, 2018 22:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RomaniukVadim/5d37a21fe9506d8f5eeec64421e2662a to your computer and use it in GitHub Desktop.
Save RomaniukVadim/5d37a21fe9506d8f5eeec64421e2662a to your computer and use it in GitHub Desktop.
Apache + Nginx
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