Установка сайта на web-хост на примере Joomla!
Создайте пользователя сервера MySQL и базу данных для сайта. Никогда не указывайте пользователя root в конфигурации БД ваших сайтов! В целях безопасности на каждый отдельный сайт необходимо создать отдельного пользователя, который будет иметь доступ только к базе данных этого сайта. Права доступа пользователей различных сайтов не должны пересекаться. Не давайте пользователям БД глобальные привелегии — разрешайте только работу с базой данных отдельного сайта. Для создания базы данных и пользователя выполните в phpMyAdmin следующие действия:
- Перейдите во вкладку «Учётные записи пользователей» с помощью верхнего меню навигации.
- Нажмите на ссылку «Добавить учетную запись пользователя».
- Придумайте имя пользователя БД, введите его в соответствующем поле.
- В качестве имени хоста для повышения степени безопасности выберите «Локальный».
- Сгенерируйте сложный пароль.
- Перепишите имя пользователя и новый пароль.
- Отметьте галочкой «Создать базу данных с таким же именем и предоставить на неё все привилегии».
- Нажмите на кнопку «Вперёд» в правом нижнем углу.
Создайте пользователя операционной системы с помощью консольной команды adduser. Для этого пользователя будет также создан домашний каталог, находящийся в директории /home. В каталоге нового пользователя и должны размещаться файлы web-сайтов. Права на все файлы в домашнем каталоге пользователя должны принадлежать данному пользователю. Флаг --ingroup определяет группу по умолчанию, в которую входит этот пользователь. Если группа не задана, то будет создана новая группа, и её имя будет совпадать с именем пользователя. При создании нового пользователя необходимо будет определить для него пароль и ответить на необязательные вопросы, которые можно пропустить, если ввести пустые значения.
adduser fil --ingroup www-data
Создайте новый пул PHP для пользователя fil. Для этого скопируйте пул по умолчанию, а потом внесите в него изменения:
cd /etc/php/7.0/fpm/pool.d cp www.conf fil.conf
/etc/php/7.0/fpm/pool.d/fil.conf:
; pool name ('www' here) [fil] user = fil group = www-data listen = /run/php/php7.0-fpm-fil.sock listen.owner = www-data listen.group = www-data
Создайте общий каталог для web-сайтов, а также каталог нового сайта (одной командой можно создать несколько директорий):
mkdir /home/fil/www /home/fil/www/joomla
Создайте новый хост в конфигурационном файле Nginx /etc/nginx/conf.d/default.conf (при желании можно создать новый файл в этом же каталоге). Скопируйте уже имеющийся серверный блок тестового хоста и внесите в него изменения (выделено красным):
server { listen 80; server_name joomla.dev; root /home/fil/www/joomla; # ЧПУ-перенаправление для CMS location / { try_files $uri $uri/ index.php?$args; } location ~ \.php($|/) { if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.0-fpm-fil.sock; fastcgi_intercept_errors on; } }
Директива try_files проверяет существование запрошенного файла — если его не существует, сервер проверяет существование запрошенной директории, если её не существует, сервер делает внутреннее перенаправление на индексный файл index.php. Корневая локация по умолчанию / соответствует любому файлу. Сервер направляет в локацию по умолчанию в том случае, если не было совпадений с указанными ниже локациями по регулярным выражениям, а также если не было точных совпадений.
Создайте запись для нового хоста в файле C:\Windows\System32\drivers\etc\hosts:
11.222.333.44 joomla.dev 11.222.333.44 www.joomla.dev
Для работы сайта могут понадобиться дополнительные расширения PHP. Установите их:
apt-get install php7.0-curl php7.0-bz2 php7.0-mcrypt php7.0-gd
Перезагрузите Nginx и PHP, чтобы изменения вступили в силу:
/etc/init.d/nginx restart /etc/init.d/php7.0-fpm restart
Загрузите архив последней версии Joomla! CMS в папку временных файлов из официального репозитория GitHub
cd /tmp
wget https://github.com/joomla/joomla-cms/releases/download/3.5.1/Joomla_3.5.1-Stable-Full_Package.tar.gz -O joomla.tar.gz
Распакуйте архив в директорию домашнего каталога нового пользователя. Обратите внимание на флаг -C (change), который меняет каталог назначения:
tar xpzf joomla.gar.gz -C /home/fil/www/joomla
Так как операция по разархивированию производилась от имени пользователя root, необходимо сменить владельца вновь созданных файлов. В дальнейшем рекомендуется манипулировать файлами от имени пользователя, которому принадлежат данные файлы:
chown fil:www-data -R /home/fil
Установите Joomla! В настройках БД укажите имя пользователя и пароль созданного вами ранее пользователя MySQL. На этом всё: сервер готов к использованию. Вам следует учитывать, что в настоящий момент единственной защитой от взлома сервера являются пароли. Поэтому пароли должны быть сложными. Существует ряд необходимых требований, связанных с безопасностью, которые настоятельно рекомендуется выполнить: установка и настройка брандмауэра (файрвола), введение базовой авторизации для открытых точек доступа, защита от перебора паролей, настройка политики безопасности приложений. Эти темы я попытаюсь раскрыть в следующей статье. А пока сделайте полную резервную копию Вашей ОС с помощью архиватора tar. Главное — это вовремя сохраниться:
tar cpzf /backup.tar.gz --exclude=/media --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.gz --exclude=/mnt --exclude=/sys /
Дождитесь завершения выполнения процесса архивирования. После чего загрузите резервную копию /backup.tar.gz на ваш локальный компьютер (архив на сервере можете удалить — он занимает место на диске). Впоследствии вы можете восстановить резервную копию на свежеустановленной операционной системе Debian таким образом:
tar xpfz /backup.tar.gz -C /
Желаю приятной работы!