1 Покупка виртуального хостинга или развертывание виртуальной машины
Все шаги будут выполняться из под Windows и на виртуальной машине под управлением Ubuntu 16.04 на примере хостинга INOVENTICA, вот ссылка на их хостингПлюсом этого хостинга является почасовая оплата и стоимость, а так же датацентр расположен в России.
Как создавать или купить VPS я описывать небуду - это несложно и есть много инструкций в интернете.
2 Подключение к консоли сервера
Заходим в консоль по протаколу SSH все описание будет для работы из под WindowsЕсли вы знаете как это сделать идем к следующему шагу
Скачиваем putty отсюда запускаем его и подключаемся как указано в инструкции здесь
3 Устанавливаем необходимые компоненты на Ubuntu
Обычно на сервере сразу установлен веб сервер Apache, но он нам будет мешать так как занимает 80 порт, его можно отключить или удалить, для временного отключения выполните команду в консоли:service apache2 stop
или удалите если уверены что он вам не понадобится:
apt remove apache2
Теперь устанавливаем Nginx для этого выполняем команду:
apt update
apt install nginx
Теперь для установки свежей версии PHP добавим репозиторий выполнив команды:
apt install software-properties-common python-software-properties nano
add-apt-repository ppa:ondrej/php
apt update
Если выдает например такую ошибку:W: GPG error: http://ppa.launchpad.net trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4F4EA0AAE5267A6C
то выполняем команду
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C
, где 4F4EA0AAE5267A6C строка из ошибкитеперь устанавливаем PHP 7.2 последний на данный момент
apt install php7.2-fpm
если сайт будет использовать MySQL то еще ставим и его
apt install mysql-server
в процессе установки вас попросят придумать пароль для пользователя базы данные root , укажите его и не забудьтетак же для работы mysql понадобится модуль для php ставим его и перезагружаем php-fpm
apt install php7.2-mysql
service php7.2-fpm restart
минимальное количество программ установлено, теперь можно переходить к настройкам
4 Настройка веб сервера
Создаем директории для сервераНаш сервер будет располагаться в папке /srv предположим что у нас есть доменное имя site.ru для которого мы хотим развернуть сайт Домен должен быть привязан к хостингу, как это сделать смотрите здесь
mkdir -p /srv/site.ru/www
параметр -p позволяет нам создать все поддиректории разом, в директории www у нас будет располагаться файлы доступные из интернетаПри установки веб сервер Nginx(или остался от Apache) был создан пользователь c именем www-data от имени которого у нас запущен веб сервер Nginx, поэтому папка с файлами должна иметь доступ на чтение и запись для этого пользователя. здесь.
Теперь сразу создадим главную страницу сайта, создадим файл index.php
echo "<?php phpinfo();?>">/srv/site.ru/www/index.php
и сменим права доступа на все файлы в директории /srv
chown -R www-data:www-data /srv
Теперь небольшой штрих безопасности, отключим параметр cgi.fix_pathinfo в настройках PHP /etc/php/7.2/fpm/php.ini
для этого запустим редактор nano командой
nano /etc/php/7.2/fpm/php.ini
найдем строчку с текстом #cgi.fix_pathinfo=1 и поменяем ее на cgi.fix_pathinfo=0 не забыв убрать решетку спередиСtrl+x затем Y потом Enter чтобы сохранить изменения или N что бы не сохранять.
5 Настройки Nginx
Создаем файл конфигурации для виртуального сервераnano /etc/nginx/sites-available/site.ru.conf
копируем в него текст заменяя site.ru на свой домен
server {
listen 80;
server_name site.ru;
error_log /srv/site.ru/nginx_error.log;
location / {
include fastcgi_params;
fastcgi_index index.php;
try_files $uri $uri/ /index.php?page=$uri&$args;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
root /srv/sire.ru/www/;
gzip on;
gzip_comp_level 4;
gzip_proxied any;
fastcgi_param SCRIPT_FILENAME $realpath_root/$fastcgi_script_name;
}
# Static files location
location ~* ^.+\.(jpg|jpeg|gif|png|ico|mp3|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|dat|avi|ppt|txt|tar|mid|midi|wav|bmp|rtf|wmv|mpeg|mpg|tbz|js|woff2|woff|ttf)$ {
root /srv/sire.ru/www/;
}
}
Сохраняем Сtrl+x затем Y потом Enter
создаем линк для активации конфигурации и перезапускаем сервер
ln -s /etc/nginx/sites-available/site.ru.conf /etc/nginx/sites-enabled/site.ru.conf
service nginx restart
Если вы не ошиблись то все должно запуститься без проблем.Готово, теперь сайт должен работать, в этом можно убедиться зайти по адресу http://ваш домен.ru/ Далее реклама:
Для Ubuntu 14 чтобы установить php 7.2 нужно выполнить эти команды
sudo apt install ca-certificates apt-transport-https
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list
назад в раздел linux
Пт 02 Мар 2018.