Вики IT-KB

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

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

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


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

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

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


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

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

mysql -u 'blog-usr' -p'MySQLdbBlogPaSSw0rD' 'blog-db' < ~/blogdb.sql

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


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

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

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

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

/etc/nginx/sites-available/blog.mydomain.ru
server {
        listen 80;
        server_name blog.mydomain.ru;
        root /var/www/html/blog;
        index index.php;
        access_log /var/log/nginx/access.blog.mydomain.ru.log;
        error_log /var/log/nginx/error.blog.mydomain.ru.log;
        gzip on;
        gzip_disable "msie6";
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
 
        location ~ /(\.|wp-config\.php|readme\.html|license\.txt) { deny all; }
 
        location ~* /(?:uploads|files)/.*\.php$ { deny all; }
 
        location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
                access_log off;
                log_not_found off;
                expires max;
        }
 
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
 
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm-blog.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

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

sudo service nginx restart


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

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

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


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

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

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

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

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

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

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

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

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

sudo find /var/www/html/blog/ -type d -exec sudo chmod 0755 {} \;
sudo find /var/www/html/blog/ -type f -exec sudo chmod 0644 {} \;
sudo chmod 0600 /var/www/html/blog/wp-config.php


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

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

sudo nano /var/www/html/blog/wp-config.php

Изменим в файле значения переменных DB_NAME,DB_USER,DB_PASSWORD и DB_HOSТ:

wp-config.php
define('DB_NAME', 'blog-db');
define('DB_USER', 'blog-usr');
define('DB_PASSWORD', 'MySQLdbBlogPaSSw0rD');
define('DB_HOST', 'localhost:');

На этом всё.
Осталось только проверить работу сайта через веб-браузер.


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

Обсуждение

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

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