Что такое wp config php

One of the most important files of a WordPress installation is the configuration file. It resides in the root directory and contains constant definitions and PHP instructions that make WordPress work the way you want.
The wp-config.php file stores data like database connection details, table prefix, paths to specific directories and a lot of settings related to specific features we’re going to dive into in this post.

  • The Basic wp-config.php File
  • Over Basic Configuration: Editing the File System
  • Features for Developers: Debug Mode and Saving Queries
  • Content Related Settings
  • Allowed Memory Size
  • Automatic Updates
  • Security Settings
  • Other Advanced Settings
  • Lockdown wp-config.php

The Basic wp-config.php File

Содержание

When you first install WordPress, you’re asked to input required information like database details and table prefix. Sometimes your host will set-up WordPress for you, and you won’t be required to manually run the set-up. But when you’re manually running the 5-minute install, you will be asked to input some of the most relevant data stored into wp-config.

Here is a basic wp-config.php file:

// ** MySQL settings - You can get this info from your web host ** //  /** The name of the database for WordPress */  define('DB_NAME', 'database_name_here');    /** MySQL database username */  define('DB_USER', 'username_here');    /** MySQL database password */  define('DB_PASSWORD', 'password_here');    /** MySQL hostname */  define('DB_HOST', 'localhost');    /** Database Charset to use in creating database tables. */  define('DB_CHARSET', 'utf8');    /** The Database Collate type. Don't change this if in doubt. */  define('DB_COLLATE', '');    define('AUTH_KEY',		'put your unique phrase here');  define('SECURE_AUTH_KEY',	'put your unique phrase here');  define('LOGGED_IN_KEY',		'put your unique phrase here');  define('NONCE_KEY',		'put your unique phrase here');  define('AUTH_SALT',		'put your unique phrase here');  define('SECURE_AUTH_SALT',	'put your unique phrase here');  define('LOGGED_IN_SALT',	'put your unique phrase here');  define('NONCE_SALT',		'put your unique phrase here');    $table_prefix = 'wp_';    /* That's all, stop editing! Happy blogging. */

Usually, this file is automatically generated when you run the set-up, but occasionally WordPress does not have privileges to write in the installation folder. In this situation, you should create an empty wp-config.php file, copy and paste content from wp-config-sample.php, and set the proper values to all defined constants. When you’re done, upload your file into the root folder and run WordPress.

Note: constant definitions and PHP instructions come in a specific order we should never change. And we should never add contents under the following comment line:

/* That's all, stop editing! Happy blogging. */

First, come the definitions of database constants you should have received from your host:

  • DB_NAME
  • DB_USER
  • DB_PASSWORD
  • DB_HOST
  • DB_CHARSET
  • DB_COLLATE

Following database details, eight security keys will make the site more secure against hackers. When you run the installation WordPress will automatically generate security and salt keys, but you can change them anytime, adding any arbitrary string. For better security, consider to use the online generator.

$table_prefix variable stores the prefix of all WordPress tables. Unfortunately, anyone knows its default value and this could open WordPress database to a vulnerability, which can be easily fixed by setting a custom value for $table_prefix when running the set-up.
To change table prefix in a working website, you should run several queries against the database, then manually edit the wp-config.php file. If you don’t have access to the database or you don’t have the required knowledge to build custom queries, then you can install a plugin like Change Table Prefix that will rename database tables and field names, and update the config file with no risk.

Note: it’s a good practice to backup WordPress files and database even if you will change the table prefix with a plugin.

So far the analysis has been limited to the basic configuration. But we have at our disposal many constants we can define to enable features, customize and secure the installation.

Over Basic Configuration: Editing the File System

WordPress file system is well known by users and hackers. For this reason, you may consider changing the built-in file structure by moving specific folders in arbitrary locations and setting the corresponding URLs and paths in wp-config file.
First, we can move the content folder by defining two constants. The first one sets the full directory path:

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/site/wp-content' );

The second sets the new directory URL:

define( 'WP_CONTENT_URL', 'http://example.com/site/wp-content' );

We can move just the plugin folder by defining the following constants:

define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/wp-content/mydir/plugins' );  define( 'WP_PLUGIN_URL', 'http://example.com/wp-content/mydir/plugins' );

The same way, we can move the uploads folder, by setting the new directory path:

define( 'UPLOADS', 'wp-content/mydir/uploads' );

Note: All paths are relative to ABSPATH, and they should not contain a leading slash.

When done, arrange the folders and reload WordPress.

It’s not possible to move /wp-content/themes folder from the wp-config file, but we can register a new theme directory in a plugin or a theme’s functions file.

Features for Developers: Debug Mode and Saving Queries

If you are a developer you can force WordPress to show errors and warnings that will help you in theme and plugin debugging. To enable debug mode you just have to set WP_DEBUG value to true, as shown below:

define( 'WP_DEBUG', true );

WP_DEBUG is set to false by default. If you need to disable debug mode, you can just remove the definition, or set the constant’s value to false.
When you’re working on a living site, you should disable debug mode. Errors and warnings should never be shown to site viewers because it can provide valuable information to hackers. But what if you have to debug anyway?
In such situations, you can force WordPress to keep memory of errors and warning in debug.log file, placed in /wp-content folder. To enable this feature, copy and paste the following code in your wp-config.php file:

define( 'WP_DEBUG', true );  define( 'WP_DEBUG_LOG', true );  define( 'WP_DEBUG_DISPLAY', false );  @ini_set( 'display_errors', 0 );

To make this feature work we first need to enable debug mode. Then, setting WP_DEBUG_LOG to true we force WordPress to store messages into debug.log file, while defining WP_DEBUG_DISPLAY to false we hide them from the screen. Finally, we set to 0 the value of PHP variable display_errors so that error messages won’t be printed to the screen. wp-config is never loaded from the cache. For this reason, it is a good place to override php.ini settings.

Note: This is a great feature you can take advantage of to register messages that WordPress would not print on the screen. As an example, when the publish_post action is triggered WordPress loads a script that saves data, then redirects the user to the post editing page. In this situation you can register messages, but not print them on the screen.

Another debugging constant determines the versions of scripts and styles to be loaded. Set SCRIPT_DEBUG to true if you want to load uncompressed versions:

define( 'SCRIPT_DEBUG', true );

If your theme or plugin shows data retrieved from the database, you may want to store query details for subsequent review. The SAVEQUERIES constant forces WordPress to store query information into $wpdb->queries array. These details would be printed adding the following code to the footer template:

if ( current_user_can( 'administrator' ) ) {   global $wpdb;   echo '<pre>';   print_r( $wpdb->queries );   echo '</pre>';  }

For a deeper analysis of this feature, refer to How to Build Efficient Queries in WordPress.

When your website grows up, you may want to reduce the number of post revisions. By default, WordPress automatically saves revisions each 60 seconds. We can change this value by setting a custom interval in wp-config as follows:

define( 'AUTOSAVE_INTERVAL', 160 );

Of course, you can decrease the auto-save interval, as well.
Each time we save our edits, WordPress adds a row to the posts table, so that we could restore previous revisions of posts and pages. This is a useful functionality that could turn into a problem when our site grows big. Fortunately, we can decrease the maximum number of post revisions to be stored, or disable the functionality at all.
If you’d want to disable post revisions, define the following constant:

define( 'WP_POST_REVISIONS', false );

If you’d want to limit the maximum number of revisions, instead, add the following line:

define( 'WP_POST_REVISIONS', 10 );

By default, WordPress stores trashed posts, pages, attachments and comments for 30 days, then deletes them permanently. We can change this value with the following constant:

define( 'EMPTY_TRASH_DAYS', 10 );

We can even disable trash, setting its value to 0, but consider that WordPress will not allow you to restore contents anymore.

Allowed Memory Size

Occasionally you may receive a message like the following:

Fatal error: Allowed memory size of xxx bytes exhausted …

The maximum memory size depends on the server configuration. In case you didn’t have access to php.ini file, you can increase memory limit just for WordPress by setting the WP_MEMORY_LIMIT constant in wp-config file. By default, WordPress try to allocate 40Mb to PHP for single sites and 64MB for multisite installations. Of course, if PHP allocated memory is greater than 40Mb (or 64Mb), WordPress will adopt the maximum value.
That being said, you can set a custom value with the following line:

define( 'WP_MEMORY_LIMIT', '128M' );

If needed, you can set a maximum memory limit, as well, with the following statement:

define( 'WP_MAX_MEMORY_LIMIT', '256M' );

Automatic Updates

Starting from version 3.7, WordPress supports automatic updates for security releases. This is an important feature that allows site admins to keep their website secure all the time.
You can disable all automatic updates by defining the following constant:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Maybe it’s not a good idea to disable security updates, but it’s your choice.
By default, automatic updates do not work with major releases, but you can enable any core updates defining WP_AUTO_UPDATE_CORE as follows:

# Disables all core updates:  define( 'WP_AUTO_UPDATE_CORE', false );    # Enables all core updates, including minor and major:  define( 'WP_AUTO_UPDATE_CORE', true );

Default value is minor:

define( 'WP_AUTO_UPDATE_CORE', 'minor' );

An additional constant disables auto-updates (and any update or change to any file). If you set DISALLOW_FILE_MODS to true, all file edits will be disabled, even theme and plugin installations and updates. For this reason, its usage is not recommended.

Еще по теме:   Как удалить комментарии в Вордпресс?

Security Settings

We can use wp-config file to increase site security. In addition to changes to the file structure we’ve looked at above, we can lock down some features that could open unnecessary vulnerabilities. First of all, we can disable the file editor provided in the admin panel. The following constant will hide the Appearance Editor screen:

define( 'DISALLOW_FILE_EDIT', true );

Note: consider that some plugins could not work properly if this constant is defined to true.

A security feature is Administration over SSL. If you’ve purchased an SSL certificate, and it’s properly configured, you can force WordPress to transfer data over SSL at any login and admin session. Use the following constant:

define( 'FORCE_SSL_ADMIN', true );

Check the Codex if you need more information about Administration over SSL.

Other two constants allow to block external requests and list admitted hosts.

define( 'WP_HTTP_BLOCK_EXTERNAL', true );  define( 'WP_ACCESSIBLE_HOSTS', 'example.com,*.anotherexample.com' );

In this example, we have first disabled all accesses from external hosts, then listed allowed hosts, separated by commas (wildcards are allowed).

Other Advanced Settings

WP_CACHE set to true includes wp-content/advanced-cache.php script. This constant has effect only if you install a persistent caching plugin.

CUSTOM_USER_TABLE and CUSTOM_USER_META_TABLE are used to set custom user tables other than default wp_users and wp_usermeta tables. These constants enable a useful feature that allows site users to access several websites with just one account. For this feature to work, all installations should share the same database.

Starting from version 2.9, WordPress support Automatic Database Optimizing. Thanks to this feature, setting WP_ALLOW_REPAIR to true, WordPress will automatically repair a corrupted database.

WordPress creates a new set of images each time you edit an image. If you’d restore the original image, all generated sets will remain on the server. You can overwrite this behavior by setting IMAGE_EDIT_OVERWRITE to true, so that, when you restore the original image, all edits will be deleted from the server.

Lockdown wp-config.php

Now we know why wp-config.php is one of the most important WordPress files. So, why don’t we hide it to hackers? First of all, we can move wp-config one level above WordPress root folder (just one level). However, this technique is a bit controversial, so I would suggest adopting other solutions to protect the file. If your website is running on Apache Web Server, you can add the following directives to .htaccess file:

<files wp-config.php>  order allow,deny  deny from all  </files>

If the website is running on Nginx, you can add the following directive to the configuration file:

location ~* wp-config.php { deny all; }

Note: these instructions should be added only after the set-up is complete.

If your website has gone through multiple migrations or you purchased it from someone else, it is recommended that you create a fresh set of WordPress security keys. These keys are a set of random variables that improve encryption of information stored in the user’s cookies. Since WordPress 2.7 there have been 4 different keys: AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, and NONCE_KEY.

By default, they are randomly generated for you. But WordPress actually has a free tool which you can use to generate new random keys. You can then simply update your current keys which are stored in your wp-config.php file.

wordpress security keys
WordPress security keys

Read more about WordPress security keys.

And finally, you should double check and ensure your permissions are hardened on your wp-config.php file. Typically files in the root directory of a WordPress site will be set to 644, which means that files are readable and writeable by the owner of the file and readable by users in the group owner of that file and readable by everyone else. According to the WordPress documentation, the permissions on the wp-config.php file should be set to 440 or 400 to prevent other users on the server from reading it. You can easily change this with your FTP client.

wp-config permissions
wp-config.php permissions

Summary

In this post, I’ve listed a lot of WordPress constant that we can define into wp-config file. Some of these constants are of common usage, and their functions are easy to understand. Other constants enables advanced features that require a deep knowledge of WordPress and site administration.

I’ve listed the most common features, leaving apart some advanced features we may discuss in future posts. If you’d want to explore features and constants not listed here, feel free to start a conversation in the comments below and we’ll dive deep.

kinsta.com

Для того, чтобы установить WordPress, необходимо проделать стандартные действия перед установкой всех движков, таких как WordPress, Joomla, Drupal и т.д. А именно, перед установкой WordPress вы должны:

  1. Прописать в панели управления доменом DNS вашего хостинга (изменения вступят в силу не ранее чем через несколько часов);
  2. В панели управления хостингом создать дополнительный домен (либо это может быть и основной домен, который создается при покупке хостинга);
  3. Создать базу данных MySQL, пользователя базы данных и дать этому пользователю все права для работы с базой данных;
  4. Загрузить самую новую русскую версию WordPress на свой домашний компьютер;
  5. Загрузить архив с WordPress в корневой каталог сайта и распаковать его. Либо вы можете распаковать архив на домашнем ПК, а затем уже загрузить все файлы в корневой каталог сайта. Но это займет больше времени.

Итак, выше описаны стандартные действия для установки движков. Теперь приступаем к установке движка WordPress.

Набираем в адресной строке браузера адрес вашего сайта и попадаем на страницу установку WordPress. Но вот незадача, мы видим сообщение с текстом: «Кажется, файл wp-config.php отсутствует. Перед началом потребуется создать его. Нужна помощь? Пожалуйста. Можно создать файл wp-config.php через веб-интерфейс, но это работает не на всех серверах. Наиболее надёжный способ — создать файл вручную».

Можно создать новый файл wp-config.php и попробовать продолжить установку, но тогда мы получаем следующее сообщение: «Fatal error: Call to undefined function wp() in /home/leclan/public_html/sites/nastroyke/wp-blog-header.php on line 14«. Причина в том, что созданный нами файл конфигурации пустой, а он, перед установкой WordPress уже должен быть заполнен. В этом отличие установки WordPress от установки Joomla, где перед установкой можно было создать пустой файл конфигурации и он заполнился бы в процессе установки Joomla.

Поэтому поступаем иначе. Находим в списке файл wp-config-sample.php (это файл-образец, который служит шаблоном при создании файла wp-config.php), переименовываем его в wp-config.php и вносим изменения (начинающим пользователям рекомендую делать копию файла wp-config-sample.php и переименовывать ее в wp-config.php, в таком случае у вас останется для страховки образец файла конфигурации). На рисунке подчеркнуты те строки, в которые необходимо внести изменения.

Т.е. в файле конфигурации вы должны прописать:

  1. DB_NAME — имя созданной вами базы данных;
  2. DB_USER — имя пользователя которому разрешен доступ к базе данных;
  3. DB_PASSWORD — пароль доступа к базе данных.

Вносим изменения в файл wp-config.php и сохраняем его. Теперь попробуем обновить страницу нашего сайта. Оп ля! Все сработало и появилось окно установки WordPress в котором мы и вводим все необходимые настройки.

Далее нажимаем кнопку Установить WordPress и с удивлением узнаем, что установка WordPress окончена.

Надпись «WordPress установлен. Ожидали больше шагов? Извините, что разочаровали :)» лично меня заставила улыбнуться 🙂

После нажатия кнопки войти, вы попадете на страницу входа в панель управления WordPress.

Дальнейшие действия очевидны, настройка WordPress и написание постов.

Собственно сразу после установки WordPress можно зайти на сайт набрав его доменное имя в строке браузера.

Желаю удачи всем начинающим веб-мастерам.

Евгений Мухутдинов

www.pcbee.ru

(глава из будущей книги для новичков о создании сайта и заработке на нем)

Файл wp-config.php является очень важным для правильной работы WordPress. Я бы даже сказал – самым главным для работы блога на WordPress вообще. Я нисколько не преувеличиваю: я практически не соприкасался в работе с другими файлами, особенно в сателлитах. Поэтому название его — wp-config.php – надо выучить наизусть.

И еще один термин, с которым Вы будете постоянно соприкасаться – корневой каталог, или корень сайта. Что это? Откройте в Total Commander свой сайт. Зайдите в папку public_html и то, что Вы там видите (набор папок и файлов) это и есть корень сайта. Там же, в корне, лежит и нужный нам файл. Не видите? Правильно. Там лежит заготовка для него под названием wp-config-sample.php. Этот файл надо сначала отредактировать, а потом переименовать. Этим сейчас и займемся.

Вот корень сайта (нижняя часть):

редактировать файл wp-config

Рис.1 (все рисунки кликабельны)

Один раз кликаем по этому файлу и нажимаем кнопку «А4 Правка». Открывается блокнот для редактирования NotePad++:

редактировать файл wp-config

Рис.2

Если у Вас открывается обычный Блокнот, который входит в состав Windows, то имейте ввиду, что он совершенно не подходит для редактирования файлов. Вам нужен блокнот с функцией редактора, например, NoteRad++ или Notepad2. Они работают одинаково, но, не вдаваясь в детали, скажу: NotePad++ удобнее, поэтому мы будем пользоваться им. Сейчас Вам следует прервать работу над файлом и установить нужный блокнот. Как это сделать, читайте в ЭТОЙ статье.

Продолжим. Кликаете один раз по файлу wp-config-sample.php и нажимаете кнопку «F4 Правка». Откроется Notepad++ (см. рис. 2).

ВНИМАНИЕ! В нем надо менять только то и только так, как я скажу, иначе будет совсем плохо. Тем более, что сложного там ничего нет, надо только быть внимательным. Опускаем страницу блокнота чуть вниз:

Редактировать файл wp-config

Рис.3

Нам понадобится менять некоторые значения в строчках 21, 24,27 (показаны стрелками) — изменить внести (изменить) название базы данных, указать имя пользователя и пароль.

В строчке 21 нам надо вписать наименование созданной нами базы MySQL. В нашем примере это cl57942_test111. У вас, конечно, будет другое наименование.

В строке 24 – вписать пользователя, его можно взять в информационном письме хостера, у нас это — cl57942.

В строке 27 – вписать пароль базы данных.

Только, когда вписываете изменения, не удаляйте одиночные кавычки, они нужны.

В итоге должно получиться так.

Редактировать файл wp-config

Рис.4

Еще немного опустим страничку блокнота:

Редактировать файл wp-config

Рис.5

Надо изменить ключи аутентификации. Для этого кликните по этой ссылке — . Откроется страница WordPress.org со сгенерированными ключами, которые будут изменяться при каждом обновлении страницы:

Редактировать файл wp-config

Рис.6

Аккуратно копируйте в каждой строчке ту часть, которая расположена между одиночными кавычками и вставляйте скопированное ранее вместо фразы «izmenite eto na unikalnuyu frazu» в соответствующей строке в файле.

Если Вы используете WordPress в официальной редакции, то у Вас картинка на мониторе будет отличаться от рис.5 – будет больше строчек с ключами и т.д. В общем-то делать надо все точно так, только ключи скачивать с другой страницы —

Опускаем страницу еще ниже:

Редактировать файл wp-config

Рис.7

Сначала для облегчения нагрузки на сервер подключаем лайт- перевод, для этого закомментируем (заблокируем) строку 72, а потом раскомментируем (разблокируем) строку 73. Для этого в строке 72 надо поставить 2 косые черты и пробел перед началом строки, а в строке 73, наоборот, убираем косые строки и пробел. Результат виден на скриншоте ниже (см.рис.8).

Что делать тем, у кого эти строки выглядят по другому, точнее нет строки 73 (см.рис.7)? Значит, Вы скачали не WordPress в редакции Lecactus’a, в другой, скорее всего, официальный. Можете этот пассаж про комментирование – раскомментирование пропустить. Ничего страшного не случится, только Ваш WordPress будет работать медленнее. Но лучше всего скачайте WP в редакции Lecactus, пока Вы не увязли с головой в блоггинге :-), а находитесь только в начале пути. Тогда надо будет удалить старый WordPress с хостинга и закачать новый.

Еще по теме:   Каталог WP

Теперь о строке 77. Она управляет автосохранениями, их периодичностью. WordPress, как, например, Word, включает через определенное время автосохранение сделанной Вами работы. Вообще-то это удобно, но дело в том, что Вы-то продолжаете работу, а WordPress останавливается – сохраняет ранее сделанное. А это не очень удобно. По умолчанию период автосохранения стоит 60 сек. Я ставлю период в 300 секунд. 5 минут, по моему, — нормальный период.

Тем, у кого нет такой строчки, надо ее написать. Об этом подробно написано в статье «Как в WordPress изменить период автосохранения»

Теперь следующая строка – 78-ая. Она управляет количеством ревизий. Что это такое? Представьте, что пишите длинную статью прямо в блоге (это возможно) в течении нескольких дней. Написав 1 часть, Вы сохраняете сделанное (это – первая ревизия), сделали 2-ую часть – сохранили (2 ревизия) и т.д. Т.е. каждое изменение в статье, даже не такое глобальное, а просто исправление ошибок, увеличивает количество ревизий.

Все бы ничего, но это значит, что сколько было ревизий, столько вариантов статей хранит Ваш WordPress. Это касается каждой (!) статьи на сайте, а их у Вас может несколько сотен и тысяч. И во столько же раз увеличивается нагрузка на сервер (результат: хостер недоволен), WordPress становится неповоротливым и медленным (клиенты недовольны). Словом, лучше всего их отключить, поставив вместо 5 цифру 0.

В итоге у Вас должно получиться так:

Редактировать файл wp-config

Рис.8

Опять-таки это касается тех, кто пользуется WordPress'ом в редакции Lecactus. Тем у кого официальный WordPress, надо внести небольшое изменение в код. Об этом читайте статью «Как отключить ревизии статей».

БОЛЬШЕ НИЧЕГО В ЭТОМ ФАЙЛЕ НЕ ТРОГАЙТЕ!!!

Внеся изменения, сохраните их. Для этого нажмите на кнопку «Сохранить» в верхнем левом углу:

Редактировать файл wp-config

Рис.9

Сохранив изменения, закрывайте блокнот NotePad++. На мониторе появится Ваш Total Commander и Вы увидите окно:

Редактировать файл wp-config

Рис.10

Нажимаете «Да». Появится новое окно:

Редактировать файл wp-config

Рис.11

Нажимаете «Заменить». Измененный файл закачан на хостинг. Теперь файл wp-config-sample переименовать. Для этого щелкаете ПРАВОЙ кнопкой мыши по файлу и нажимаете «Переименовать»:

Редактировать файл wp-config

Рис.12

Файл приобретет вот такой вид:

Редактировать файл wp-config

Рис.13

Теперь аккуратненько устанавливаете курсор между последней буквой слова sample и следующей за ней точкой. Если точно на нужное место не попали, не расстраивайтесь, воспользуйтесь навигационными клавишами (со стрелочками вверх-вправо-влево-вниз, расположены обычно рядом с буквенной клавиатурой – справа от нее).С их помощью установите курсор на нужное место. После этого клавишей «Backspace» убирайте по одной буквы, пока не получится так:

Редактировать файл wp-config

Рис.14

Нажимаете «Enter».Total Commander автоматически исправит наименование файла на хостинге.

Все. Работа сделана. Вы даже не представляете себе, какое великое дело мы сейчас проделали. А действительно, какое? Мы связали наш WordPress с базами данных MySQL и теперь наш сайт может работать! При условии, что прописались DNS, конечно.

Удачи!

P.S. А если DNS еще не прописались, то можете заняться другими полезными вещами, например, подготовкой к будущему ремонту своей квартиры или дома: ведь все равно он рано или поздно будет. Здесь можно пристально посмотреть на подоконники, столешницы и т.д. из искусственного камня, найти где осуществляется или других нужный вам изделий.

Почему я советую поискать производство? Потому что у производителя всегда дешевле (а искусственный камень — не самое дешевое удовольствие) и еще потому, что он лучше всех знает особенности своих изделий и может посоветовать что-то. Камень-то — он ведь бывает разный!

www.novichkoff.ru

WordPress – это самая популярная CMS для создания блогов и не только. Благодаря огромному количеству бесплатных плагинов и тем (шаблонов) позволяет реализовать практически любые проекты от сайта-визитки до новостного портала и даже интернет-магазина. Данный движок абсолютно бесплатный, простой в установке, настройке и управлении, имеет открытый исходный код, отличную техподдержку и понятную документацию, постоянно обновляется, а так же хорошо поддается поисковой оптимизации.

Как установить WordPress?

Конечно проще всего обратиться к спецам и они сделают все в лучшем виде. А можно прочитать данную инструкцию и понять, что в установке WordPress нет ничего сложного.

Скачиваем дистрибутив с WordPress. По этой ссылке доступна свежая русская версия. Распаковываем архив и загружаем на сервер. Для этого соединяемся с сервером, используя любой FTP-клиент и копируем содержимое распакованного архива в корень вашего сайта (обычно в папку public_html или htdocs или www). Обратите внимание – копируем не папку wordpress, а содержимое этой папки.

24_or

После заливки файлов WordPressa на сервер набираем http://mysite.ru/wp-admin/install.php, где mysite.ru – название вашего сайта. Видим сообщение о том, что не создан файл настроек wp-config.php. Здесь есть два варианта: создаем файл вручную (наиболее надежный способ, но о нем ниже) или с помощью программы установки (на некоторых хостингах этот вариант не работает).

25_or

Жмем «Создать файл настроек», затем «Вперед», вводим Имя базы данных, Имя пользователя, Пароль и если нужно Имя хоста (в редких случаях может отличаться от Localhost).

26_or

Нажимаем «Отправить».
Если вы видите «Всё в порядке!..», значит файл настроек успешно создан. Жмете «Запустить установку».
Если на данном этапе появилось сообщение об ошибке — возвращаемся назад и внимательно проверяем правильность заполнения всех полей, а если возникает ошибка при создании файла настроек – значит придется создать файл настроек вручную (об этом чуть позже).

27_or

После запуска установки нужно заполнить еще некоторые поля. Указываем E-Mail, а также Имя пользователя и Пароль для дальнейшего входа в админку (если пароль не указывать программа установки сгенерирует его автоматически). Если хотите впишите Название сайта и поставьте галочку, чтобы сайт мог индексироваться поисковиками (хотя это можно сделать и после установки).

28_or

Жмем «Установить». Несколько секунд и все. На этом установка закончена.

Создание файла настроек wp-config.php вручную

Файл wp-config-sample.php переименовываем в wp-config.php

и открываем его в текстовом редакторе (рекомендую Notepad++).

ВАЖНО! Внося изменения в файлы движка или файлы шаблона, обязательно сохраняйте их в кодировке UTF-8 без BOM. (блокнот Windows для правки файлов WordPress не годится, т.к. при сохранении в кодировке UTF-8 добавляет невидимые символы, так называемые BOM, что приводит к различного рода ошибкам)

Находим и изменяем следующие строки:

define('DB_NAME', 'database_name_here'); - вместо database_name_here вписываем название созданной базы данных  define('DB_USER', 'username_here'); - вместо username_here вписываем имя пользователя  define('DB_PASSWORD', 'password_here'); - password_here меняем на свой пароль к базе  define('DB_HOST', 'localhost'); - в 99% менять не нужно, но есть исключения, когда адрес хоста отличается от localhost (этот момент можно уточнить в службе в поддержки хостинга).

Далее для повышения безопасности рекомендуется изменить следующие строки:

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', 'впишите сюда уникальную фразу');

Здесь пишем любую абракадабру между апострофами или чтобы ускорить процесс заходим на специальный сервис WordPress, копируем оттуда сгенерированные строки, и вставляем их вместо имеющихся.

Сохраняем файл.

Далее в браузере набираем http://mysite.ru/wp-admin/install.php и производим установку WordPress, как описано выше.

htmlcss.ru

Первое: бэкап!

Береженого бог бережет: сделайте резервную копию, прямо сейчас! Используйте встроенный экспорт страницы или используйте плагин, или сделайте бэкап через phpMyAdmin, но всегда оставляйте себе возможность отменить сделанное при настройке вашего сайта.

Ваши манипуляции могут повлиять на базу данных, но они не сделают ничего с какими-либо файлами кроме файла, с которым вы будете работать, так что сделайте бэкап wp-config.php, но если вы не делали копию ваших файлов больше, чем месяц, я бы посоветовал сделать это тоже. Частые бэкапы — это всегда хорошо.

Готовы? Поехали!

Скорость: Отключите сохраненные версии… Сейчас!

Функция сохранения версий записей включена по умолчанию, но может привести к значительному «раздуванию» базы данных. Сохраненные версии существуют для того, чтобы вы могли откатиться к предыдущей версии записи, если вам нужно. Если вы не планируете использовать сохранение версий чтобы проверять «ранние версии» ваших записей, вам точно следует отключить эту возможность, добавив этот код в wp-config.php:

define('WP_POST_REVISIONS', false );

Тем не менее, если вас устраивают версии, но вам не нужно бесконечное количество копий ваших измененных записей, вы можете ограничить количество сохраненных версий для каждого поста с помощью этой строки кода:

define('WP_POST_REVISIONS', 2 );

Скорость: Установите домен Cookie

Если вы обрабатываете статический контент (например, загрузки медиа) поддоменом, хорошей идеей будет установить «cookie domain«. Если вы сделаете это, cookies не будут отправляться каждый раз, когда запрашивается статический контент.

define('COOKIE_DOMAIN', 'www.yourwebsite.com');

Совет: чтобы обрабатывать медиа загрузки поддомена, просто укажите в последних двух текстовых полях на странице Media Options путь (например, /home/myblog/public_html/mysubdomain) и URL (например http://mysubdomain.myblog.com/) вашего поддомена.

Скорость: Измените метод файловой системы

Если вы часто устанавливаете, обновляете или удаляете ваши плагины и темы, очень вероятно, что вы ненавидите ввод вашего FTP пароля каждый раз, когда вы что-то делаете. Приведенный ниже код упрощает это для вас, заставляя файловую систему использовать прямой запрос через PHP — другими словами, вам больше не нужно будет вводить FTP данные авторизации.

define('FS_METHOD', 'direct');

Пожалуйста, обратите внимание, что это может работать не со всеми хостинг-провайдерами, и даже если сработает, может вызвать проблемы с безопасностью на плохо настроенном хостинге. Так что убедитесь, что вы используете его на хорошем сервере.

Безопасность: Запрет доступа к файлу wp-config.php

Этот трюк требует редактирования не файла wp-config.php, а файла .htaccess в вашей корневой папке. Фактически он запрещает злоумышленникам загружать yourblog.com/wp-config.php через браузер:

# protect wpconfig.php  <files wp-config.php>   order allow,deny   deny from all  </files>

Просто добавьте это в ваш .htaccess файл и все готово!

Безопасность: SSL в панели администратора

SSL на вашем сервере включен? Отлично! Вы можете заставить WordPress использовать безопасное соединение при авторизации с помощью этой строки кода:

define('FORCE_SSL_LOGIN', true);

И если вы очень подозрительны в плане безопасности (что на самом деле хорошо), вы можете заставить WordPress использовать SSL на каждой странице администратора, чтобы все, что вы делаете там, делалось через шифрованное соединение:

define('FORCE_SSL_ADMIN', true);

Дополнительную информацию о том, как настроить SSL, вы можете найти в WordPress Codex на странице Administration Over SSL.

Безопасность: Изменение префикса базы данных

Если у WordPress есть дыра в безопасности, которая позволяет злоумышленникам использовать метод взлома, известный как «SQL инъекция«, они могут легко использовать стандартные префиксы таблиц вашей базы данных WordPress чтобы удалить их. Но если у вас префиксы таблиц отличные от стандартных (wp_), они не смогут их угадать, не так ли?

Так что, устанавливая новый сайт WordPress, смените значение по умолчанию на странице установки или смените следующую строку в файле wp-config.php:

$table_prefix = 'wooh00yeah_';

Внимание: Если вы хотите заставить это работать на существующем сайте, вы не можете просто изменить префикс в файле wp-config.php — вы получите ошибки соединения с базой данных. Вам нужно использовать плагин, который изменит файл wp-config.php и таблицы базы данных, и некоторые значения внутри таблиц. Я рекомендую плагин DB Prefix Change.

Безопасность: Добавьте ключи безопасности… Сейчас!

Давайте просто прочтем в WordPress Codex:

Простыми словами, секретный ключ — это пароль с элементами, которые усложняют подбор достаточного количества вариантов для взлома. Пароль типа «пароль» или «тест» простой и может быть легко взломан. Чтобы подобрать случайный, непредсказуемый пароль типа «88a7da62429ba6ad3cb3c76a09641fc» потребуются годы.

Это одна из самых необходимых мер безопасности для WordPress — и это просто копирование и вставка случайно сгенерированного на этой странице контента в ваш файл wp-config.php. Самая сложная часть — это вставка стандартных, пустых значение этих констант и удаление их!

Еще по теме:   Как установить Wordpress Beget?

Другое: Изменение интервала автосохранения

Если вы иногда работаете над вашей записью 4 часа, вас может раздражать, что WordPress автоматически сохраняет запись каждые 60 секунд. Думаю, это не самая плохая штука, но иногда это очень, очень раздражает. В любом случае, если вы хотите установить для интервала автосохранения большее значение, вы можете сделать это, установив значение в файле wp-config.php вот так:

define('AUTOSAVE_INTERVAL', 240 ); // the value should be in seconds!

Другое: Перенесите свой WordPress сайт легко

WordPress полон сюрпризов и это один из них. Если вам когда-то нужно будет перенести свой сайт на другой домен (или новый поддомен, или новую папку), определите эту константу в вашем файле wp-config.php перед переносом ваших файлов и базы данных:

define('RELOCATE',true); // We're not done yet!

После установки этой величины и переноса ваших файлов и базы данных, авторизуйтесь с вашими данными WP на yournewwebsite.com/login.php и после этого проверьте, изменился ли домашний URL на странице Общих настроек. После подтверждения изменений, удалите эту константу из вашего файла wp-config.php. Этот простой трюк в WordPress убережет вас от редактирования базы данных вручную.

Совет: хотя это буквально «переносит» ваш сайт, оно не влияет на жестко закодированные ссылки в вашем контенте. Чтобы изменить их, вы должны использовать плагин типа Search Regex и заменить старые ссылки новыми.

Другое: Отключите редактирование файлов плагина и темы

Если вы веб-дизайнер и используете WordPress для сайтов ваших клиентов, возможно, вы захотите отключить редактирование файлов тем и плагинов, добавив следующую константу:

define('DISALLOW_FILE_EDIT',true);

Более того, вы можете также отключить установку новых тем и плагинов, и их обновление:

define('DISALLOW_FILE_MODS',true);

Просто помните, что обновление темы и плагина часто очень важны, когда они исправляют дыры в безопасности. Так что если вы собираетесь отключить обновление и установку новых плагинов / тем, вам нужно следить за обновлениями другим способом.

Другое: Включение WP_DEBUG при разработке

Это просто: если вы разрабатываете плагин или тему, хорошо будет включить возможность отладки в WordPress чтобы видеть, какие уведомления и предупреждения вы получаете:

define('WP_DEBUG',true);

Иногда это просто замечательно, видеть, какие простые ошибки вы можете сделать при разработке!

Заключение

Мы выбрали 11 отличных трюков и советов для ваших сайтов на WordPress, но трюки для файла wp-config.php, конечно, не ограничиваются этими. У вас есть хорошие советы? Поделитесь ими в комментариях!

hostenko.com

Административная зона любого веб-приложения давно стала излюбленной мишенью для хакеров и её безопасность чрезвычайно заботит разработчиков. Это касается и WordPress — при сустановке нового блога система создает аккаунт администратора с уникальным случайно сгенерированным в реальном времени паролем, чем блокирует всеобщий доступ к настройкам системы, контролируя его c помощью страницы авторизации.

Эта статья сфокусирована на вопросах усиления безопасности WordPress — как административной панели, так и настроек блога, подразумевая все содержимое папки «wp-admin», которое отображается только после авторизации. Мы сознательно выделили фразу "после авторизации" — вы должны четко осознавать, что только один простой запрос отделяет «злого хакера» и админку всего вашего блога или сайта! А последняя защищена настолько сильно, насколько мощный пароль вы выбрали.

gilt-zu-schuetzen-administrationsbereich-in-wordpress

Чтобы в разы усложнить задачу взломщиков, мы предлагаем набор операций, которые вы можете выполнить вручную. Эти решения не гарантируют 100% защиту, но с их помощью вы заметно улучшите безопасность вашего блога.

1. Переименуйте папку wordpress.

Начиная с версии 2.6, стало возможным изменять путь к папке wp-content. К сожалению это до сих пор неприменимо к папке wp-admin. Думающие о безопасности блоггеры смирились с этим и стали надеяться, что это станет возможным в будущих версиях. Пока этого не случилось, предлагаем воспользоваться следующим альтернативным решением проблемы. После распаковки архива с файлами WordPress, вы увидите папку «WordPress» — переименуйте папку (в идеале во что-то непонятное вроде "wordpress_live_Ts6K") и после этого настройте соответственным образом файл wp-config.php, который находится в корневой директории.
Что нам даст это изменение?

  • Во-первых, все файлы WordPress не будут смешаны с другими файлами в корне сайта, таким образом мы повысим ясность корневого уровня.
  • Во-вторых, множество копий WordPress может быть установлено параллельно в папки с разными именами, исключая их взаимодействие, что делает это идеальным для тестирования
  • Третье преимущество напрямую касается безопасности: административная зона (и весь блог в целом) больше не находится в корневой папке и для проведения каких-либо действий по взлому сначала ее нужно будет найти. Это проблемно для людей, но что касается ботов — вопрос времени.

mehrere-installationen-in-einem-root-verzeichnis
Несколько установленных версий в root-каталоге — это возможно!

Примечание: Если системные файлы WordPress больше не в корневой директории, и имя папки инсталяции изменено в соответствии с рекомендациями, описанными выше, блог будет все равно доступен по адресу wp-config.ru. Почему? Зайдите в раздел «Общие настройки (General settings)» вашего блога и введите в поле «WordPress address (URL)» реальный адрес блога на сервере, как показано в примере:

wordpress_wordpress_address
Адрес блога должен быть красивым и ненавязчивым

Это позволит блогу отображаться по красивому виртуальному адресу.

2. Усовершенствуйте файл wp-config.php

Конфигурационный файл WordPress wp-config.php содержит в себе некоторые настройки сайта и информацию для доступа к базе данных. Также там другие настройки, касающиеся безопасности (они представлены в списке ниже). Если таких значений в этом файле нет, или же имеются только установленные по умолчанию, вам необходимо, соответственно, добавить или изменить их:

  • Ключи безопасности: начиная с версии 2.7, в WordPress есть четыре ключа безопасности, которые должны быть правильно установлены. WordPress спасает вас от необходимости выдумывать эти строки самому, автоматически генерируяправильные ключи с точки зрения безопасности. Вам просто нужно вставить ключи в соответствующие строки файла wp-config.php. Эти ключи являются обязательными для обеспечения безопасности вашего блога.
  • Префикс таблицы заново установленного WordPress блога не должен быть стандартным «wp_» Чем больее сложным будет значение префикса, тем менее вероятна возможность несанкционированного доступа к таблицам вашей MySQL базы данных. Плохо: $table_prefix = ‘wp_’;. Намного лучше: $table_prefix = ‘wp4FZ52Y_’; Не стоит бояться забыть это значение — вам необходимо ввести его только один раз, больше оно вам не понадобится.
  • Если у вас на сервере доступно SSL шифрование, рекомендуется включить его для защиты административной зоны. Это можно сделать, добавив следующую команду в файл wp-config.php: define(‘FORCE_SSL_ADMIN’, true);

Также вы можете регулировать другие системные настройки в конфигурационном файле. Четкий и исчерпывающий список доступных настроек доступен на странице Кодекса

wordpress_authentication_unique_keys
Не пренебрегайте установкой правильных ключей безопасности!

3. Переместите файл wp-config.php

Также начиная с версии 2.6, WordPress позволяет перемещать файл wp-config.php на высший уровень. По причине того, что этот файл содержит в себе намного более важную информацию, чем какой либо другой, и потому что всегда намного сложнее получить доступ к корневой папке сервера, имеет смысл хранить его не в той же директории, где и остальные файлы. WortdPress автоматически обратится к высшей папке в поиске файла wp-config.php. Любые попытки пользователей самим настроить путь бесполезны.

4. Защитите файл wp-config.php

Не все ISP серверы позволят вам передавать данные на более высокие уровни, чем корневая директория. Другими словами, не у всех хватит прав для осуществления предыдущего шага. Или по другим причинам: например, если у вас несколько блогов, при определенной структуре папок у вас не получится положить в корень все файлы, так как их имена будут совпадать для каждого из блогов. В этом случае мы можем запретить доступ к файлу wp-config.php извне при помощи файла .htaccess. Вот код для этого:

# protect wpconfig.php  

<files wp-config.php> Order deny,allow deny from all

Очень важно убедиться, что файл .htaccess находится в той же директории что и файл wp-config.php.

5. Удалите учетную запись администратора.

Во время процесса установки WordPress создает учетную запись администратора с ником «admin» по умолчанию. С одной стороны это вполне логично, с другой — пользователь с известным ником, т.е. ID — 1, обладающий административными правами, является вполне предсказуемой мишенью для хакеров с их программами подбора паролей. Отсюда следует наш совет:

  • Создайте еще одного пользователя с административными правами и вашим ником.
  • Завершите сеанс работы.
  • Залогиньтесь под новым аккаунтом.
  • Удалите учетную запись "admin".

Если у вас не новый блог и под учетной записью admin вы уже публиковали посты или комментарии, то из предложенных вариантов в момент удаления, выберите пункт «Связать все записи и ссылки с:» и выберите имя нового пользователя:

wordpress_delete_user

Примечание: В идеале желательно чтобы логин нового пользователя отличался от отображаемого имени пользователя в постах, чтобы никто не узнал ваш логин.

6. Выберите сильный пароль.

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

Чаще всего именно пароли являются самым слабым звеном в этой цепи. Почему? Способы выбора пароля у большинства пользователей зачастую необдуманны и беспечны. Многие проведенные исследования показали, что большинство паролей — односложные существующие слова, набранные строчными буквами, которые не сложно подобрать. В программах подбора паролей существуют даже списки самых часто используемых паролей.

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

wordpress_passwort_staerke

Мы рекомендуем использовать как минимум семь символов, комбинировать строчные и прописные и использовать служебные символы такие как! "? $ % ^ & ( ).

7. Защитите папку «wp-admin».

Следуя пословице «две головы лучше одной», существует способ вдвое усилить защиту административной зоны. Защита регулируется файлом .htaccess, который должен находится в папке «wp-admin» вместе с файлом .htpasswd, который хранит логин и пароль пользователя. После обращения к папке, вам нужно будет ввести логин и пароль, но разница в том, что в этом случае авторизация контролируется на стороне сервера, а не силами самого WordPress.

Для того чтобы просто и быстро сгенерировать файлы .htaccess и .htpasswd, воспользуйтесь этим сервисом.

8. Запретите отображение ошибок на странице авторизации.

Страница авторизации WordPress — это дверь в административную зону вашего блога, которая становится доступна после безошибочного прохождения верификации. У каждого пользователя существует бесконечное количество попыток авторизации, и каждый раз по умолчанию услужливый WordPress указывает, в чем именно была ошибка. То есть, если введенный логин окажется неверным — WordPress так и скажет. Это удобно для пользователя, но также и для хакера.

Несложно догадаться, как быстро сокращается вероятность подбора комбинации логина/пароля, когда система указывает что именно введено неверно. Простая строка кода, поможет решить эту проблему, достаточно добавить её в файл functions.php вашей темы:

[php]add_filter(‘login_errors’,create_function(‘$a’, «return null;»));[/php] wordpress_login_screen
Изначальный/измененный вид страницы авторизации.

9. Ограничьте количество неудачных попыток авторизации.

WordPress не ведет статистику авторизаций, как удачных, так и нет. Это очень неудобно для администратора, так как у него нет возможности увидеть были ли попытки несанкционированного доступа, чтобы принять какие-либо меры, если они участятся. Предлагаем два решения: плагины Login LockDown и Limit Login Attempts. После установки они не только ведут лог авторизаций, но также ограничивают количество неудавшихся попыток авторизации, блокируя на определенное время IP пытающегося.

wordpress_login_lockdown

10. Поддерживайте актуальные версии.

И последнее: как правило разработчики WordPress очень быстро реагируют, если находят уязвимости в движке. Поэтому следите за обновлениями и обновляйтесь, когда возможно. Благо сам WordPress оповещает о выходе новой версии. Это касается и плагинов — держите их версии актуальными.

wordpress_plugin_verwaltung

Запомните: меньше значит лучше, когда это касается любых надстроек и аддонов. Как администратор, вы должны удостовериться, что у вас установлены и активны, только те плагины, которые действительно вам нужны. Каждый плагин — это потенциальный риск и угроза безопасности, так как все они разрабатываются посторонними разработчиками.

А вы?

Как вы защищаете свой блог от взлома? Что используете для этого?

Перевод с сайта WordPress для каждого!

habr.com

Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

×
Рекомендуем посмотреть
Adblock
detector