Вики IT-KB

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

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

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


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

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

В предыдущих частях цикла инструкций мы произвели базовую настройку веб-сервера Nginx и настроили его взаимодействие с PHP-FPM. Настало время переноса наших сайтов со старого хостинга на подготовленную серверную площадку. Начнём мы, пожалуй, с переноса вики-сайта на движке DokuWiki, так как он по своей архитектуре является самым простым и не требует достпа к базе данных MySQL.

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

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

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

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

/etc/nginx/sites-available/wiki.mydomain.ru
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 в домашний каталог текущего пользователя на нашем веб-сервере. Затем копируем архив в ранее поготовленную корневую папку виртуального хоста 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 на уровне файловой системы.

Общую информацию о настройке разрешений можно найти в документе DokuWiki.org - Setting up file permissions

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

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 {} \;

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


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

Обсуждение

Уваров АндрейУваров Андрей, 05.06.2016 21:49
>За счёт вызова sudo для каждого файла/каталога выполнение команды может занять продолжительное время.

Проще сделать так:

#Поднимаем права до root

sudo -s

#Выполняем команду, кстати, вместо двух, можно выполнить одну:

find /var/www/html/wiki/ -exec chown -R www-pool-wiki:www-pool-wiki {} \;

> Рекурсивно установим права на все файлы и каталоги сайта c правом для записи только для владельца

Можно заменить одной командой:

chmod -R u=rw,g=r,o=r,a+X /var/www/html/wiki/
Алексей МаксимовАлексей Максимов, 05.06.2016 22:06
Справедливо.
Ваш комментарий:
 

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