Установка WordPress
В 90% случаев полностью установить WordPress можно очень быстро, буквально за 5-10 минут, но это при условии, что у вас уже есть хостинг и домен. Более того, многие хостинги предлагают инструменты для автоматической установки WordPress. Но, когда знаешь - все легко, а начинать с чего-то надо... В этом руководстве описаны все моменты связанные с установкой. И некоторые из них будут полезны даже пользователям, у которых уже есть опыт установки WordPress.
Здесь будет рассмотрена установка WordPress на удаленный сервер. На локальный сервер все делается аналогично. Итак, поехали...
Подготовка к установке
Прежде чем начать установку:
Обязательно нужно:
-
Иметь локальный или удаленный сервер, готовый к работе. У вас должен быть доступ к файлам/папкам на сервере. Обычно это shell или FTP доступ, который выдается хостинг-провайдером. Или это панель управления хостингом, которую предоставляет провайдер для управления файлами на сервере и сервером в целом;
-
Убедиться, что сервер подходит для WordPress. Вообще, 90% провайдеров подходят для WordPress и сильно переживать по этому поводу не стоит. WordPress требует:
- PHP версии 5.2.4 или выше (рекомендуется 5.6).
- MySQL версии 5.6 или выше (рекомендуется 5.6).
- 50 мегабайт пространства на сервере.
- 32 мегабайта оперативной памяти на сервере.
Узнать эту информацию можете у хостинг-провайдера.
Я рекомендую хостинг: beget.ru. Пользуюсь им давно и могу сказать о нем много хорошего. Также хороши: timeweb.ru и Евробайт.
-
Нужен сам WordPress:
-
Последняя русская версия WordPress: https://ru.wordpress.org/latest-ru_RU.zip
- Последняя английская версия WordPress: https://wordpress.org/latest.zip
-
Нужно, но не обязательно:
-
Нормальный текстовый редактор, чтобы изменять файлы. Рекомендую скачать Notepad++. Он так или иначе пригодится при работе с сайтом.
- FTP-клиент - программа для загрузки файлов на сервер. Рекомендую filezilla. Впрочем, можно обойтись без программы, современные хостинг провайдеры предоставляют удобный веб-интерфейс для работы с файлами на сервере.
Установка за 5 минут
Установка без создания wp-config.php файла и других файлов, все делает сам WordPress. Но для такой установки сервер должен разрешать создание и редактирование файлов в папках.
В любом случае, пробуйте сначала установить этим способом, если не получится, то используйте следующий способ, где файл wp-config.php нужно создавать вручную.
Порядок действий:
1. Скачайте WordPress.
Скопируйте все файлы WordPress из скаченного ZIP архива в корневую директорию сервера (в папку сайта). Копируются такие папки/файлы:
wp-admin wp-includes wp-content index.php wp-load.php ...
2. Создайте базу данных на сервере.
Создается она в панели управления сервером. При создании базы данных вы привязываете к ней пользователя MySQL — он должен иметь все возможные права: изменять, создавать базы данных и таблицы в них и т.д.
3. Откройте браузер и перейдите на свой сайт.
Перейдите по ссылке http://example.com, где example.com ваш сайт, появится такое окно:

Кликаем «Вперед» видим такое окно:

Указываем все поля. Пароли вы получили при создании базы данных. Поле «Сервер базы данных» в 99% оставляете «localhost». Жмем «Отправить». Если все поля были указанны правильно, получим:

Это значит что файл конфигурации wp-config.php был создан в корне сайта. Жмем «Запустить установку» и устанавливаем сайт:

На этом этапе WordPress создаст нужные таблицы в базе данных и пользователя - администратора сайта. Нажимаем «Установить WordPress» и видим:

Все, сайт установлен!
Установка за 10 минут
Если не получилось установить первым способом, то используйте эту инструкцию.
Если что-то непонятно или хотите углубиться в подробности, ниже смотрите каждый пункт подробно.
-
Создайте базу данных на сервере, которую будет использовать WordPress. При создании базы данных вы привязываете к ней пользователя MySQL — он должен иметь все возможные права: изменять/создавать базу данных и таблицы в ней и т.д.
-
Скачайте WordPress (ZIP архив) и распакуйте его к себе на компьютер;
-
Откройте распакованную папку wordpress и переименуйте файл
wp-config-sample.php
вwp-config.php
— это основной файл конфигурации WordPress; -
Откройте
wp-config.php
в текстовом редакторе и укажите в нем настройки подключения к базе данных, которую только что создали:define('DB_NAME', 'name'); // Имя базы данных define('DB_USER', 'username'); // Имя пользователя MySQL define('DB_PASSWORD', 'password'); // Пароль доступа к базе данных
-
Разместите файлы WordPress на сервере. Тут есть несколько вариантов:
-
Установка в корневую директорию — это директория на сервере куда «смотрит» сайт http://example.com/. Скопируйте содержимое распакованной папки wordpress (где лежит файл wp-config.php) в корневую папку сервера (обычно это папка
www
илиpublic_html
). - Установка в поддиректорию (http://example.com/blog/). Переименуйте распакованную папку wordpress в название, куда хотите установить WordPress (например
blog
) и скопируйте эту папку в корневой каталог на сервере. Допустим, вы хотите установить систему в папкуblog
на сервере, тогда вам нужно переименовать "wordpress" в "blog" и скопировать её в корень сервера.
-
-
В браузере перейдите по ссылке на ваш сайт.
- Если устанавливали в корень сервера, то нужно переходить по ссылке: http://example.com и вас перекинет на http://example.com/wp-admin/install.php;
- Если устанавливали в отдельную папку (допустим "blog"), то нужно переходить по ссылке: http://example.com/blog и вас перекинет на http://example.com/blog/wp-admin/install.php;
- Если все сделано правильно, то вы увидите диалоговое окно установки WordPress (смотрите выше). Дальше делайте все как там написано и через пару минут сайт будет готов к работе.
А теперь, давайте подробно рассмотрим каждый пункт установки.
Этап: загрузка и распаковка файлов WordPress
Загрузите и распакуйте дистрибутив WordPress к себе на компьютер.
Далее, загрузите все файлы из скаченного архива в корневую директорию сайта на сервере.
Корневая директория — это папке к которой относится URL вашего сайта: http://example.com, обычно такие папки на сервере называются www или public_html.
Копируются такие папки/файлы:
wp-admin wp-includes wp-content index.php wp-load.php ...
Загрузка WordPress сразу на сервер
Если у вас есть shell доступ к веб-серверу и опыт работы с консольными приложениями, вы можете загрузить WordPress напрямую на веб-сервер минуя свой компьютер, используя команду wget: wget https://ru.wordpress.org/latest-ru_RU.zip
. Далее распакуйте дистрибутив используя команду: tar -xzvf latest-ru_RU.zip
.
Дистрибутив WordPress будет распакован в папку wordpress
и будет лежать в той же папке где и архив latest-ru_RU.zip.
Если у вас нет shell доступа, или опыта работы с консольными приложениями, вы можете загрузить WordPress напрямую на веб-сервер используя программу ZipDeploy.
Этап: создание базы данных
Для WordPress нужна база данных MySQL. Базу данных можно создать разными способами, зависит от того каким сервером вы пользуетесь.
Если вы пользуетесь услугами хостниг-провайдера, то уточните у провайдера, возможно база данных уже создана для вас.
Если базу нужно создавать самостоятельно, то общий принцип действий для всех хостинг провайдеров такой:
-
Заходите в панель управления хостингом (ссылку на панель вы получили при регистрации у хостера).
-
Находите где-то в меню раздел «Базы данных» или «MySQL»
-
Создаете в этом разделе базу данных. Для базы данных нужно указать её название, а также для базы данных указывается её пользователь. Если пользователя нет, то его нужно создать. Для пользователя указываете имя и пароль.
- Все данные нужно сохранить: название базы данных, имя пользователя, пароль пользователя. Эти данные будут использоваться в файле
wp-config.php
при установке WordPress.
Чтобы посмотреть на примерах как создается база данных, ниже несколько видео уроков по этому теме:
Создание базы данных в cPanel:
А вот неплохая текстовая инструкция
Создание базы данных в ISPmanager:
Создание базы данных в DirectAdmin:
Создание базы данных в Plesk:
Если у вашего хостинг провайдера другая панель, то делается все по аналогии... В крайнем случае, если ничего непонятно, пишите в тех поддержку хостинга, создать базу данных вам там помогут или сделают это за вас.
Создание базы данных в phpMyAdmin
Если на хостинге нет панели-управления или она есть, но там нельзя создать базу данных, то на всех серверах установлен phpMyAdmin и базу данных можно создать там.
Вот подробное видео как это делать:
Неплохая инструкция в текстовом формате →
Работа с консолью MySQL
Если у вас есть shell доступ к веб-серверу и вы умеете пользоваться командной строкой, а ваш MySQL пользователь имеет права для создания других MySQL пользователей и баз данных, тогда используйте нижеприведенную инструкцию, чтобы создать пользователя и базу данных для WordPress.
$ mysql -u adminusername -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5340 to server version: 3.23.54 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE databasename; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"hostname" -> IDENTIFIED BY "password"; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) mysql> EXIT Bye $
Вам нужно вписать ваши значение в следующие переменные:
adminusername
чаще всего имеет значение root, в том случае, если у вас нет иного аккаунта с более высокими привилегиями.wordpress
илиblog
- подходящие названия для вашей базы данных databasename.wordpress
подхдящее название для имени пользователя wordpressusername.hostname
чаще всего имеет значение localhost. Если вы не знаете значения данной переменной, советуем вам узнать ее у вашего системного администратора.password
пароль - желательно, если он будет включать в себя символы, представленные в верхнем и нижнем регистре, спец. символы, цифры и буквы.
Этап: настройка файла wp-config.php
В дистрибутиве WordPress нет файла wp-config.php, а есть его пример: wp-config-sample.php. Конфиг нужно создавать на основе этого файла, т.е. нужно удалить суффикс '-sample', открыть файл в текстовом редакторе и заменить там следующие строки:
define('DB_NAME', 'putyourdbnamehere'); // Имя базы данных define('DB_USER', 'usernamehere'); // Имя пользователя MySQL define('DB_PASSWORD', 'yourpasswordhere'); // ...и пароль define('DB_HOST', 'localhost'); // 99% эту строку изменять не надо define('DB_CHARSET', 'utf8'); // обычно не изменяется define('DB_COLLATE', ''); // обычно не изменяется
Пояснения каждого параметра:
- DB_NAME
- Имя созданной базы данных.
- DB_USER
- Имя пользователя для WordPress.
- DB_PASSWORD
- Пароль, который вы выбрали для пользователя при создании базы данных.
- DB_HOST
- Имя хоста на котором находится база данных, почти всегда это локальный хост и тут указывается localhost.
- DB_CHARSET
- Кодировка базы данных, почти всегда остается без изменения
- DB_COLLATE
- Тип сравнения символов в указанной в DB_CHARSET кодировке. Чаще всего значение не требует изменений и остается пустым
Ключи аутентификации
Также, обязательно нужно изменить ключи аутентификации. Эти ключи используются в разных местах кода WordPress для защиты от взлома:
define('AUTH_KEY', 'впишите сюда уникальную фразу'); define('SECURE_AUTH_KEY', 'впишите сюда уникальную фразу'); define('LOGGED_IN_KEY', 'впишите сюда уникальную фразу'); define('NONCE_KEY', 'впишите сюда уникальную фразу'); define('AUTH_SALT', 'впишите сюда уникальную фразу'); define('SECURE_AUTH_SALT', 'впишите сюда уникальную фразу'); define('LOGGED_IN_SALT', 'впишите сюда уникальную фразу'); define('NONCE_SALT', 'впишите сюда уникальную фразу');
Чтобы не сочинять ключи самому их можно быстро генерировать по следующей ссылке: https://api.wordpress.org/secret-key/1.1/salt/.
Префикс таблиц
В принципе этот префикс можно не трогать, все будет работать. Указанный в переменной $table_prefix будет использоваться для всех создаваемых таблиц. Изменение этого префикса уникализирует название таблиц и в некоторых случаях может защитить от взлома или хотя бы создать дополнительные сложности.
$table_prefix = 'wp_';
С версии 2.6 файл wp-config.php можно перемещать на одну директорию. Т.е. если файл находится в каталоге /public_html/wordpress/wp-config.php его можно переместить в каталог /public_html/wp-config.php.
Этап: размещение файлов (структура файлов)
На этом шаге вам нужно определиться в какую папку размещать файлы. При получении паролей от хостинга, в письме обычно указывается корневой каталог сайта - это та папка куда ведет ссылка вашего сайта: например, http://example.com/ или http://example.com/blog/. Если вы не понимаете где находится корневой каталог сайта, то узнайте это в тех. поддержке хостинга.
Существует 3 типа размещения файлов WordPress.
1. Файлы WP в корневом каталоге или подкаталоге
Переместите файлы из установочного ZIP архива в каталог на сервере. Перемещайте как есть, т.е. копироваться будет такие файлы:
wp-admin wp-includes wp-content index.php wp-config.php ...
Допустим за УРЛ http://example.com/ отвечает папка на сервере sites/example.com/public_html тогда все эти файлы нужно скопировать в папку public_html и затем перейдя по ссылке http://example.com/ начнется установка WordPress.
Если вы хотите разместить WordPress в подпапку (допустим blog), то вам нужно создать эту папку на сервере и скопировать файлы туда, т.е. копировать будете в: sites/example.com/public_html/blog/. В этом случае, сайт будет находиться по ссылке http://example.com/blog.
2. Файлы WP во вложенной папке
Этот вариант показывает как разместить WordPress в отдельном каталоге, но при этом оставить URL сайта на корневой каталог.
wp wp-admin wp-includes wp-content wp-load.php ... остальные файлы wp-config.php index.php .htaccess
Что получится в итоге: URL сайта будет, например, http://example.com, но файлы самого WordPress при этом будут лежать во вложенной папке wp
, которая находится в папке, которой соответствует наш URL. Т.е. WordPress позволяет установить файлы WordPress в подкаталог, но сайт будет работать в корневом каталоге.
Процесс перемещения WordPress в свой собственный каталог выглядит следующим образом:
-
Создайте новый каталог в корневом каталоге сайта. Назовем его
/wp
. -
Переместите все файлы WordPress в новый каталог
/wp
. -
Верните перемещенные файлы:
index.php
и.htaccess
обратно в корневой каталог. -
Откройте файл index.php (из корневого каталога) и измените в нем строку:
// заменяем такую строку require( dirname( __FILE__ ) . '/wp-blog-header.php' ); // на require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
-
Перейдите в «Настройки» сайта. Админка теперь находится по адресу:
http://example.com/wp/wp-admin/
. -
Измените опции:
Адрес WordPress (URL)
- укажите URL где размещены файлы WordPress:http://example.com/wp
.Адрес блога (URL)
- укажите URL самого сайта:http://example.com
.
- Готово!
3. Файлы ядра WP во вложенной папке
Для удобства можно изменить структуру файлов WordPress так, что файлы ядра (т.е. которые обновляются при обновлении WordPress) будут лежать в отдельной папке, например в папке wp
, а все остальные файлы в корне сайта. Получиться такая структура файлов:
wp wp-admin wp-includes wp-load.php index.php ... остальные файлы ... wp-config.php тут быть не должно, иначе сайт не будет работать! wp-content index.php wp-config.php .htaccess
Для такого размещения:
-
Создайте папку
wp
и переместите туда все файлы/папки, кроме: wp-content и wp-config.php. -
Скопируйте файл
wp/index.php
в корневую папку сайта. После копирования измените контент оставшегося файлаwp/index.php
на<?php // Silence is golden.
. -
Откройте файл
index.php
(в корне сайта) и измените в нём путь до файлаwp-blog-header.php
:// заменяем такую строку require __DIR__ . '/wp-blog-header.php'; // на require __DIR__ . '/wp/wp-blog-header.php';
-
Также, нужно изменить пути до папки контента, потому что мы переместили движок, а папку контента оставили в корне сайта, но WordPress ожидает её рядом с папками wp-admin, wp-includes. Нужно указать где именно находится папка контента. Для этого откройте файл
wp-config.php
и добавьте туда такие строки (добавляйте в начало файла):// определяем директорию wp-content $scheme = ( (! empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443 ) ? 'https' : 'http'; define( 'WP_CONTENT_DIR', __DIR__ .'/wp-content'); define( 'WP_CONTENT_URL', sprintf( "%s/wp-content", $_SERVER['HTTP_HOST'] ? "$scheme://{$_SERVER['HTTP_HOST']}" : '' ) );
Или можно без протокола:
define( 'WP_CONTENT_DIR', __DIR__ .'/wp-content'); define( 'WP_CONTENT_URL', sprintf( "%s/wp-content", $_SERVER['HTTP_HOST'] ? "//{$_SERVER['HTTP_HOST']}" : '' ) );
Путь и URL в итоге должны смотреть на папку wp-content.
Заметка: если вы изменяете структуру на уже установленном сайте, то вам еще нужно изменить значение опции siteurl в таблице wp_options базы данных. Там нужно добить wp, т.е. меняем с http://example.com на http://example.com/wp.
Сделать это быстро можно в Общих настройках в админке - теперь адрес сайта будет отличаться от адреса WordPress:
Заметка: после этой смены, вы можете увидеть предупреждение («PHP Warning»), не пугайтесь в этом нет ничего страшного, оно появится один раз и дальше все будет работать как надо!
В папке движка wp
не должно быть файла wp-config.php. Если он там есть, то будет срабатывать он, а не тот который находится в корне сайта. Это вызовет ошибку и сайт работать не будет.
В корневой папке не должно быть файла wp-settings.php
.
Вообще при переносе он переносится, но может так случится, что вы не переносите файлы, а копируете в новую папку движка wp
(например, когда хочется перестраховаться и сначала все скопировать, проверить все ли работает, а затем удалить, теперь уже, ненужные файлы). Так вот, если в корневой папке будет находится файл wp-settings.php
, то WP будет считать корневую папку папкой ядра, а не нашу новую папку wp
.
Полезная заметка по теме: баг с перемещением папки uploads
Этап: запуск установки WordPress
После того, как база данных создана, файлы скопированы и wp-config.php создан, нужно запустить установку WordPress. При установке будут созданы нужные таблицы в базе данных и будет создан пользователь - администратор сайта.
Чтобы начать установку нужно зайти на сайт (перейти по URL):
- Если файлы WordPress размещены в корневом каталоге сервера, то ссылка будет такая: http://example.com/;
- Если файлы WordPress размещены в подкаталоге, то ссылка будет такая: http://example.com/blog/, где blog название подкаталога.
В обоих случаях вас должно перекинуть на страницу http://example.com/wp-admin/install.php или http://example.com/blog/wp-admin/install.php.
При установке вы будите вводить название сайта и ваш email. Также, при установке вы можете «попросить поисковые системы не индексировать сайт», для этого поставьте галочку напротив такого пункта.
Любую введенную информацию можно изменить в админ-панели в дальнейшем. Нельзя будет изменить только логин пользователя.
Проблемы при установке
Ошибка 1: «error database connection»
Если в процессе установки «вылезла» ошибка: «error database connection» (ошибка соединения с базой данных), то:
- Проверьте правильно ли указано имя, логи и пароль в файле wp-config.php;
- Убедитесь, что созданный пользователь обладает правами на доступ к базе данных WordPress;
Ошибка 2: «Headers already sent»
Если при установке появляются ошибки типа: Headers already sent. Возможно, вы допустили ошибку при редактировании wp-config.php.
Как исправить?
Откройте wp-config.php в текстовом редакторе.
- Убедитесь, что файл начинается с <?php, и что до этого ничего нет: ни пробелов ни пустых строк.
- Убедитесь, что последняя или предпоследняя строка не содержит ?>. Если такой символ там есть - удалите его.
При написании этого руководства я использовал официальный сайт и личный опыт.
Права доступа к файлам/папкам (chmod)
При правильной настройке прав доступа WordPress сможет напрямую создавать файлы, и поэтому он не будет запрашивать учетные данные FTP при обновлении или установке плагинов.
Разрешения будут отличаться от хоста к хосту, поэтому ниже описаны только общие принципы. Тут нельзя охватить все случаи.
Общие правила:
- Все папки должны быть исполняемыми, чтобы был доступ к файлам в них - это 7 или 5.
- Никакие файлы не должны быть исполняемыми - это 6 или 4.
Пример разрешений:
Perms | Perms | |
---|---|---|
7 | r+w+x | все права: чтение / запись / исполнение. |
6 | r+w | чтение / запись |
5 | r+x | чтение / исполнение |
4 | r | чтение |
755 | -rwxr-xr-x | владелец может все (7), группа и другие только читать / исполнять. |
750 | -rwxr-x--- | владелец может все (7), группа читать / исполнять (5), другие ничего. |
666 | -rw-rw-rw- | все могут читать / писать. |
644 | -rw-r--r-- | владелец может читать / писать, другие только читать. |
640 | -rw-r----- | владелец может читать / писать, группа читать, другие ничего. |
600 | -rw------- | только владелец может читать / писать. |
440 | -r--r----- | только владелец и группа могут только читать. |
400 | -r-------- | только владелец может читать. |
Любой файл, которому требуется доступ на запись от WordPress, должен принадлежать пользователю из под которого работает WordPress (php) или этот пользователь WordPress должен находиться в группе, имеющей доступ на запись.
Права нужно ставить так:
-
папки 755, файлы 644
- когда пользователь WordPress (php) тот же под которым вы подключаетесь по FTP и изменяете файлы. папки 775, файлы 664
- когда пользователь WordPress (php) отличается от пользователя под которым вы подключаетесь по FTP и изменяете файлы. При этом пользователь WordPress (php) должен быть в группе, имеющей доступ на запись.
Следующие файлы должны/могут отличаться от базовых настроек:
wp-config.php
- (600) - может изменить / смотреть только владелец и никто другой. Этот файл изначально создается с правами 644, и оставлять его в таком виде опасно./wp-content/cache/
- (755 или 775) - полный доступ./wp-content/uploads/
- (755 или 775) - полный доступ./wp-content/blogs.dir/
(мультисайт) - (755 или 775) - полный доступ.
Если вы хотите использовать встроенный редактор тем, все файлы должны быть доступны для групповой записи.
Некоторые плагины требуют, чтобы папка /wp-content/
также была доступна для записи. Они вас об этом уведомят.
Шаред хостинги
Вышесказанное может не относиться к системам виртуального хостинга, которые используют подход "suexec" для запуска двоичных файлов PHP. Это популярный подход, используемый многими хостингами. В таких системах процесс php запускается как владелец самих файлов php, что позволяет упростить конфигурацию и обеспечить более безопасную среду.
В конфигурации suexec правильная схема проста:
- папки - 755 или 750.
- файлы - 644 или 640.
Схема подробнее:
-
Все файлы должны принадлежать учетной записи реального пользователя, а не учетной записи пользователя, используемой для процесса httpd.
-
Групповое владение не имеет значения, если только нет особых требований к группам для проверки разрешений процесса веб-сервера. Обычно это не так.
Все каталоги должны иметь права 755 или 750. -
Все файлы должны иметь права 644 или 640. Исключение: wp-config.php должен быть 440 или 400, чтобы другие пользователи сервера не могли его прочитать.
- Никаким каталогам не должно быть присвоено право 777, даже каталогам загрузки. Поскольку процесс php работает как владелец файлов, поэтому достаточно 755.