## ایجاد میزبان مجازی در Apache با قابلیت فعالسازی/غیرفعالسازی در CentOS 7
اگر میخواهید چند وبسایت را روی یک سرور Apache در CentOS/RHEL 7 میزبانی کنید، باید از قابلیت **Virtual Hosts** استفاده کنید. در این مقاله یاد میگیرید چگونه میزبانهای مجازی ایجاد کرده و بهصورت دستی فعال یا غیرفعال کنید.
---
### 🔧 پیشنیازها
* سرور CentOS/RHEL 7 با دسترسی root
* نصب Apache
* ثبت دامنه (مثلاً `site1.com`, `site2.com`)
* تنظیم DNS یا ویرایش فایل `/etc/hosts` برای تست محلی
---
## ۱. نصب Apache در CentOS 7
```bash
sudo yum install httpd -y
```
فعالسازی سرویس:
```bash
sudo systemctl start httpd
sudo systemctl enable httpd
```
بررسی وضعیت:
```bash
sudo systemctl status httpd
```
---
## ۲. ساخت ساختار دایرکتوری برای وبسایتها
```bash
sudo mkdir -p /var/www/site1.com/public_html
sudo mkdir -p /var/www/site2.com/public_html
```
اضافه کردن محتوای ساده تستی:
```bash
echo "<h1>Site 1</h1>" | sudo tee /var/www/site1.com/public_html/index.html
echo "<h1>Site 2</h1>" | sudo tee /var/www/site2.com/public_html/index.html
```
تنظیم مالکیت و سطح دسترسی:
```bash
sudo chown -R apache:apache /var/www
sudo chmod -R 755 /var/www
```
---
## ۳. ایجاد فایلهای Virtual Host
پیشفرض در CentOS مسیر خاصی برای site-available و site-enabled مثل اوبونتو وجود ندارد، اما میتوانیم مشابه آن را پیادهسازی کنیم:
### 📁 ساخت دایرکتوریهای site-available و site-enabled
```bash
sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
```
ویرایش فایل پیکربندی Apache برای بارگذاری این مسیرها:
```bash
sudo nano /etc/httpd/conf/httpd.conf
```
در انتهای فایل اضافه کنید:
```apache
# Virtual hosts
IncludeOptional sites-enabled/*.conf
```
---
## ۴. ایجاد پیکربندی میزبان مجازی
### 🔧 سایت اول: `site1.com`
```bash
sudo nano /etc/httpd/sites-available/site1.com.conf
```
محتوا:
```apache
<VirtualHost *:80>
ServerAdmin admin@site1.com
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1.com/public_html
ErrorLog logs/site1.com_error.log
CustomLog logs/site1.com_access.log combined
</VirtualHost>
```
### سایت دوم مشابه همین است.
---
## ۵. فعالسازی و غیرفعالسازی Virtual Hostها
برای فعالسازی از **symlink** استفاده میکنیم:
```bash
sudo ln -s /etc/httpd/sites-available/site1.com.conf /etc/httpd/sites-enabled/site1.com.conf
```
برای غیرفعالسازی:
```bash
sudo rm /etc/httpd/sites-enabled/site1.com.conf
```
---
## ۶. تست پیکربندی و ریستارت Apache
تست کنید:
```bash
sudo apachectl configtest
```
در صورت OK بودن، Apache را ریستارت کنید:
```bash
sudo systemctl restart httpd
```
---
## ۷. افزودن دامنه به `/etc/hosts` (فقط برای تست محلی)
```bash
sudo nano /etc/hosts
```
اضافه کنید:
```
127.0.0.1 site1.com
127.0.0.1 site2.com
```
---
## ✅ نتیجهگیری
شما اکنون میتوانید بهراحتی چندین وبسایت را روی یک سرور CentOS با Apache راهاندازی کرده و به صورت دستی آنها را فعال یا غیرفعال کنید. این روش مشابه مدیریت در اوبونتو است و باعث نظم بیشتر در پیکربندی میزبانها میشود.