хуйу нас не матерятся
Если Ваш проект развивается, то когда-нибудь придёт время переезда с шаред хостинга на vps. Особенно это актуально в свете того, что VPS, уже давно сравнялись по цене с шаред хостингом.
На примере digitalocean, кликаем "Create droplet"
Выбираем только 64 битный дистрибутив. Если Вы плохо/не знакомы с линюксами, выбираем последнюю ubuntu LTS:
Выбираем датацентр, а так же ставим галочку "privat networking". Она может пригодиться.
Выбор датацентра очень важный шаг. Для digitalocean есть специальный сайт: http://speedtest-ams2.digitalocean.com/ с которого можно протестировать скорость соединения до Вашего компьютера. В общем случае правило простое: чем ближе датацентр к Вам, тем быстрее скорость.
Называем как-нибудь сервер и жмём "Создать":
Затем ждём письмо с логином и паролем. А пока оно не пришло, скачиваем putty, если же Вы живёте на windows10, говорят там есть нативный ssh клиент, как в линюксах.
Получили письмо, открываем терминал, и соединяемся со своим сервером:
При первом подключении, Вас попросят сменить дефолтный пароль.
Первым делом обновляем систему:
apt update
apt upgrade
Ставим mysql server:
apt install mysql-server
Нас попросят создать пароль для пользователя root. Запишите его куда-нибудь.
Ставим ftp сервер:
apt install vsftpd
Не ставьте proftpd. В репозиториях лежит очень древняя и насквозь дырявая версия. Через неё Вас обязательно взломают. Теоретически, ftp лучше вовсе не использовать, но это уже для более продвинутых одминов.
По-умолчанию, в vsftpd запись файлов отключена. Открываем конфиг:
nano /etc/vsftpd.conf
И ищем строчку:
#write_enable=YES
Удаляем комментарий:
# Uncomment this to enable any form of FTP write command.
write_enable=YES
Сохраняемся(ctrl+o) и перезапускаем ftp сервер:
service vsftpd restart
Но под рутом нас не пустят, нужно создать нового пользователя:
adduser anyuser
Вводим 2 раза пароль. Запускаем любимый фтп клиент(mc/ Total Comander/ что-нить ещё) и пробуем соединиться с нашим сервером:
Если подключились, то всё ок, можем двигаться дальше.
apt install nginx php7.0-fpm php7.0 php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-cli php7.0-mcrypt php7.0-zip
Создаём папки под веб-сайт и phpmyadmin:
mkdir /var/www/domain_name
mkdir /var/www/phpmyadmin
Вместо domain_name - подставьте Ваш домен. Открываем дефолтный конфиг:
nano /etc/nginx/sites-available/default
удаляем всё, и переписываем его:
# your web-site
server {
listen 80;
server_name domain_name;
root /var/www/domain_name;
index index.html index.htm index.php;
proxy_read_timeout 20;
proxy_send_timeout 20;
location ~ /. {
deny all;
}
location ~* /(?:uploads|files)/.*.php$ {
deny all;
}
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
# phpmyadmin
server {
listen 8888;
root /var/www/phpmyadmin;
index index.html index.htm index.php;
proxy_read_timeout 20;
proxy_send_timeout 20;
location ~ /. {
deny all;
}
location ~* /(?:uploads|files)/.*.php$ {
deny all;
}
location / {
try_files $uri $uri/ /index.php?$args;
auth_basic "closed access";
auth_basic_user_file /etc/nginx/htpasswd.txt;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
Мы добавили 2 разных виртуальных сервера. Сервер для phpmyadmin будет защищён http авторизацией. Но для этого ещё нужно добавить файл с паролем. Сгенерируйте файл с помощью какого-нибудь сервиса, например: http://www.htaccesstools.com/htpasswd-generator/ и скопипастьте в файл:
nano /etc/nginx/htpasswd.txt
Сохраняемся(Ctrl+o) и перезапускаем nginx:
service nginx restart
cd /var/www
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.0/phpMyAdmin-4.7.0-all-languages.zip
unzip phpMyAdmin-4.7.0-all-languages.zip
cp phpMyAdmin-4.7.0-all-languages/* phpmyadmin/ -R
rm -rf phpMyAdmin-4.7.0-all-languages
chown www-data phpmyadmin -R
chgrp www-data phpmyadmin -R
chmod 760 phpmyadmin -R
Затем заходим на наш пхпадмин, по адресу ip_сервера:8888. И если всё ок, нас должны попросить ввести хттп пароль и только потом загрузится форма авторизации phpmyadmin.
На этом всё, наша VPS полностью готова. Осталось перенести Ваш сайт в папку /var/www/domain_name и импортировать базу через phpmyadmin.