Запуск нескольких сайтов WordPress на одном сервере Ubuntu

WordPress – популярная система управления контентом (CMS) для быстрого запуска сайтов.

Иногда возникает необходимость запустить несколько сайтов на одном виртуальном выделенном сервере. Данное руководство покажет, как развернуть два отдельных сайта WordPress с разными доменами на одном сервере. Для этого используются виртуальные хосты веб-сервера.

Примечание: Такая конфигурация отличается от multisite.

Требования

Для выполнения инструкций понадобится:

  • Предварительно настроенный сервер Ubuntu 12.04.
  • Два доменных имени; домены должны быть направлены на выделенный сервер.
  • Стек LAMP.

Убедитесь, что сервер готов к запуску сайтов. Для этого откройте браузер и перейдите по каждому домену. На экране должна появиться стандартная страница Apache:

It works!
This is the default web page for this server.
The web server is running but no content has been added, yet.

Если такая страница появилась, значит, изменения DNS ещё не вступили в силу или какие-то настойки выполнены неправильно.

Внимание! Не начинайте выполнять руководство, пока эта ошибка не будет исправлена.

Загрузка WordPress

Откройте домашний каталог на сервере и загрузите в него следующие файлы:

cd
wget http://wordpress.org/latest.tar.gz

Распакуйте и архивные файлы, выполнив следующую команду:

tar xzvf latest.tar.gz

Создание базы данных и пользователя

Теперь нужно создать для каждого сайта отдельную БД и пользователя MySQL. Это необходимо для систематизации и защиты данных.

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

Домен firstsite.com secondsite.com
БД FirstDatabase SecondDatabase
Пользователь БД FirstUser SecondUser
Пароль FirstPassword SecondPassword

Замените эти данные в командах своими данными.

Откройте MySQL с правами администратора:

mysql -u root -p

MySQL запросит root-пароль.

Создайте две БД при помощи команд:

CREATE DATABASE FirstDatabase;
CREATE DATABASE SecondDatabase;

Затем создайте пользователей для этих БД:

CREATE USER FirstUser@localhost;
CREATE USER SecondUser@localhost;

Установите пароль для каждого пользователя:

SET PASSWORD FOR FirstUser@localhost= PASSWORD("FirstPassword");
SET PASSWORD FOR SecondUser@localhost= PASSWORD("SecondPassword");

В завершение нужно передать пользователям права на соответствующую БД. Это позволяет связать пользователей с базами данных.

GRANT ALL PRIVILEGES ON FirstDatabase.* TO FirstUser@localhost IDENTIFIED BY 'FirstPassword';
GRANT ALL PRIVILEGES ON SecondDatabase.* TO SecondUser@localhost IDENTIFIED BY 'SecondPassword';

Обновите MySQL, чтобы изменения вступили в силу:

FLUSH PRIVILEGES;

Закройте MySQL и вернитесь в сессию оболочки:

exit

Настройка root-каталогов

Теперь каждый сайт нужно поместить в отдельный каталог в root-каталоге веб-сервера.

Откройте каталог /var/www:

cd /var/www

Здесь нужно создать каталоги для сайтов:

sudo mkdir FirstSite
sudo mkdir SecondSite

Скопируйте образец конфигурации:

cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php

Затем скопируйте файлы сайтов на сервер в специально отведённые каталоги.

sudo rsync -avP ~/wordpress/ /var/www/FirstSite/
sudo rsync -avP ~/wordpress/ /var/www/SecondSite/

Передайте права на каталоги пользователю Apache и добавьте пользователя linux в группу веб-сервера:

sudo chown www-data:www-data * -R
sudo usermod -a -G www-data linux_user_name

Настройка WordPress

Теперь нужно настроить каждый сайт.

Настойка первого сайта

Откройте каталог document root первого сайта:

cd /var/www/FirstSite

Затем откройте конфигурационный файл WordPress:

sudo nano wp-config.php

Найдите раздел, содержащий следующие поля, и укажите БД для этого сайта, имя пользователя и пароль.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'FirstDatabase');
/** MySQL database username */
define('DB_USER', 'FirstUser');
/** MySQL database password */
define('DB_PASSWORD', 'FirstPassword');

Сохраните и закройте файл.

Настройка второго сайта

Откройте document root второго сайта:

cd /var/www/SecondSite

Откройте конфигурационный файл WordPress для редактирования:

sudo nano wp-config.php

Найдите раздел, содержащий следующие поля, и укажите в нём БД для второго сайта, имя пользователя и пароль.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'SecondDatabase');
/** MySQL database username */
define('DB_USER', 'SecondUser');
/** MySQL database password */
define('DB_PASSWORD', 'SecondPassword');

Настройка виртуальных хостов Apache

Теперь нужно настроить Apache для направления трафика каждого домена в соответствующий каталог. Для этого нужно создать отдельный виртуальный хост для каждого сайта.

Откройте каталог sites-available:

cd /etc/apache2/sites-available

Создайте в нём файлы виртуальных хостов для каждого сайта, скопировав стандартный виртуальный хост:

sudo cp default FirstSite
sudo cp default SecondSite

Виртуальный хост для первого сайта

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

sudo nano FirstSite

Конфигурация файла должна выглядеть так:

<VirtualHost *:80>
ServerAdmin your_email_address
ServerName firstsite.com
ServerAlias www.firstsite.com
DocumentRoot /var/www/FirstSite
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/FirstSite>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
. . .
. . .

Примечание: Вместо выделенных красным данных укажите свои данные.

Чтобы включить чистые ссылки, откройте блок <Directory /var/www/FirstSite> и замените AllowOverride None на AllowOverride All.

Сохраните и закройте файл.

Виртуальный хост для второго сайта

Откройте файл хоста для второго сайта.

sudo nano SecondSite

Отредактируйте стандартные настройки:

<VirtualHost *:80>
ServerAdmin your_email_address
ServerName secondsite.com
ServerAlias www.secondsite.com
DocumentRoot /var/www/SecondSite
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/SecondSite>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
. . .
. . .

Примечание: Замените выделенные красным данные своими данными.

Сохраните и закройте файл.

Заключительные настройки

Сайты почти готовы к запуску.

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

sudo apt-get install php5-gd

Включите виртуальные хосты:

sudo a2ensite FirstSite
sudo a2ensite SecondSite

В завершение перезапустите Apache:

sudo service apache2 reload

Тестирование

Чтобы просмотреть сайты WordPress, просто откройте в браузере доменные имена.

Если все настройки были выполнены правильно, на экране появится приветственная страница с формой входа.

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

Tags: , , , , ,

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