Вступление
Функция WordPress для нескольких сайтов позволяет создавать несколько веб-сайтов из одной установки WordPress. Каждый сайт может иметь отдельную тему, набор плагинов и коллекцию контента (посты и страницы). Это уменьшает накладные расходы на обслуживание и обновление нескольких установок WordPress, позволяя вам размещать несколько сайтов, которые совершенно не связаны друг с другом.
WordPress MultiSite поставляется в двух вариантах: подкаталог или поддомен. В этом уроке мы настроим многосайтовый WordPress для использования поддоменов. Это означает, что сайты, которые мы создаем, будут иметь субдомен веб-адреса, такой как * http: //wp-site.yourdomain.com*. Это можно сопоставить с внешним доменом, таким как * http: //wp-site.net*, чтобы каждый сайт выглядел независимо от внешнего.
Предпосылки
Этот учебник требует от пользователя знания следующего:
Мы будем создавать три сайта WordPress со следующими доменными именами:
-
* Сайт 1: *
-
Домен: * (Основной домен)
Это сайт, который создается при установке WordPress.
-
* Сайт 2: *
-
Внешний домен: *
-
Субдомен: * shoppingsite.example.com
-
* Сайт 3: *
-
Внешний домен: *
-
Субдомен: * companysite.example.com
Первый домен - это основное имя домена, через которое будет установлен WordPress. Убедитесь, что set up DNS для всех трех доменов, чтобы он указывал на IP-адрес Дроплет, который будет размещать WordPress.
Шаг первый - настройка DNS-записей с подстановочными знаками
В этом разделе мы добавим запись с подстановочным знаком DNS для * основного домена *, чтобы в любое время можно было добавлять дополнительные сайты, не требуя отдельных https://www.digitalocean.com/community/tutorials/an-introduction-to -dns-терминология-компоненты-и-концепции [записи]. (В качестве альтернативы вы можете добавить новую запись A для каждого субдомена.)
_ * Примечание: * Это должно быть сделано только для * _primary domain (в этом руководстве). __
Войдите в панель управления DigitalOcean и перейдите в раздел «Сеть». Отредактируйте основной домен и создайте подстановочный знак * A * для этого домена, указывающий на IP-адрес дроплета. Запись подстановочного знака создается путем ввода звездочки (*) в поле ввода имени хоста, как показано на снимке экрана ниже.
изображение: https: //assets.digitalocean.com/articles/wordpress_multisite/add_wildcard_a_record.png [Панель управления DNS - подстановочный знак]
Если вы размещаете DNS своего домена в другом месте, вы должны установить вместо этого запись с подстановочными знаками.
-
Что вы должны увидеть сейчас: *
Запросы DNS для любого * random-sub-domain.examplewp.com * должны возвращать IP-адрес вашей капли.
Шаг второй - установка и настройка стека LEMP
В этом разделе мы установим и настроим Nginx, MySQL и PHP. Подробная статья о https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04 статье о настройке LEMP. стек], на который вы можете ссылаться, если хотите. Этот раздел будет служить быстрой настройкой. Существует также изображение * LEMP в Ubuntu 14.04 * на вкладке * Applications * в разделе * Select Image * при создании капли.
Обновите репозитории и установите Nginx, MySQL, PHP5-FPM и другие необходимые модули PHP.
apt-get update
apt-get install -y nginx mysql-server php5-fpm php5-mysql php5-curl php5-mcrypt php5-gd
Когда сервер MySQL устанавливается, вам будет предложено ввести пароль для пользователя корневой базы данных. Пожалуйста, введите надежный пароль и * не оставляйте его пустым *. Вы введете пароль дважды.
изображение: https: //assets.digitalocean.com/articles/wordpress_multisite/2.png [пароль root MySQL]
Создайте корень документа для Nginx, который будет содержать файлы WordPress. Мы будем использовать в этом уроке.
mkdir
Мы заменим виртуальный хост по умолчанию в Nginx своим собственным, поэтому удалите его символическую ссылку в каталоге * sites-enabled *.
rm /etc/nginx/sites-enabled/default
Создайте новый файл виртуального хоста в каталоге * sites-available *. Этот файл может быть назван как угодно. В нашем примере мы назовем это.
nano /etc/nginx/sites-available/
Отредактируйте этот файл и разместите следующую конфигурацию. Отредактируйте текст, выделенный красным в соответствии с вашей средой. В строке + server_name +
вы должны добавить все три (или более) ваших многосайтовых домена и субдомен подстановочного знака для первого домена.
server {
listen [::]:80 ipv6only=off;
server_name ;
root ;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args ;
}
location ~ /favicon.ico {
access_log off;
log_not_found off;
}
location ~ \.php$ {
try_files $uri /index.php;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
access_log /var/log/nginx/$host-access.log;
error_log /var/log/nginx/wpms-error.log;
}
Если эта Droplet будет содержать только эту установку WordPress, директивы + listen +
и + server_name +
могут быть изменены следующим образом:
listen [::]:80 default_server ipv6only=off;
server_name ;
Использование переменной + $ host +
в директиве + access_log +
создает отдельные файлы журнала для каждого домена, такие как examplewp.com-access.log и shoppingsite.com-access.log. Невозможно использовать такие переменные для директивы + error_log +
, поэтому все ошибки записываются в один файл.
Сохраните этот файл и создайте символическую ссылку на этот файл в каталоге * sites-enabled *.
ln -s /etc/nginx/sites-available/wp-ms /etc/nginx/sites-enabled/wp-ms
Выполните тест конфигурации Nginx и перезапустите, если он вернет * OK *.
service nginx configtest
service nginx restart
Шаг третий - создание базы данных MySQL и пользователя для WordPress
В этом разделе мы создадим базу данных MySQL для WordPress и пользователя с разрешениями только для этой базы данных.
Войдите в командную строку MySQL как пользователь * root *.
mysql -u root -p
Создать базу данных.
CREATE DATABASE ;
Создайте пользователя MySQL и предоставьте разрешения для этой базы данных:
CREATE USER ''@'localhost' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON .* TO ''@'localhost';
Замените слово * пароль * надежным паролем. Сбросьте привилегии и выйдите из командной строки MySQL.
FLUSH PRIVILEGES;
exit
Запишите эти детали, которые понадобятся вам на четвертом шаге.
_ _
* Имя базы данных: *
+
* Пользователь базы данных: *
+ * Пароль базы данных: * _ _
Более подробную информацию о пользователях MySQL можно найти в ths this статье.
Шаг четвертый - Загрузите и установите WordPress
В этом разделе мы скачаем последнюю версию WordPress и установим ее. Это будет для нашего первого сайта, * examplewp.com *.
Скачайте и распакуйте WordPress.
wget http://wordpress.org/latest.tar.gz
tar -xf latest.tar.gz
Переместить извлеченные файлы в корень документа.
mv wordpress/*
Присвойте право владения пользователю + www-data
. Это важно для загрузки мультимедиа и обновления ядра / плагина / темы в WordPress.
chown -R www-data:www-data
Откройте * основной домен * в своем браузере, чтобы начать установку WordPress.
http:///
При необходимости вы можете добавить суффикс «www» к URL. Нажмите кнопку * Создать файл конфигурации *, а затем кнопку * Пойдем! *. Заполните данные базы данных (используйте информацию из третьего шага) и нажмите * Отправить *.
изображение: https: //assets.digitalocean.com/articles/wordpress_multisite/3.png [Детали базы данных WordPress]
В этот момент WordPress установит соединение с базой данных для проверки введенных учетных данных. Как только соединение установится успешно, появится кнопка * Запустить установку *. Нажмите здесь. Заполните форму * Информация, необходимая * для настройки названия вашего сайта, имени пользователя, пароля и адреса электронной почты, а затем нажмите * Установить WordPress *. В целях безопасности рекомендуется выбирать неуниверсальное имя пользователя.
изображение: https: //assets.digitalocean.com/articles/wordpress_multisite/4.png [Экран приветствия WordPress]
Шаг пятый - Включение мультисайтов и создание дополнительных сайтов
В этом разделе мы включим WordPress Multisite и создадим два дополнительных сайта, упомянутых в разделе * Prequisites * этой статьи.
Http://php.net/manual/en/language.constants.php[PHP constant] должен быть определен в файле * wp-config.php *, чтобы включить http://codex.wordpress.org/Tools_Network_Screen Страница [Настройка сети].
Отредактируйте файл * wp-config.php *:
nano wp-config.php
Добавьте следующий код * перед * комментарием `+ / * Вот и все, прекратите редактирование! Приятного ведения блога. * / + `:
/* Multisite settings */
define( 'WP_ALLOW_MULTISITE', true );
Мы будем редактировать этот файл еще несколько раз в течение этого урока. Не стесняйтесь добавлять все новые строки в раздел «+ / * Настройки мультисайта * / +», который мы только что создали.
Сохраните файл. Войдите в админ-панель WordPress и выберите «Инструменты»> «Настройка сети» *. Выберите параметр * Sub-domains *, измените * Название сети * по своему усмотрению и нажмите * Install *.
изображение: https: //assets.digitalocean.com/articles/wordpress_multisite/5.png [Настройка сети WordPress]
Вам будет предложено добавить два блока кода в файлы * wp-config.php * и * .htaccess *. Скопируйте код * wp-config.php *, который выглядит примерно так:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', '');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
Отредактируйте файл * wp-config.php *.
nano wp-config.php
Добавьте эти строки * перед * комментарием `+ / * Вот и все, прекратите редактирование! Приятного ведения блога. * / + `и сохраните его. Код, отображаемый для .htaccess, можно игнорировать, так как Nginx не имеет этого файла.
Выйдите из админ-панели WordPress и войдите снова. От администратора toolbar в левом верхнем углу, перейдите к * Мои сайты> Сетевой администратор> Сайты *.
изображение: https: //assets.digitalocean.com/articles/wordpress_multisite/6.png [Панель инструментов WordPress]
Нажмите кнопку * Добавить новый *, чтобы открыть форму * Добавить новый сайт *. На следующем снимке экрана показаны заполненные данные для торгового сайта в нашем примере. Введенный * адрес сайта * сформирует поддомен этого сайта.
изображение: https: //assets.digitalocean.com/articles/wordpress_multisite/7.png [Создание нового сайта WordPress]
Нажмите * Добавить сайт , и созданный сайт будет доступен через * http: //shoppingsite.examplewp.com.
Повторите эти шаги для создания второго сайта (companysite.examplewp.com в нашем примере).
-
Что вы должны увидеть сейчас: *
Следующие три сайта WordPress:
-
examplewp.com
-
shoppingsite.examplewp.com
-
companysite.examplewp.com
У каждого из них будет свой контент, тема и активный набор плагинов.
Шаг шестой - настройка сопоставления доменов
В этом разделе мы дадим вам возможность использовать отдельное доменное имя для каждого сайта WordPress, загрузив и включив плагин WordPress MU Domain Mapping. Этот плагин позволяет пользователям WordPress Multisite связать свой блог / сайт с другим доменом.
Войдите в свою Droplet через SSH и загрузите плагин WordPress MU Domain Mapping. Сначала установите команду + unzip +
, а затем извлеките плагин.
wget http://downloads.wordpress.org/plugin/wordpress-mu-domain-mapping.latest-stable.zip
apt-get install unzip
unzip wordpress-mu-domain-mapping.latest-stable.zip
Переместите извлеченные файлы в каталог плагинов WordPress.
mv wordpress-mu-domain-mapping wp-content/plugins/
Скопируйте файл * sunrise.php * из каталога плагина в каталог * wp-content *.
cp wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php wp-content/
Отредактируйте файл * wp-config.php * и добавьте следующую строку * перед * комментарием `+ / * Вот и все, прекратите редактирование! Приятного ведения блога. * / + `.
Файл: + wp-config.php
define('SUNRISE', 'on');
Сохраните этот файл и вернитесь в веб-браузер. От панели инструментов WordPress перейдите к * Мои сайты> Сетевой администратор> Плагины *.
Изображение: HTTPS: //assets.digitalocean.com/articles/wordpress_multisite/8.png [Плагины]
Нажмите на ссылку * Активация сети * под плагином * WordPress MU Domain Mapping *. Перейдите в * Настройки> Сопоставление доменов * и внесите изменения в * Параметры домена * следующим образом:
-
Снимите флажок * Удаленный вход *
-
Проверьте * Постоянное перенаправление *
-
Снимите флажок * Перенаправлять страницы администрирования на исходный домен сайта *
изображение: https: //assets.digitalocean.com/articles/wordpress_multisite/9.png [Варианты сопоставления доменов]
Нажмите * Сохранить * после завершения. Эти параметры перенаправляют все запросы на субдомены (например, companysite.examplewp.com) на соответствующие внешние домены (например, companysite.org), включая страницы администрирования (/ wp-admin).
На следующем шаге мы будем сопоставлять доменное имя каждому сайту на основе его идентификатора. Существует много способов найти идентификатор сайта, но для более простого администрирования мы создадим простой плагин WordPress Must-use, который отображает дополнительный столбец идентификаторов на странице * Sites *. ,
Войдите в свою Droplet через SSH и создайте каталог * mu-plugins *.
mkdir wp-content/mu-plugins
Создайте файл PHP внутри этого каталога и вставьте следующий код:
nano wp-content/mu-plugins/wpms_blogid.php
Вы можете точно скопировать этот контент:
<?php
add_filter( 'wpmu_blogs_columns', 'do_get_id' );
add_action( 'manage_sites_custom_column', 'do_add_columns', 10, 2 );
add_action( 'manage_blogs_custom_column', 'do_add_columns', 10, 2 );
function do_add_columns( $column_name, $blog_id ) {
if ( 'blog_id' === $column_name )
echo $blog_id;
return $column_name;
}
function do_get_id( $columns ) {
$columns['blog_id'] = 'ID';
return $columns;
}
В разделе * Сайты> Все сайты * теперь должен отображаться дополнительный столбец идентификаторов.
Изображение: HTTPS: //assets.digitalocean.com/articles/wordpress_multisite/10.png [ID]
Запишите значения идентификаторов для каждого сайта и перейдите на страницу * Настройки> Домены *. Введите идентификатор сайта, а затем внешний домен для сайта. Например, поскольку у companysite есть идентификатор 3, на этой странице * идентификатор сайта * должен быть равен 3, а домен должен быть * companysite.org *.
image: https: //assets.digitalocean.com/articles/wordpress_multisite/11.png [Отображение идентификатора сайта в домен]
Вы можете добавить префикс «www», если хотите установить URL-адрес сайта как * http: //www.companysite.org [www.companysite.org] *. Повторите эти шаги для других доменов. Нажмите * Сохранить * внизу страницы.
-
Что вы должны увидеть сейчас: *
Каждый сайт будет иметь свое собственное доменное имя вместо поддоменов; То есть, введя http://companysite.org в вашем браузере, вы откроете сайт * My Online Company *. Вы можете проверить это сейчас, посетив http://shoppingsite.com и http://companysite.org. Вы должны увидеть изменение названия сайта в верхнем левом углу страницы.
Теперь каждый сайт может поддерживаться отдельно через собственную панель администратора WordPress:
http://examplewp.com/wp-admin/
http://shoppingsite.com/wp-admin/
http://companysite.org/wp-admin/
Обновления ядра / плагинов / тем и установка плагинов / тем должны быть сделаны со страницы сетевого администратора основного домена:
http://examplewp.com/wp-admin/network/