При разработке любого веб-сайта у вас всегда будут разные среды для вашего сайта, количество необходимых вам сред будет зависеть от размера проекта и количества людей, вовлеченных в проект.
Основные среды, которые вы найдете в любом проекте сайта:
- Сервер разработки — разработчики локальной машины для разработки сайта.
- Сервер тестирования — После завершения разработки именно в этом месте проводится все тестирование.
- Сервер тестирования принятия пользователя — где клиент будет просматривать изменения на веб-сайте.
- Производственный сервер — живой сайт.
Две среды, которые вам всегда понадобятся, — это среда разработки и производственная среда. Обычно эти две среды будут доступны только в том случае, если клиенту не нужно просматривать сайт до его запуска. Это означает, что как только разработчик закончит работу над сайтом, он может просто поместить это на рабочий сервер. Обычно они предназначены для самых простых проектов, в которых разработчик может просто протестировать на своем локальном сервере разработки перед запуском.
Если у вас есть клиент, которому необходимо проверить вашу разработку, прежде чем сайт начнет работать, у вас есть сервер приемочного тестирования пользователей (сервер UAT)эта среда должна соответствовать рабочему серверу как можно ближе. Когда разработчик завершит локальное тестирование, он может загрузить сайт на сервер UAT для проверки клиентом . Как только пользователь принял изменения, внесенные разработчиком, сайт может быть перемещен на рабочий сайт .
Для нескольких проектов разработчиков вам понадобится дополнительный тестовый сервер между разработкой и UAT. Вам нужен этот сервер, потому что, поскольку разработчик создает веб-сайт и проверяет код для контроля версий, он будет тестировать только в своей собственной среде, со временем эта среда может выйти за рамки других сред разработчиков. После того, как разработчик проверил свой код для контроля версий, он должен развернуть его на тестовом сервере. Именно здесь все разработчики будут продвигать свои изменения, чтобы их можно было протестировать со всеми другими изменениями для разработчиков., После того, как этот сервер станет стабильным и прошедшим тестирование, вы можете отправить эти изменения на сервер UAT, где клиент проверит эти изменения и, если он будет принят, будет отправлен на рабочий сервер.
Мульти Среда с WordPress
Если у вас есть проект WordPress, то вы хотите упростить переключение между различными средами. Самый простой способ — это загрузить на сервер все, что связано с вашим проектом. Это будет означать, что все сделанные вами изменения будут загружены, а не только изменения ваших плагинов или тем. Но если вы загрузите все, вы также загрузите файл wp-config.php, этот файл расскажет WordPress, как подключиться к подчеркивающей базе данных.
Файл wp-config.php — это просто файл PHP, поэтому вы можете изменить его, чтобы получить учетные данные для базы данных в зависимости от того, с какого сервера он обслуживается, просто используя глобальную переменную $ _SERVER для различных сред.
Переменные, которые вам нужно изменить между средами:
- DB_NAME — имя базы данных
- DB_USER — пользователь для подключения к базе данных
- DB_PASSWORD — пароль для подключения к базе данных
- DB_HOST — имя хоста базы данных
- WP_HOME — расположение домашней страницы WordPress
- WP_SITEURL — расположение URL сайта WordPress, в большинстве случаев оно будет таким же, как WP_HOME, в зависимости от того, установлен ли WordPress в подкаталог.
- WP_DEBUG — для отображения ошибок или предупреждений PHP.
- WP_CACHE — для кэширования вывода WordPress.
<?php if( stristr( $_SERVER['SERVER_NAME'], "dev" ) ) { // Dev Environment define( 'DB_NAME', 'project_dev' ); define( 'DB_USER', 'project_dev_user' ); define( 'DB_PASSWORD', 'password' ); define( 'DB_HOST', 'localhost' ); define( 'WP_HOME', 'http://project.dev'); define( 'WP_SITEURL', WP_HOME); // Dev will always want debug on and caching off define( 'WP_DEBUG', true ); define( 'WP_CACHE', false ); } elseif( stristr( $_SERVER['SERVER_NAME'], "test" ) ) { // Test Environment define( 'DB_NAME', 'project_test' ); define( 'DB_USER', 'project_test_user' ); define( 'DB_PASSWORD', 'password' ); define( 'DB_HOST', 'localhost' ); define( 'WP_HOME', 'http://project.test'); define( 'WP_SITEURL', WP_HOME); // Testing will always want debug on and caching off define( 'WP_DEBUG', true); define( 'WP_CACHE', false); } elseif( stristr( $_SERVER['SERVER_NAME'], "uat" ) ) { // UAT Environment define( 'DB_NAME', 'project_uat' ); define( 'DB_USER', 'project_uat_user' ); define( 'DB_PASSWORD', 'password' ); define( 'DB_HOST', 'localhost' ); define( 'WP_HOME', 'http://project.uat'); define( 'WP_SITEURL', WP_HOME); // UAT Environment will always be the same as production so turn off debug and turn on caching define( 'WP_DEBUG', false ); define( 'WP_CACHE', true ); } else { // Production Environment define( 'DB_NAME', 'project_live' ); define( 'DB_USER', 'project_live_user' ); define( 'DB_PASSWORD', 'password' ); define( 'DB_HOST', 'localhost' ); define( 'WP_HOME', 'http://project.com'); define( 'WP_SITEURL', WP_HOME); // Live Environment will always be the same as production so turn off debug and turn on caching define( 'WP_DEBUG', false ); define( 'WP_CACHE', true ); } define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); ?>