Для начала надо купить домен(имя.ру — имя домен второго уровня в зоне ру) у любого Регистратора Доменов, не посредника, а воспользовавшись услугами которого вы будут администратором домена! Раньше во времена диких доменных сквотэров, лучшие имяна уже были разобраны и за них вымагались деньги. Но эти темные времена закончились теперь тем же самым официально занимаются регистраторы доменов — все лучшие имяна уже захвачены, и при попытке их купить говорят что это или вип домен или аукционный — что значит его продадут только когда заплатишь кучу денег, а так у всех доменных имен второго уровня стабильная цена покупки и продления, в разных зонах разная.
Так же надо купить VPS, именно сервер на Linux где вы тоже будете сами системным администратором! Как настраивается VPS с нуля я уже писал тут Переезд сайта на WordPress, с форумом phpBB на новый хостинг RUVDS со всеми плюшками letsencrypt, http2!. В это статье я предполагаю что VPS уже настроен(nginx(c http2), php-fpm, MySQL, Let’s Encrypt), надо только добавить новый сайт в него!
Настраиваем доменное имя
И так домен купил у Регистратора. От всех дополнительных предложений отказались — паркинг, SSL сертификаты, защита от сглаза и порчи домена. Единственное надо согласиться на DNS от регистратора домена — и в нем отредактировать MX записи. Делается это через личный кабинет администратора домена на сайте регистратора домена.
Добавляем A записи в которых указываем IP вашего VPS сервера и свой домен — у меня artmundo.ru
artmundo.ru. A 195.133.197.61
Это запись значит что если у DNS спросят дай artmundo.ru он его пошлет на IP нашего VPS.
А вот если спросят да www.artmundo.ru — никуда не пошлет, для его надо добавить
www.artmundo.ru. A 195.133.197.61
Может пройти 24 часа пока все DNS серверы воспримут эту информацию! А может и за час!
Первичная настройка сайта в nginx
Заходим на свой VPS по SSH
В папку где у меня конфиги nginx делаю такой файл
vi /etc/nginx/conf/conf.d/newsite.conf
с текстом
server { listen 80; server_name artmundo.ru www.artmundo.ru; location / { root /usr/local/www/artmundo.ru; index index.php index.html index.htm; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/artmundo.ru; } location ~ \.php$ { root /usr/local/www/artmundo.ru; fastcgi_pass unix:/var/run/php.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
В этой строке прописываем на какие имяна будет откликаться сайт
server_name artmundo.ru www.artmundo.ru;
И везде прописан путь к папке с его файлами
Создаем папку
mkdir /usr/local/www/artmundo.ru
кладем туда файл из примеров nginx — index.html
Перегружаем nginx
service nginx restart
хотя можно было бы и просто перечитать конфиг, но когда рестар лучше ошибки показываются
service nginx reload
Идем в Chrome и пытаемся открыть наш сайт. Можно пытаться в FireFox но у него дикое кэширование, кэширует даже ошибки CTRL-F не помогает — так что он не для тестов.
Все хорошо, но веббраузер пометил сайт как «Not secure» — всех без IT бэкграунда это настораживает, а тех у кого он есть так просто пугает!
Установка SSL сертификаты Let’s Encrypt и https
Полезная штука, все IT гиганты уже начали дискриминировать вебсайты за её отсутствие, а вот в качестве бесплатного стандартного сервиса никто из великих его не предложил. Больше спасибо что есть Let’s Encrypt
Все нужное для Let’s Encrypt уже установлено так что запускаю
В команду можно давить почту, чтобы на неё приходили предупреждения что пора обновить сертификат
--email meganus@itcooky.com
я делаю без этого
/usr/local/src/certbot-auto certonly --webroot --agree-tos -w /usr/local/www/artmundo.ru -d www.artmundo.ru -d artmundo.ru
В команде указаны два адреса, эт важно
artmundo.ru www.artmundo.ru
Получаем в ответ
- Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/artmundo.ru/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/artmundo.ru/privkey.pem Your cert will expire on 2020-12-06. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Все ок, я даже им донатнул когда деньги были!
Теперь надо сдлеать новые кофиги для nginx. SSL сертификаты нам обеспечивают доступ к сайт по обезопасенному протоколу https
Первый конфиг, кидает всех кто пришел по http на https, так же он кидает все кто обратился на сайт без www на www
В папку где у меня конфиги nginx делаю такой файл
vi /etc/nginx/conf/conf.d/newsite.conf
с текстом
server { listen 80; server_name artmundo.ru www.artmundo.ru; return 301 https://www.artmundo.ru$request_uri; access_log off; }
Второй конфиг уже дает https на 443 порту на который теперь все перенаправляется
В папку где у меня конфиги nginx делаю такой файл
vi /etc/nginx/conf/conf.d/newsitehttps.conf
с текстом
server { listen 443 ssl http2; server_name www.artmundo.ru artmundo.ru; ssl_certificate /etc/letsencrypt/live/artmundo.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/artmundo.ru/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/artmundo.ru/chain.pem; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8; add_header Strict-Transport-Security "max-age=31536000"; add_header Content-Security-Policy "img-src https: data:; upgrade-insecure-requests"; access_log off; root /usr/local/www/artmundo.ru; location / { index index.php index.html index.htm; } error_page 404 /404.html; error_page 500 /500.html; error_page 502 /502.html; error_page 503 /503.html; error_page 504 /504.html; location ~ \.php$ { fastcgi_pass unix:/var/run/php.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; include fastcgi_params; } location ~ .(gif|png|jpeg|jpg|svg)$ { valid_referers none blocked ~.google. ~.bing. ~.yahoo. ~.yandex. artmundo.ru *.artmundo.ru; if ($invalid_referer) { return 403; } } location ~ /\.ht { deny all; } }
Перечитываем конфиг nginx и смотрим
service nginx reload
Результат есть, ничего на сайте мы не делали, сайт лучше не стал — но Chrome нам уже доверяет, и все остальные браузеры тоже!
Сертификаты Let’s Encrypt выдаются на 90 дней, обновляются за 30 дней до окончания! Этот процесс надо автоматизировать, будем пару раз в месяц запрашивать обновление
в планировщик добавляем
crontab -e
строку
37 18 4,13,22 * * /usr/local/src/certbot-auto renew -q&&/usr/sbin/service nginx reload
Полезные настройки конфига nginx
Здесь можно указать какую страницу будет показывать nginx при разных ошибках. Можно создать свои красивые страницы с ошибками!
error_page 404 /404.html;
Это не позволяет делать hotlink на картинки на нашем сайте. Полезно, чтобы снизить нагрузку.
Тут надо перечислить какие сайты могут ссылаться — например google чтобо поиск по картинкам работал, ну и свой сайт тоже надо указать, а то сам себе не даст!
location ~ .(gif|png|jpeg|jpg|svg)$ { valid_referers none blocked ~.google. ~.bing. ~.yahoo. ~.yandex. artmundo.ru *.artmundo.ru; if ($invalid_referer) { return 403; } }
Запрещает по внешним запросам выдавать файлы начинающие с .ht например htaccess, htpassword — пожалуй устарело но полезно
location ~ /\.ht { deny all; }
Некоторые php скрипты нуждаются в перенаправленние URL — это становится понятно когда выдается ошибка 404 а ссылка вродебы нормальная.
Это можно исправив конкретно указвав кому куда
location /phpbb/app.php { try_files $uri $uri/ /phpbb/app.php?$query_string; }
Устанавливаем WordPress
Качаем WordPress
wget https://wordpress.org/latest.tar.gz
разархивируем
tar -xvf latest.tar.gz
и кладем все что в папке wordpress сюда /usr/local/www/artmundo.ru
Меняем права на папках и файлах
chmod -R 755 /usr/local/www/artmundo.ru/wp-content
chown -R nginx:nginx /usr/local/www/artmundo.ru/
Идем в майскл
mysql -u root -p
Делаем юзера, базу, задаем пароль — у меня иямна все wpartmun
CREATE DATABASE wpartmun;
CREATE USER 'wpartmun'@'localhost' IDENTIFIED BY 'QWErty123!';
GRANT ALL PRIVILEGES ON wpartmun.* TO 'wpartmun'@'localhost';
ALTER USER 'wpartmun'@'localhost' IDENTIFIED WITH mysql_native_password BY 'QWErty123!@#';
exit
Теперь идем на сайт
При заходе появляется установчное окно и там надо ввести имя базы, пользовтеля, пароль. Он выдасть файл с настройками, сам записать не сможет надо создать файл
vi /usr/local/www/artmundo.ru/wp-config.pfp
с текстом этого конфига, ну и далее имя пароль админа как положено
Заходить в админ панель надо по адресу
www.artmundo.ru/wp-admin/
Полезные плагины для WordPress
Classic Editor
В пятом WP инновационный шикарный редактор постов. Если вы к нему так и не привыкли, а к нему невозможно привыкнуть, можно этим плагином вернуть все как было раньше!
Site Kit от Google
Официальный плагин от Google чтобы смотреть всю Google статистику на своем сайте, и больше никуда не лазить!
reCaptcha by BestWebSoft
Защита от спамеров — вродебы работает, 99% спом комментов не проходят с ним!
Auto Post Thumbnail
Автоматически брать картинку поста из первой картинки, если она вручную не установлена
Yet Another Related Posts Plugin (YARPP)
Добавлять к посту спсиок похожих постов, более мнеее релеватно работает — лучше других
С WordPress идут три темы, новые можно найти тут же не выходят из личного кабинета, как и плагины
Ну все теперь автор может свой сайт наполнять содержанием!
Добавить комментарий