Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
В предыдущих частях цикла инструкций мы произвели базовую настройку веб-сервера Nginx и настроили его взаимодействие с PHP-FPM. Настало время переноса наших сайтов со старого хостинга на подготовленную серверную площадку. Начнём мы, пожалуй, с переноса вики-сайта на движке DokuWiki, так как он по своей архитектуре является самым простым и не требует достпа к базе данных MySQL.
Прежде чем, копировать со старого хостинга файлы сайта 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
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.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 {} \;
На этом всё. Осталось только проверить работу сайта через веб-браузер.
Автор первичной редакции: Алексей Максимов Время публикации: 29.03.2016 12:07