Поиск по сайту:

Как настроить несколько сайтов WordPress на одном Ubuntu VPS


Статус: устарело

В этой статье рассматривается версия Ubuntu, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением Ubuntu 12.04, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию Ubuntu:

  • Обновите Ubuntu до версии 14.04.
  • Обновление Ubuntu 14.04 до Ubuntu 16.04
  • Перенесите данные сервера в поддерживаемую версию.

Причина:

См. вместо этого:

Введение

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

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

Мы достигнем этого за счет использования виртуальных хостов. В этом руководстве будет использоваться VPS-сервер Ubuntu 12.04, но другие дистрибутивы должны работать аналогичным образом.

Предпосылки

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

  • Создайте новый VPS DigitalOcean для размещения своих сайтов WordPress. Выполните начальную настройку сервера, следуя этому руководству.
  • Настройте два доменных имени в DigitalOcean. Используйте это руководство, чтобы узнать, как настроить доменные имена в DigitalOcean.
  • С помощью этого руководства установите стек LAMP в Ubuntu.

На этом этапе у вас должен быть установлен LAMP в Ubuntu, и оба ваших доменных имени должны указывать на ваш дроплет.

Убедитесь, что это так, посетив свои доменные имена в веб-браузере. Оба домена должны предоставить вам одну и ту же индексную страницу Apache по умолчанию:

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

Скачать Вордпресс

Когда вы будете готовы, войдите на свой сервер и перейдите в свой домашний каталог. Мы будем скачивать файлы здесь:

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

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

tar xzvf latest.tar.gz

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

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

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

Site Name firstsite.com secondsite.com
Database Name FirstDatabase SecondDatabase
Database User FirstUser SecondUser
Database Password FirstPassword SecondPassword

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

Войдите в MySQL, используя учетную запись администратора, которую вы настроили во время установки MySQL:

mysql -u root -p

Вам будет предложено ввести корневой пароль MySQL, а затем вы попадете в приглашение MySQL.

Создайте две базы данных с помощью следующих команд:

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

Настройка корневых каталогов сайта

Мы будем устанавливать оба сайта в отдельные каталоги в корневом каталоге нашего сервера.

Перейдите в каталог \/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

Мы настроим каждый сайт с информацией о наших сайтах.

Конфигурация первого сайта

Измените каталоги на корень документа первого сайта:

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');

Сохранить и выйти.

Конфигурация второго сайта

Измените каталоги на второй корень документа сайтов:

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

Измените каталог на каталог доступных сайтов Apache:

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>
. . .
. . .

Если вам нужно включить красивые постоянные ссылки, вы можете изменить \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>
. . .
. . .

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

Окончательная конфигурация

Есть еще несколько шагов, необходимых для того, чтобы наши сайты заработали.

Во-первых, для правильной работы WordPress необходимо установить дополнительный модуль PHP. Установите его, набрав:

sudo apt-get install php5-gd

Затем включите файлы виртуального хоста, которые мы создали, набрав:

sudo a2ensite FirstSite
sudo a2ensite SecondSite

Наконец, перезагрузите Apache, чтобы он прочитал наши изменения:

sudo service apache2 reload

Увидеть результаты

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

Если вы все настроили правильно, вас должна приветствовать страница, которая выглядит так:

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