WordPress как на ладони

Установка WordPress

В 90% случаев полностью установить WordPress можно очень быстро, буквально за 5-10 минут, но это при условии, что у вас уже есть хостинг и домен. Более того, многие хостинги предлагают инструменты для автоматической установки WordPress. В этом руководстве описаны все моменты связанные с установкой. И некоторые из них будут полезны даже пользователям, у которых уже есть опыт установки WordPress.

Здесь будет рассмотрена установка WordPress на удаленный сервер. На локальный сервер все делается аналогично. Итак, поехали...

Подготовка к установке

Прежде чем начать установку:

Обязательно нужно:

  1. Иметь локальный или удаленный сервер, готовый к работе. У вас должен быть доступ к файлам/папкам на сервере. Обычно это shell или FTP доступ, который выдается хостинг-провайдером. Или это панель управления хостингом, которую предоставляет провайдер для управления файлами на сервере и сервером в целом;

  2. Убедиться, что сервер подходит для WordPress. Вообще, 90% провайдеров подходят для WordPress и сильно переживать по этому поводу не стоит.

    Смотрите офф доку по требованиям https://ru.wordpress.org/about/requirements/

    WordPress требует:

    • PHP версии 7.0 или выше.
    • MySQL версии 5.7 или выше. Или mariabd.
    • 50 мегабайт пространства на сервере.
    • 32 мегабайта оперативной памяти на сервере.

    Рекомендую хостинг: beget.ru. Пользуюсь им давно и могу сказать о нем много хорошего. Также хороши: timeweb.ru и Евробайт.

  3. Нужен сам WordPress:

Нужно, но не обязательно:

  1. Нормальный текстовый редактор, чтобы изменять файлы. Рекомендую скачать Sublime Text или Notepad++. Такой простой редактор текста так или иначе пригодится при работе с сайтом.

  2. 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 ваш сайт, появится такое окно:

Создание wp-config.php

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

Создание файла конфигурации

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

Файл wp-cofig.php создан

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

Установка WordPress

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

installwp5

Все, сайт установлен!

Установка за 10 минут

Если не получилось установить первым способом, то используйте эту инструкцию.

Если что-то непонятно или хотите углубиться в подробности, ниже смотрите каждый пункт подробно.

  1. Создайте базу данных на сервере, которую будет использовать WordPress. При создании базы данных вы привязываете к ней пользователя MySQL — он должен иметь все возможные права: изменять/создавать базу данных и таблицы в ней и т.д.

  2. Скачайте WordPress (ZIP архив) и распакуйте его к себе на компьютер;

  3. Откройте распакованную папку wordpress и переименуйте файл wp-config-sample.php в wp-config.php — это основной файл конфигурации WordPress;

  4. Откройте wp-config.php в текстовом редакторе и укажите в нем настройки подключения к базе данных, которую только что создали:

    define('DB_NAME', 'name');         // Имя базы данных
    define('DB_USER', 'username');     // Имя пользователя MySQL
    define('DB_PASSWORD', 'password'); // Пароль доступа к базе данных
  5. Разместите файлы WordPress на сервере. Тут есть несколько вариантов:

    • Установка в корневую директорию — это директория на сервере куда «смотрит» сайт http://example.com/. Скопируйте содержимое распакованной папки wordpress (где лежит файл wp-config.php) в корневую папку сервера (обычно это папка www или public_html).

    • Установка в поддиректорию (http://example.com/blog/). Переименуйте распакованную папку wordpress в название, куда хотите установить WordPress (например blog) и скопируйте эту папку в корневой каталог на сервере. Допустим, вы хотите установить систему в папку blog на сервере, тогда вам нужно переименовать "wordpress" в "blog" и скопировать её в корень сервера.
  6. В браузере перейдите по ссылке на ваш сайт.

    • Если устанавливали в корень сервера, то нужно переходить по ссылке: http://example.com и вас перекинет на http://example.com/wp-admin/install.php;
    • Если устанавливали в отдельную папку (допустим "blog"), то нужно переходить по ссылке: http://example.com/blog и вас перекинет на http://example.com/blog/wp-admin/install.php;
  7. Если все сделано правильно, то вы увидите диалоговое окно установки 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 или MariaDB. Базу данных можно создать разными способами, зависит от того каким сервером вы пользуетесь.

Если вы пользуетесь услугами хостниг-провайдера, то уточните у провайдера, возможно база данных уже создана для вас.

Если базу нужно создавать самостоятельно, то общий принцип действий для всех хостинг провайдеров такой:

  1. Заходите в панель управления хостингом (ссылку на панель вы получили при регистрации у хостера).

  2. Находите где-то в меню раздел «Базы данных» или «MySQL»

  3. Создаете в этом разделе базу данных. Для базы данных нужно указать её название, а также для базы данных указывается её пользователь. Если пользователя нет, то его нужно создать. Для пользователя указываете имя и пароль.

  4. Все данные нужно сохранить: название базы данных, имя пользователя, пароль пользователя. Эти данные будут использоваться в файле 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_';

С версии WP 2.6 файл wp-config.php можно переместить на одну выше. Т.е. если файл находится в каталоге /public_html/wordpress/wp-config.php его можно переместить в каталог /public_html/wp-config.php. WordPress его найдет.

Этап: Размещение файлов (структура файлов)

На этом шаге вам нужно определиться в какую папку размещать файлы. При получении паролей от хостинга, в письме обычно указывается корневой каталог сайта - это та папка куда ведет ссылка вашего сайта: например, 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 в свой собственный каталог выглядит следующим образом:

  1. Создайте новый каталог в корневом каталоге сайта. Назовем его /wp.

  2. Переместите все файлы WordPress в новый каталог /wp.

  3. Верните перемещенные файлы: index.php и .htaccess обратно в корневой каталог.

  4. Откройте файл index.php (из корневого каталога) и измените в нем строку:

    // заменяем такую строку
    require( dirname( __FILE__ ) . '/wp-blog-header.php' );
    
    // на
    require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
  5. Перейдите в «Настройки» сайта. Админка теперь находится по адресу: http://example.com/wp/wp-admin/.

  6. Измените опции:

    • Адрес WordPress (URL) - укажите URL где размещены файлы WordPress: http://example.com/wp.
    • Адрес блога (URL) - укажите URL самого сайта: http://example.com.
  7. Готово!

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

Для такого размещения:

  1. Создайте папку wp и переместите туда все файлы/папки ядра. Это все файлы кроме:

    • wp-content/
    • wp-config.php
  2. Скопируйте файл /wp/index.php в корневую папку сайта.

  3. Откройте скопированный файл /index.php (в корне сайта) и измените в нём путь до файла wp-blog-header.php:

    require __DIR__ . '/wp-blog-header.php';
    // заменяем на
    require __DIR__ . '/wp/wp-blog-header.php';

    Или можно указать путь до оригинального файла index.php:

    require __DIR__ . '/wp-blog-header.php';
    // заменяем на
    require __DIR__ . '/wp/index.php';
  4. Теперь нужно изменить пути до папки контента, потому что мы переместили движок, а папку контента оставили в корне сайта, но 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.

  5. Замена опции siteurl

    Этот шаг нужен только если вы изменяете структуру на уже установленном сайте.

    Нужно изменить значение опции siteurl в таблице базы данных wp_options. Нужно добавить wp в конец URL. Т.е. меняем с http://example.com на http://example.com/wp.

    Сделать это можно в Настройки > Общее в админке - теперь адрес сайта будет отличаться от адреса WordPress (ядра):

    Общие настройки - разные адреса Wp и сайта

    Заметка: после этой смены, вы можете увидеть предупреждение («PHP Warning»), не пугайтесь в этом нет ничего страшного, оно появится один раз и дальше все будет работать как надо!

    Другие варианты изменить siteurl:

    • Через WP-CLI, следующей командой wp option update:

      wp option update siteurl https://example.com/wp
    • Через константу WP_SITEURL. Добавьте константу WP_SITEURL в wp-config.php:

      define( 'WP_SITEURL', 'https://example.com/wp' );

В папке движка 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» (ошибка соединения с базой данных), то:

  1. Проверьте правильно ли указано имя, логи и пароль в файле wp-config.php;
  2. Убедитесь, что созданный пользователь обладает правами на доступ к базе данных WordPress;

Ошибка 2: «Headers already sent»

Если при установке появляются ошибки типа: Headers already sent. Возможно, вы допустили ошибку при редактировании wp-config.php.

Как исправить?

Откройте wp-config.php в текстовом редакторе.

  • Убедитесь, что файл начинается с <?php, и что до этого ничего нет: ни пробелов ни пустых строк.
  • Убедитесь, что последняя или предпоследняя строка не содержит ?>. Если такой символ там есть - удалите его.

Установка через Composer

Такой вид установки может быть удобен по ряду причин. Основная причина - это полный контроль над версией WP через код проекта, а не через админку WP.

Для такой установки, вам нужно создать файл composer.json в корне проекта. В этом файле нужно указать кастомный репозиторий и добавить wordpress как пакет в зависимости:

{
	"name": "wp-yoda/composer-with-wordpress",
	"description": "Example of using Composer for installing WordPress core and plugins",
	"repositories": [
		{
			"type": "package",
			"package": {
				"name": "wordpress/wordpress",
				"version": "6.2.2",
				"type": "wordpress-core",
				"dist": {
					"type": "zip",
					"url": "https://github.com/WordPress/WordPress/archive/refs/tags/6.2.2.zip"
				}
			}
		}
	],
	"require": {
		"wordpress/wordpress": "*"
	},
	"scripts": {
		"post-install-cmd": "cp -r ./vendor/wordpress/wordpress/* ./"
	}
}

Теперь нужно запустить команду composer install.

Подробнее про этот способ читайте на wp-yoda.com: Установка WordPress через Composer.

Права доступа к файлам/папкам (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/ также была доступна для записи. Они вас об этом уведомят.

Подробнее о правах к файлам и папкам WordPress читайте здесь: https://wordpress.org/documentation/article/changing-file-permissions/

Шаред хостинги

Вышесказанное может не относиться к системам виртуального хостинга, которые используют подход "suexec" для запуска двоичных файлов PHP. Это популярный подход, используемый многими хостингами. В таких системах процесс php запускается как владелец самих файлов php, что позволяет упростить конфигурацию и обеспечить более безопасную среду.

В конфигурации suexec правильная схема проста:

  • папки - 755 или 750.
  • файлы - 644 или 640.

Схема подробнее:

  • Все файлы должны принадлежать учетной записи реального пользователя, а не учетной записи пользователя, используемой для процесса httpd.

  • Групповое владение не имеет значения, если только нет особых требований к группам для проверки разрешений процесса веб-сервера. Обычно это не так.
    Все каталоги должны иметь права 755 или 750.

  • Все файлы должны иметь права 644 или 640. Исключение: wp-config.php должен быть 440 или 400, чтобы другие пользователи сервера не могли его прочитать.

  • Никаким каталогам не должно быть присвоено право 777, даже каталогам загрузки. Поскольку процесс php работает как владелец файлов, поэтому достаточно 755.

--

При написании этого руководства я использовал официальный сайт и личный опыт.

6 комментариев
    Войти