روش راه اندازی چندین سایت وردپرس روی یک سرور مجازی اوبونتو

روش راه اندازی چندین سایت وردپرس روی یک سرور مجازی اوبونتو

مقدمه

وردپرس یک سیستم مدیریت محتوای (CMS) محبوب است که با یاری آن میتوانید سریع و آسان سایت راه بیاندازید. گاهی نیاز است که چندین سایت غیر مرتبط را روی یک سرور میزبانی کنید.
در این مقاله به این موضوع میپردازیم که چگونه میتوان دو وردپرس جداگانه با نام دامنه متفاوت را روی یک سرور مجازی میزبانی کرد. این موضوع را با راه اندازی سایت چندگانه اشتباه نگیرید.
اینکار را با استفاده از سرور های مجازی انجام خواهیم داد. در این راهنما از یک سرور مجازی اوبونتو 12.04 استفاده شده است ولی توزیع های مختلف همگی به یک روش عمل میکنند.

پیش نیازها

این راهنما چند پیش نیاز دارد که بعضی از آنها را در مقالات قبلی کاملاً توضیح داده بودیم. قبل از ادامه مقاله حتماً کارهای زیر را انجام دهید:
برای میزبانی از سایت ها، یک سرور مجازی جدید بسازید و تنظیمات اساسی سرور را انجام دهید.
با کندوهاست دو نام دامنه بسازید.
یک LAMP stack روی اوبونتو نصب کنید.
در این مرحله باید لمپ روی اوبونتو نصب شده باشد و هر دو دامنه باید به سرورمجازی شما وصل باشند.
با مرورگر وب به هر دو دامنه سر بزنید. هر دو دامنه باید صفحه ایندکس پیش فرض آپاچی را نشان دهند.

اگر دامنه های شما به این صفحه منتهی نمیشوند، یا تنظیمات مرحله قبل اشتباه بوده است یا باید صبر کنید تا تغییرات DNS صورت بگیرد. تا وقتی این مشکل حل نشده، به مراحل بعد نروید.

دانلود وردپرس

هروقت مراحل قبلی را تکمیل کردید، به سرور لاگ این کنید و به home directory تغییر مسیر بدهید چون فایلها را آنجا دانلود خواهیم کرد:

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

 

جدول بالا برای این است که در مورد فرمان هایی که استفاده خواهیم کرد ذهنیتی داشته باشید. هر وقت فرمان هایی که در ادامه میاید را تکمیل کردید، اطلاعات تان را جایگزین محتویات جدول بکنید.
با استفاده از اکانت Administrator که هنگام نصب 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/

مالکیت دایرکتوری ها را به کاربر وب آپاچی بدهید و سپس یوزرنیم لینوکس خود را به گروه وب اضافه کنید:

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

 

پیکربندی وردپرس

هر سایت را با اطلاعات مربوطه پیکربندی میکنیم.

پیکربندی سایت اول

دایرکتوری ها را به document root سایت اول تغییر دهید:

cd /var/www/FirstSite

فایل پیکربندی وردپرس را برای ویرایش باز کنید:

sudo nano wp-config.php

قسمتی را پیدا کنید که حاوی فیلدهای زیر است و پایگاه داده (database)، نام کاربری (username) و رمز عبور (password) سایت اول را جایگزین کنید:

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

 

سپس save کرده و exit کنید.

پیکربندی سایت دوم

دایرکتوری ها را به document root سایت دوم تغییر دهید:

cd /var/www/SecondSite

فایل پیکربندی وردپرس را برای ویرایش باز کنید:

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

 

سپس save کرده و exit کنید.

پیکر بندی میزبان مجازی آپاچی

 

باید آپاچی را طوری پیکربندی کنیم که ترافیک هر دامنه را به دایرکتوری مربوط به آن دامنه هدایت کند. اینکار را با ایجاد فایل های میزبان مجازی جداگانه برای هر دامنه انجام میدهیم.

دایرکتوری را به دایرکتوری سایت های در دسترس آپاچی تغییر دهید:

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

Options FollowSymLinks
AllowOverride None

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

. . .
. . .

 

اگر لازم است که پیوندهای ثابت (permalinks) را فعال کنید، میتوانید “AllowOverride None” را که در “” است را به “AllowOverride All” تغییر دهید. پس از انجام تغییرات، save کرده و فایل را ببندید.

پیکربندی میزبان مجازی سایت دوم

 

دومین فایل میزبان مجازی را برای ویرایش کردن باز کنید:

sudo nano SecondSite

اطلاعات سایت دوم را وارد کنید:

ServerAdmin your_email_address
ServerName secondsite.com
ServerAlias www.secondsite.com

DocumentRoot /var/www/SecondSite

Options FollowSymLinks
AllowOverride None

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

. . .
. . .

 

سیو کرده و فایل را ببندید.

پیکربندی نهایی

چند گام لازم دیگر تا راه اندازی سایت مانده است.
اول اینکه وردپرس برای اینکه به درستی کار کند به نصب یک ماژول PHP اضافی نیاز دارد. با تایپ این نصبش کنید:

sudo apt-get install php5-gd

سپس فایل میزبان مجازی که ساخته بودیم را فعال کنید:

sudo a2ensite FirstSite
sudo a2ensite SecondSite

آخرسر آپاچی را ریلود کنید تا تغییراتی که داده ایم را بخواند:

sudo service apache2 reload

 

دیدن نتایج

 

برای دیدن سایت های وردپرس جدیدتان، آدرس دامنه را در مرورگرتان تایپ کنید.
اگر همه چیز را به درستی پیکربندی کرده باشید، با صفحه ای همچون صفحه زیر به شما خوشامد گفته خواهد شد:

اکنون میتوانید لاگ این کرده و هر سایت را به صورت مستقل پیکربندی کنید. این سایت ها کاملاً جدا از هم هستند و همچون حالتی که هرکدام بر روی یک سرور مجازی دیگر باشند قابل مدیریت و کنترل هستند.

 

منبع

ترجمه شده توسط: بابک طهماسبی


دیدگاه ها

  1. […] روش راه اندازی چندین سایت وردپرس روی یک سرور مجازی اوبو… […]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *