Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:move-phpbb-site-to-new-hosting

Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 9. Перенос с другого хостинга сайта phpBB

В этой части мы рассмотрим порядок переноса со старого хостинга на наш веб-сервер на стеке LEMP сайта на движке phpBB. Так как этот сайт потребует для своей работы базу данных MySQL, первым делом выполним восстановление данных в ранее созданную пустую БД из файла дампа (*.sql) сделанного на старом хостинге.


Восстановление базы данных MySQL

Произведём восстановление резервной копии (дамп БД в виде sql-файла) в существующую пустую БД командой вида:

mysql -u 'forum-usr' -p'MySQLdbForumPaSSw0rD' 'forum-db' < ~/forumdb.sql

Как наверное понятно, мы выполняем восстановление базы данных не от имени mysql-пользователя root, а от имени mysql-пользователя, которому мы ранее дали права к этой БД, так как его прав для этой операции вполне достаточно.


Настройка виртуального хоста Nginx

Прежде чем, копировать со старого хостинга файлы сайта phpBB, выполним настроку виртального хоста nginx таким образом, чтобы сузить права доступа к некоторым файлам, специфичным для phpBB:

sudo nano /etc/nginx/sites-available/forum.mydomain.ru

Какиой бы не была сделана конфигурация виртуального хоста, необходимо позаботиться о закрытии прямого доступа с помощью параметров в секциях location {} к каталогам cache/, files/, store/ и файлам .htaccess, config.php

Пример конфигурационного файла виртуального хоста nginx можно найти в каталоге с файлами phpBB - docs/nginx.sample.conf

Приведу пример настроенного конфигурационного файла виртуального хоста для сайта форума phpBB3 по условиям нашего цикла инструкций:

/etc/nginx/sites-available/forum.mydomain.ru
server {
        listen 80;
        server_name forum.mydomain.ru;
        root /var/www/html/forum;
        index index.php index.html index.htm;
        access_log /var/log/nginx/access.forum.mydomain.ru.log;
        error_log /var/log/nginx/error.forum.mydomain.ru.log;
 
        location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|store) {
                deny all;
                return 403;
        }
 
        location ~ /\.svn|/\.git|/\.ht {
                deny all;
        }
 
        location ~* \.(gif|jpe?g|png|css)$ {
                expires   30d;
        }
 
        location / {
                if (!-e $request_filename) {
                rewrite ^(.*)$ /app.php;
                }
        }
 
        location ~ \.php$ {
                try_files $uri $uri/ /app.php?$query_string;
                fastcgi_pass unix:/var/run/php5-fpm-forum.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
 
}

После изменения конфигурации виртуального хоста перезапустим nginx:

sudo service nginx restart


Копирование файлов phpBB на веб-сервер

C помощью утилиты scp копируем со старого хостинга каталог с архивом сайта phpBB в домашний каталог текущего пользователя на нашем веб-сервере. Затем копируем архив в ранее поготовленную корневую папку виртуального хоста nginx, переходим в этот каталог и выполняем распаковку архива с последующим его обязательным удалением.

sudo cp ~/forum-backup.tgz /var/www/html/forum/
cd /var/www/html/forum/
tar xzf forum-backup.tgz
sudo rm forum-backup.tgz


Настройка прав доступа к файлам phpBB

Теперь нам необходимо настроить разрешения на доступ к файлам phpBB на уровне файловой системы.

Установим рекурсивно в качестве владельца для всех файлов и каталогов сайта phpBB пользователя, от имени которого работает пул php-fpm, обслуживающий виртуальный хост сайта (этого пользователя и соответсвующую ему групп мы задали ранее):

sudo find /var/www/html/forum/ -exec sudo chown -R www-pool-forum {} \;

Такая конструкция изменения атрибутов файлов используется не просто. Она позволяет установить нужные атрибуты на все файлы, в том числе и скрытые, типа .htaccess

За счёт вызова sudo для каждого файла/каталога выполнение команды может занять продолжительное время.

По аналогии назначим для всех файлов основную группу пользователя, от имени которого работает пул php-fpm:

sudo find /var/www/html/forum/ -exec sudo chgrp -R www-pool-forum {} \;

Рекурсивно установим права на все файлы и каталоги сайта c правом для записи только для владельца (пользователя, от имени которого работает пул php-fpm):

sudo find /var/www/html/forum/ -type d -exec sudo chmod 0755 {} \;
sudo find /var/www/html/forum/ -type f -exec sudo chmod 0644 {} \;

В некоторых источниках можно встретить рекомендацию установки расширенных прав на некоторые каталоги phpBB, примерно таким образом:

cd /var/www/html/forum/
sudo chmod 777 store/ cache/ files/ images/avatars/upload

Однако практика использования описанной в цикле инструкций конфигурации показывает, что такие права для штатной работы форума не нужны.


Подключение скриптов phpBB к БД MySQL

Следующим действием будет настройка одного из конфигурационных скриптов phpBB (config.php) для возможности подключения к ранее восстановленной базе данных MySQL:

sudo nano /var/www/html/forum/config.php

Изменим в файле значения указанных ниже переменных:

config.php
$dbms = 'mysql';
$dbhost = 'localhost';
$dbport = '';
$dbname = 'forum-db';
$dbuser = 'forum-usr';
$dbpasswd = 'MySQLdbForumPaSSw0rD';

Сохраняем изменения в файле и проверяем работу сайта через веб-браузер. Если всё сделано правильно, но возникают ошибки исполнения php-скриптов, из которых понятно, что некоторые скрипты пытаются получить доступ к БД MySQL с параметрами старого хостинга, то возможно нам ещё потребуется выполнить форсированную очистку кэша phpBB


Дополнительные источники информации

Обсуждение

Ваш комментарий:
 

unix-linux/ubuntu/ubuntu-14-04-lts-trusty-tahr/how-to-install-lemp-web-server-on-ubuntu-14-04/move-phpbb-site-to-new-hosting.txt · Последние изменения: 29.03.2016 21:22 — Алексей Максимов