===== Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 7. Перенос с другого хостинга сайта DokuWiki =====
В предыдущих частях [[:unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04|цикла инструкций]] мы произвели базовую настройку веб-сервера [[:unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-nginx-global-params-and-virtual-hosts-for-php-fpm|Nginx]] и настроили его взаимодействие с [[:unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-php5-and-php-fpm-for-nginx|PHP-FPM]]. Настало время переноса наших сайтов со старого хостинга на подготовленную серверную площадку.
Начнём мы, пожалуй, с переноса вики-сайта на движке [[:dokuwiki|DokuWiki]], так как он по своей архитектуре является самым простым и не требует достпа к базе данных [[:mysql|MySQL]].
==== Настройка виртуального хоста Nginx ====
Прежде чем, копировать со старого хостинга файлы сайта **DokuWiki**, выполним настроку виртального хоста **nginx** таким образом, чтобы сузить права доступа к некоторым файлам, специфичным для **DokuWiki**:
sudo nano /etc/nginx/sites-available/wiki.mydomain.ru
Пример настроенного конфигурационного файла виртуального хоста для **DokuWiki**:
server {
server_name wiki.mydomain.ru;
listen 80;
autoindex off;
client_max_body_size 15M;
client_body_buffer_size 128k;
index doku.php;
access_log /var/log/nginx/access.wiki.mydomain.ru.log;
error_log /var/log/nginx/error.wiki.mydomain.ru.log;
root /var/www/html/wiki;
location / {
try_files $uri $uri/ @dokuwiki;
}
location ~ ^/lib.*\.(gif|png|ico|jpg)$ {
expires 30d;
}
location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }
location ~ /\. { access_log off; log_not_found off; deny all; }
location ~ ~$ { access_log off; log_not_found off; deny all; }
location @dokuwiki {
rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
rewrite ^/(.*) /doku.php?id=$1 last;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm-wiki.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location ~ /(data|conf|bin|inc)/ {
deny all;
}
}
После изменения конфигурации виртуального хоста перезапустим **nginx**:
sudo service nginx restart
\\
==== Копирование файлов DokuWiki на веб-сервер ====
C помощью утилиты **scp** копируем со старого хостинга каталог с архивом сайта **DokuWiki** в домашний каталог текущего пользователя на нашем веб-сервере.
Затем копируем архив в [[:unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-nginx-global-params-and-virtual-hosts-for-php-fpm|ранее поготовленную]] корневую папку виртуального хоста **nginx**, переходим в этот каталог и выполняем распаковку архива с последующим его удалением.
sudo cp ~/wiki-backup.tgz /var/www/html/wiki/
cd /var/www/html/wiki/
tar xzf wiki-backup.tgz
sudo rm wiki-backup.tgz
\\
==== Настройка прав доступа к файлам DokuWiki ====
Теперь нам необходимо настроить разрешения на доступ к файлам **DokuWiki** на уровне файловой системы.
Общую информацию о настройке разрешений можно найти в документе [[https://www.dokuwiki.org/install:permissions|DokuWiki.org - Setting up file permissions]]
Установим рекурсивно в качестве владельца для всех файлов и каталогов вики-сайта пользователя, от имени которого работает пул **php-fpm**, обслуживающий виртуальный хост сайта (этого пользователя и соответсвующую ему групп мы [[:unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-php5-and-php-fpm-for-nginx|задали ранее]]):
sudo find /var/www/html/wiki/ -exec sudo chown -R www-pool-wiki {} \;
Такая конструкция изменения атрибутов файлов используется не просто.
Она позволяет установить нужные атрибуты на все файлы, в том числе и скрытые, типа **.htaccess**
За счёт вызова **sudo** для каждого файла/каталога выполнение команды может занять продолжительное время.
По аналогии назначим для всех файлов основную группу пользователя, от имени которого работает пул **php-fpm**:
sudo find /var/www/html/wiki/ -exec sudo chgrp -R www-pool-wiki {} \;
Рекурсивно установим права на все файлы и каталоги сайта c правом для записи только для владельца (пользователя, от имени которого работает пул **php-fpm**):
sudo find /var/www/html/wiki/ -type d -exec sudo chmod 0755 {} \;
sudo find /var/www/html/wiki/ -type f -exec sudo chmod 0644 {} \;
На этом всё.\\
Осталось только проверить работу сайта через веб-браузер.
\\
==== Дополнительные источники информации ====
* [[https://www.dokuwiki.org/install:nginx|DokuWiki.org - DokuWiki with nginx on Ubuntu Linux 12.04 and newer]]
* [[https://www.dokuwiki.org/security|DokuWiki.org - Security]]
* [[https://www.nginx.com/resources/wiki/start/topics/recipes/dokuwiki/|Nginx.com - Dokuwiki]]
----
{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 29.03.2016 12:07
{{tag>Linux Ubuntu "Ubuntu 14.04" "14.04 LTS" "Ubuntu Server" "web server" LEMP Nginx "virtual host" vhost PHP-FPM DokuWiki}}
~~DISCUSSION~~