Универсальная установка VPS⚓︎
Пакеты обновлений и улучшений⚓︎
На этом этапе вы можете захотеть либо настроить локальную запись /etc/hosts
, чтобы дать IP-адресу удобное понятное имя, такое как {{page.header.localname}}
. Так вам будет проще подключиться к серверу по SSH с помощью ssh root@{{ page.header.localname }}
.
После успешного подключения по SSH к вашему серверу как root первое, что вам нужно сделать, это обновить и обновить все установленные пакеты. Это гарантирует, что вы используете самые последние и самые лучшие:
Просто ответьте Y
, если будет предложено.
Далее вам нужно будет установить несколько важных пакетов:
При этом будет установлен полный редактор VIM (а не мини-версия, которая поставляется с Ubuntu), веб-сервер Nginx, команды GIT и PHP 7.
Настройка пула подключений Nginx⚓︎
Nginx уже установлен, но вы должны настроить его так, чтобы он использовал пул соединений PHP для конкретного пользователя. Это обеспечит вашу безопасность и позволит избежать любых потенциальных разрешений на файлы при работе с файлами в качестве вашей учетной записи пользователя и через веб-сервер.
Перейдите в каталог пула и создайте новую конфигурацию grav
:
В VIM вы можете вставить следующую конфигурацию пула:
[grav]
user = grav
group = grav
listen = /var/run/php5-fpm.grav.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
Ключевыми вещами здесь являются user
и group
, устанавливаемые на пользователя с именем grav
, а также прослушивающий сокет, имеющий уникальное имя из стандартного сокета. Сохраните и выйдите из этого файла.
Теперь нам нужно создать специального пользователя grav
:
Задайте надежный пароль и оставьте другие значения по умолчанию. Затем нам нужно создать подходящее место для Nginx для обслуживания файлов, поэтому давайте сменим пользователя и создадим эту папку, а также создадим пару тестовых файлов:
Создайте простой index.html
с содержимым <h1> Working! </h1>
и файл с именем ʻinfo.phpс содержимым
<?php phpinfo();`
Теперь мы можем выйти из этого пользователя и вернуться к root, чтобы настроить конфигурацию сервера Nginx:
Затем просто вставьте эту конфигурацию:
server {
#listen 80;
index index.html index.php;
## Begin - Server Info
root /home/USER/www/html;
server_name localhost;
## End - Server Info
## Begin - Index
# for subfolders, simply adjust:
# `location /subfolder {`
# and the rewrite to use `/subfolder/index.php`
location / {
try_files $uri $uri/ /index.php?$query_string;
}
## End - Index
## Begin - Security
# deny all direct access for these folders
location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
# deny running scripts inside core system folders
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny running scripts inside user folder
location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny access to specific files in the root folder
location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }
## End - Security
## Begin - PHP
location ~ \.php$ {
# Choose either a socket or TCP/IP address
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# fastcgi_pass unix:/var/run/php5-fpm.sock; #legacy
# fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
## End - PHP
}
Это стандартный файл nginx.conf
, который поставляется с Grav с двумя изменениями: 1) root
был адаптирован к нашему пользователю/папке, которую мы только что создали, а опция fastcgi_pass
была установлена на сокет, который мы определили в нашем пуле grav
. Теперь нам просто нужно правильно связать этот файл, чтобы он был включен:
Теперь все, что нам нужно сделать, это перезапустить Nginx и процесс php5-fpm и протестировать, чтобы убедиться, что мы правильно настроили Nginx и пул соединений PHP:
Теперь укажите в браузере свой сервер: http://{{page.header.localname}}
, и вы должны увидеть текст: Working!
Вы также можете проверить, что PHP установлен и правильно работает, указав в своем браузере: http://{{page.header.localname}}/info.php
. Вы должны увидеть стандартную информационную страницу PHP с перечисленными APCu, Opcache и т. д.
Установка Grav⚓︎
Это легкая часть! Сначала нам нужно вернуться к пользователю Grav, поэтому либо SSH как grav@{{page.header.localname}}
, либо su - grav
от имени пользователя root. Затем выполните следующие действия:
$ cd ~/www
$ wget https://getgrav.org/download/core/grav/latest
$ unzip grav-v{{ grav_version }}.zip
$ rm -Rf html
$ mv grav html
Теперь, когда всё готово, вы можете подтвердить установку Grav, указав в браузере страницу http://{{page.header.localname}}
, и вы должны увидеть страницу Grav is Running!.
Поскольку вы тщательно следовали этим инструкциям, вы также сможете использовать Grav CLI и Grav GPM такие команды, как:
$ cd ~/www/html
$ bin/grav clear
Clearing cache
Cleared: cache/twig/*
Cleared: cache/compiled/*
Touched: /home/grav/www/html/user/config/system.yaml
и команды GPM: