Установка сайта на web-хост на примере Joomla!
Создайте пользователя сервера MySQL и базу данных для сайта. Никогда не указывайте пользователя root в конфигурации БД ваших сайтов! В целях безопасности на каждый отдельный сайт необходимо создать отдельного пользователя, который будет иметь доступ только к базе данных этого сайта. Права доступа пользователей различных сайтов не должны пересекаться. Не давайте пользователям БД глобальные привелегии — разрешайте только работу с базой данных отдельного сайта. Для создания базы данных и пользователя выполните в phpMyAdmin следующие действия:
- Перейдите во вкладку «Учётные записи пользователей» с помощью верхнего меню навигации.
- Нажмите на ссылку «Добавить учетную запись пользователя».
- Придумайте имя пользователя БД, введите его в соответствующем поле.
- В качестве имени хоста для повышения степени безопасности выберите «Локальный».
- Сгенерируйте сложный пароль.
- Перепишите имя пользователя и новый пароль.
- Отметьте галочкой «Создать базу данных с таким же именем и предоставить на неё все привилегии».
- Нажмите на кнопку «Вперёд» в правом нижнем углу.
Создайте пользователя операционной системы с помощью консольной команды adduser. Для этого пользователя будет также создан домашний каталог, находящийся в директории /home. В каталоге нового пользователя и должны размещаться файлы web-сайтов. Права на все файлы в домашнем каталоге пользователя должны принадлежать данному пользователю. Флаг --ingroup определяет группу по умолчанию, в которую входит этот пользователь. Если группа не задана, то будет создана новая группа, и её имя будет совпадать с именем пользователя. При создании нового пользователя необходимо будет определить для него пароль и ответить на необязательные вопросы, которые можно пропустить, если ввести пустые значения.
adduser fil --ingroup www-data
Создайте новый пул PHP для пользователя fil. Для этого скопируйте пул по умолчанию, а потом внесите в него изменения:
cd /etc/php/7.3/fpm/pool.d cp www.conf fil.conf
/etc/php/7.3/fpm/pool.d/fil.conf:
; pool name ('www' here) [fil] user = fil group = www-data listen = /run/php/php7.3-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.3-curl php7.3-bz2 php7.3-mcrypt php7.3-gd
Перезагрузите Nginx и PHP, чтобы изменения вступили в силу:
/etc/init.d/nginx restart /etc/init.d/php7.3-fpm restart
Загрузите архив последней версии Joomla! CMS в папку временных файлов из официального репозитория GitHub
cd /tmp
wget https://github.com/joomla/joomla-cms/releases/download/{version}/Joomla_{version}-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. На этом всё: сервер готов к использованию. Желаю приятной работы!