Прежде чем начать установку подготовим 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/
Проверяем.