Прежде чем начать установку подготовим www-сервер (у меня это nginx + php-fpm):
$ vi /etc/nginx/sites-available/imp
server {
listen 80;
## Your website name goes here.
server_name imp.tst-amo.net.ua;
## Your only path reference.
#root /home/www/imp;
## This should be in your http block and if it is, it's not needed here.
#index index.php;
return 301 https://tst-amo.net.ua$request_uri;
}
server {
# listens both on IPv4 and IPv6 on 443 and enables HTTPS and HTTP/2 support.
# HTTP/2 is available in nginx 1.9.5 and above.
listen *:443 ssl http2;
#listen [::]:443 ssl http2;
server_name imp.tst-amo.net.ua www.imp.tst-amo.net.ua;
## Your only path reference.
root /home/www/imp;
# Let'sCript
include acme.conf;
include /etc/nginx/conf.d/hsts.conf;
include /etc/nginx/conf.d/ssl.conf;
location = / {
#Учим WordPress работе с красивыми ссылками
index index.php index.html;
try_files $uri $uri/ /index.php?$args;
}
# Не сообщать об отсутствии favicon.ico
location = /favicon.ico {
log_not_found off;
access_log off;
}
# Не сообщать об отсутствии robots.txt
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Запретить доступ к файлам, начинающимся с точки. Например .htaccess
location ~ /\. {
deny all;
}
# Запретить доступ к файлам php в директориях uploads, files.
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Для файлов отключить логирование, установить максимальный срок жизни кэша.
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 90d;
}
set $cache_uri $request_uri;
# Запретить кэширование, если используются POST запросы.
if ($request_method = POST) {
set $cache_uri 'null cache';
}
if ($query_string != "") {
set $cache_uri 'null cache';
}
# Запретить кэширование при доступе к служебным скриптам.
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.p
hp|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
set $cache_uri 'null cache';
}
# Запретить кэширование, если используются cookie.
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
set $cache_uri 'null cache';
}
# Отдавать кэш.
location / {
try_files /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php?$args ;
}
# Для файлов php отдавать обработку FASTCGI серверу.
location ~ [^/]\.php(/|$) {
root /home/www/imp;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
$ sudo ln -s /etc/nginx/sites-available/imp /etc/nginx/sites-enabled/ $ sudo nginx -t $ sudo nginx -s reload $ sudo vi /etc/php-fpm.d/imp.tst-amo.net.ua.conf
[imp.tst-amo.net.ua] listen = /var/run/php-fpm/imp.tst-amo.net.ua.sock listen.mode = 0666 user = nginx group = www-data chdir = /home/www/imp ; В зависимости от нагрузки меняем параметры pm = dynamic pm.max_children = 20 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 15 pm.max_requests = 500 request_slowlog_timeout = 3s slowlog = /var/log/php-fpm/php-slow_www.log ; Default Value: clean env env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp
$ sudo service php-fpm reload
Создаем каталог для нашего сайта:
$ sudo mkdir /home/www/imp $ sudo chown -R nginx:www-data /home/www/imp/ $ sudo chmod -R 755 /home/www/imp/ $ cd /home/www/imp
Загружаем последнюю версию системы управления контентом из официального сайта:
$ wget -c http://wordpress.org/latest.tar.gz
Распаковываем содержимое архива в текущую папку:
$ tar -xzvf latest.tar.gz
Копируем файлы WordPress из текущей директории wordpress в каталог /home/www/imp/:
$ rsync -av wordpress/* /home/www/imp/
Создаем БД для сайта:
$sudo mysql -u root -p
Введите пароль суперпользователя, а затем по очереди выполняйте такие команды для создания базы данных, пользователя и установки для них правильных привилегий:
mysql> CREATE DATABASE imp; mysql> CREATE USER 'imp'@'localhost' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON imp.* TO 'imp'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> EXIT;
Заходим на наш сайт и начинаем установку:
https://tst-amo.net.ua/imp
Добавим возможность работы по FTP (за это у меня отвечает ProFTPd)
# adduser imp -s /sbin/nologin -d /home/www/imp # usermod -aG www-data imp # ftpasswd --passwd --name=imp --change-password # proftpd -t # service proftpd reload # ln -s /home/www/imp /home/
Проверяем.

