آموزش نصب آپاچی روی CentOS 8
آپاچی پراستفادهترین وبسرور در سرتاسر دنیا است. توصیه میکنیم دو مقاله وبسرور چیست؟ و آشنایی با آپاچی را بخوانید. در ادامه چگونگی نصب این وبسرور روی توزیع CentOS 8 لینوکس را به شما آموزش خواهیم داد.
خب برای انجام این کار، برخی پیشنیازها را لازم خواهید داشت:
پیشنیازهای نصب آپاچی روی CentOS 8
برای اینکه بتوانید از آپاچی روی توزیع سنتوس 8 بهره ببرید، باید این دو پیشنیاز را داشته باشید:
- یک کاربر non-rootو sudo که روی سرور CentOS تعریف شده باشد.
- اطمینان از فعال بودن فایروال که بازهم در تنظیمات اولیه CentOS تعریف شده است.
خب برویم سراغ انجام کار:
مرحله اول: نصب آپاچی
برای پیدا کردن آپاچی، کافی است به مخزن توزیع CentOS بروید. با هویت کاربر non-root و sudo، دستور زیر را بهمنظور نصب آپاچی اجرا کنید:
sudo dnf install httpd
پس از تائید شما، آپاچی و تمام تعلقات ضروری آن نصب خواهند شد. ما فرض میگیریم که قبلاً فایروال را روی توزیع سنتوس نصب کردهاید.
اگر میخواهید آپاچی را طوری تنظیم کنید که روی پروتکل HTTPS هم محتوا را ارائه کند، باید پورت 433 را با دستور زیر باز کنید:
sudo firewall-cmd --permanent --add-service=https
سپس فایروال را مجدداً بارگذاری (Relaod) کنید تا این تغییرات جدید اعمال شوند. با استفاده از دستور زیر:
sudo firewall-cmd --reload
حالا همهچیز برای بررسی وبسرور مهیا است.
مرحله دوم: وبسرور را بررسی کنید
آپاچی بهصورت خودکار روی CentOS نصب نمیشود و باید این کار را بهصورت دستی انجام دهید. با کمک دستور زیر:
sudo systemctl start httpd
سپس باید با دستور زیر اجرای درست سرویس را تائید کنید:
sudo systemctl status httpd
اگر همهچیز درست پیش برود، پیام زیر را دریافت خواهید کرد:
● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disa> Active: active (running) since Thu 2020-04-23 22:25:33 UTC; 11s ago Docs: man:httpd.service(8) Main PID: 14219 (httpd) Status: "Running, listening on: port 80" Tasks: 213 (limit: 5059) Memory: 24.9M CGroup: /system.slice/httpd.service ├─14219 /usr/sbin/httpd -DFOREGROUND ├─14220 /usr/sbin/httpd -DFOREGROUND ├─14221 /usr/sbin/httpd -DFOREGROUND ├─14222 /usr/sbin/httpd -DFOREGROUND └─14223 /usr/sbin/httpd -DFOREGROUND ...
اگرچه این پیام نشان میدهد که نصب موفقیتآمیز بوده است، اما بهترین راه برای کسب اطمینان، درخواست یک صفحه از وبسرور آپاچی است!
میتوانید از طریق آدرس IP، به صفحه اصلی آپاچی دسترسی پیدا کنید تا مطمئن شوید که درست کار میکند. اگر آی پی سرورتان را نمیدانید، وارد صفحه Command Prompt شوید و دستور زیر را وارد کنید:
hostname -I
این دستور تمام آدرسهای شبکه را به شما نشان خواهد داد. آدرسهای آی پی را بهصورت جدا از هم دریافت خواهید کرد که میتوانید هرکدام را در مرورگرتان بررسی کنید تا ببینید کدامیک کار میکند؟
همچنین میتوانید توسط فرمان curl، آدرس IPتان را از icanzip.com دریافت کنید. این کار آی پی عمومی IPv4 را در اختیارتان قرار میدهد:
curl -4 icanhazip.com
خب حالا که آدرس IP سرورتان را دارید، آن را در نوار مرورگرتان وارد کنید. اگر همهچیز طبق برنامه پیش رفته باشد، باید با صفحهای مثل صفحه زیر مواجه شوید. لندینگ پیج توزیع محبوب CentOS 8:
این صفحه نشان میدهد که آپاچی بهدرستی روی توزیع CentOS 8 نصب شده است. همچنین برخی اطلاعات پایهای مثل فایلهای مهم آپاچی و مکان دایرکتوریها را در این صفحه خواهید دید.
مرحله سوم: مدیریت فرایندهای آپاچی
حالا که وبسرور با موفقیت نصب شده، میتوانید با استفاده از دستورات مختلف، چگونگی عملکرد آن را مدیریت کنید.
برای توقف وبسرور، میتوانید از دستور زیر استفاده کنید:
sudo systemctl stop httpd
برای راهاندازی آن میتوانید از دستور زیر کمک بگیرید:
sudo systemctl start httpd
برای ریاستارت کردن وبسرور، دستور زیر را به کار ببرید:
sudo systemctl restart httpd
اگر میخواهید در تنظیمات تغییری ایجاد کنید، آپاچی میتواند بدون قطعی اتصال آنها را اعمال کند و مجدداً بارگذاری شود. برای استفاده از این قابلیت از دستور زیر کمک بگیرید:
sudo systemctl reload httpd
بهصورت پیشفرض، وقتی سرور boot میشود، آپاچی خودکار اجرا میشود؛ اگر نمیخواهید چنین اتفاقی بیفتد، از دستور زیر کمک بگیرید:
sudo systemctl disable httpd
برای اینکه تنظیمات را به حالت قبل برگردارنید، یعنی حالتی که پس از Boot کردن سرور، آپاچی خودکار اجرا شود، باید از دستور زیر استفاده کنید:
sudo systemctl enable httpd
تنظیمات پیشفرض آپاچی به سرورتان اجازه میدهد تا از یک وبسایت میزبانی کند. اگر قصد دارید از چندین دامنه روی سرورتان میزبانی کنید، باید چند هاست مجازی را روی وبسرور آپاچی تعریف کنید.
مرحله چهارم: تنظیم چند هاست مجازی
یکی از قابلیتهای وبسرور آپاچی، امکان استفاده از هاستهای مجازیسازی و درکل سازگاری مناسب با تکنولوژی مجازیسازی است. این کار کمک میکند بیش از یک دامنه را در یک سرور میزبانی کنید.
در ادامه، برای مثال از دامنه example.com استفاده کنید. البته که شما باید از دامنه خودتان استفاده کنید.
وبسرور آپاچی روی توزیع سنتوس 8، بهصورت پیشفرض یک هاست مجازی دارد که داکیومنتها را از /var/www/html ارائه میکند. اگر بخواهید از یک سایت و دامنه استفاده کنید، همهچیز خوب پیش میرود؛ اما زمانی که پای چند سایت و دامنه در میان باشد، اوضاع فرق خواهد کرد.
در این حالت، باید در /var/www یک دایرکتوری برای example.com بسازید. همچنین دایرکتوری اصلی که همان /var/www/html است را در همان حال بگذارید تا اگر درخواست بازدیدکننده با هیچکدام از سایتها همخوانی نداشت، بهعنوان دایرکتوری اصلی ارائه شود.
جهت ساخت دایرکتوری html برای دامنه example.com باید از دستور زیر استفاده کنید. از پارامتر -p برای ساخت هرگونه دایرکتوری والد کمک بگیرید:
sudo mkdir -p /var/www/example.com/html
با استفاده از دستور زیر، یک دایرکتوری دیگر برای ذخیرهسازی فایلهای log سایت بسازید:
sudo mkdir -p /var/www/example.com/log
سپس، مالکیت دایرکتوری html را برای $user تعیین کنید:
sudo chown -R $USER:$USER /var/www/example.com/html
اطمینان حاصل کنید که در Web Rootتان، اجازهای پیشفرض تنظیم شدهاند:
sudo chmod -R 755 /var/www
در مرحله بعدی، یک صفحه نمونه index.html را با کمک vi یا با استفاده از ویرایشگر مدنظرتان بسازید:
sudo vi /var/www/example.com/html/index.html
بعد از آن، با فشردن دکمه i به حالت INSERT بروید و HTML نمونه را به فایل اضافه کنید:
Welcome to Example.com! Success! The example.com virtual host is working!
با فشردن ESC، تایپ :wq و فشردن کلید ENTER، کارهایی که انجام دادهاید را ذخیره کنید و صفحه را ببندید.
حالا که دایرکتوری سایت و فایل ایندکس نمونهتان آماده است، تقریباً همهچیز برای ساخت یک هاست مجازی آماده بهنظر میرسد. هاستهای مجازی تنظیمات سایتهای جداگانه شما را مشخص میکنند و اینطوری آپاچی میداند که به هر درخواست برای هر دامنه چگونه پاسخ دهد.
فقط قبل از اینکه هاستهای مجازیتان را بسازید، باید یک دایرکتوری sites-available برای ذخیرهسازی آنها ایجاد کنید. همچنین به یک دایرکتوری sites-enabled نیاز دارید تا به آپاچی بگوید که هاست مجازی آماده خدمترسانی به بازدیدکنندگان است.
ساخت هردوی این دایرکتوریها با دستور زیر انجام میشود:
sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
پس از ساخت این دایرکتوریها، باید از آپاچی بخواهید تا داخل دایرکتوری sites-enabled بهدنبال هاستهای مجازی بگردد! برای اینکه بتوانید این کار را انجام دهید، باید تنظیمات اصلی این وبسرور را تغییر دهید. برای این کار هم میتوانید از vi استفاده کنید و هم از text editor مدنظر خودتان. باید خطی را اضافه کنید که یک دایرکتوری اختیاری برای فایلهای تنظیمات معرفی میکند:
sudo vi /etc/httpd/conf/httpd.conf
دکمه G را فشار دهید تا به انتهای فایل برسید. سپس از دکمه i استفاده کنید تا به حالت INSERT بروید و خط زیر را به انتهای فایلتان اضافه کنید:
... # Supplemental configuration # # Load config files in the "/etc/httpd/conf.d" directory, if any. IncludeOptional conf.d/*.conf IncludeOptional sites-enabled/*.conf
ابتدا باید یک فایل در دایرکتوری sites-available ایجاد کنید:
sudo vi /etc/httpd/sites-available/example.com.conf
دستور زیر را در فایل /etc/httpd/sites-available/example.com.conf اضافه کنید:
ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/html ErrorLog /var/www/example.com/log/error.log CustomLog /var/www/example.com/log/requests.log combined
این کار مشخص میکند که آپاچی کجا باید دنبال داکیومنتهای وب بگردد. همچنین محل ذخیرهسازی خطاها و لاگهای درخواست برای این سایت (example.com) را تعیین میکند.
بعد از آن، تغییراتتان را ذخیره کنید و صفحه را ببندید.
حالا باید فایلهای هاست مجازی را فعال کنید تا آپاچی بتواند آنها را به بازدیدکنندگان نمایش دهد. جهت انجام این کار، باید یک لینک سمبولیک برای هر هاست مجازی در دایرکتوری sites-enabled بسازید. از دستور زیر استفاده کنید:
sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
حالا هاست مجازیتان تنظیم شده و آماده خدمترسانی به بازدیدکنندگان است؛ اما قبل از restart کردن آپاچی، باید از درستی سیاستهای SELinux برای هاستهای مجازیتان اطمینان حاصل کنید.
مرحله پنجم: تنظیم دسترسیهای SELinux برای هاستهای مجازی
SELinux یک ماژول امنیتی برای کرنل سیستمعامل لینوکس است که نهایت امنیت را برای این OS فراهم میکند. سنتوس 8 همراه با SELinux ارائه میشود که برای کار با تنظیمات پیشفرض آپاچی آماده شده است.
اما از آنجایی که شما تنظیمات پیشفرض را با ایجاد یک دایرکتوری لاگ در تنظیمات فایلهای هاست مجازی تغییر دادهاید، هنگام اجرای آپاچی با یک خطا مواجه خواهید شد. برای رفع این مشکل، باید سیاستهای مربوط به SELinux را بهروزرسانی کنید.
بسته به نیازتان، راههای مختلفی برای این کار و تنظیم سطح امنیتی وجود دارد. در این بخش دو متد تنظیم آپاچی را بررسی خواهیم کرد. نوع جهانی و نوعی که به یک دایرکتوری مشخص بستگی دارد.
اعمال سیاستهای آپاچی بهصورت جهانی
استفاده از این متد، این پیام را به SELinux میدهد که با تمام فرایندهای آپاچی بهطور یکسان و از طریق http-unified برخورد کند. http-unified در علوم کامپیوتری یک Boolean است؛ یعنی تنها میتواند یکی از دو جواب درست یا غلط را داشته باشد.
از دستور زیر برای اجرای این متد استفاده کنید:
sudo setsebool -P httpd_unified 1
فرمان setsebool، مقادیر Boolean ماژول SELinux را تغییر میدهد. پارامتر -P مقدار boot-time را بهروزرسانی میکند. هنگام انجام rebootها، انجام این تغییر ضروری خواهد بود. http-unified به SELinux میگوید تا با تمام فرایندهای آپاچی بهصورت یکسان برخورد کند. پس آن را مقدار 1 فعال کنید.
اعمال سیاستهای آپاچی روی یک دایرکتوری مشخص
تنظیم جداگانه دسترسیهای SELinux برای دایرکتوری /var/www/esample.com/log اختیارات بیشتری را برای کنترل سیاستهای آپاچی در اختیارتان قرار میدهد؛ اما خب نیازمند نگهداری بیشتر هم میشود.
انجام این تنظیمات بهصورت دستی انجام میشود. ابتدا فرمان زیر را اجرا کنید:
sudo ls -dlZ /var/www/example.com/log/
سپس خروجیای مشابه آنچه در زیر میبینید دریافت خواهید کرد:
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 Apr 23 23:51 /var/www/example.com/log/
متن کنونی http_sys_content_t, است که به SELinux میگوید آپاچی تنها میتواند فایلهایی که در این دایرکتوری قرار دارد را بخواند. در این آموزش، شما متن موجود در دایرکتوری /var/www/example.com را به httpd_log_t. تغییر خواهید داد. این کار باعث میشود آپاچی بتواند فایلهای log وباپلیکیشن را بسازد و ضمیمه کند.
sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"
سپس از فرمان restorecon برای اعمال این تغییرات و اجرای آنها حین ریبوتها استفاده کنید:
sudo restorecon -R -v /var/www/example.com/log
پارامتر -R در این فرمان بهصورت بازگشتی اجرا میشود؛ یعنی تمام فایلهای موجود را برای استفاده از متن جدید بهروزرسانی میکند. پارامتر -v تغییراتی که با دستور اعمال شده را نشان میدهد. اگر همهچیز درست انجام شود، خروجی زیر را برای تائید اعمال تغییرات دریافت خواهید کرد:
Relabeled /var/www/example.com/log from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0
برای دیدن مجدد تغییرات، میتوانید از دستور زیر کمک بگیرید:
sudo ls -dlZ /var/www/example.com/log/
خروجی، متن بهروزرسانیشده را نمایش میدهد:
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_log_t:s0 6 Apr 23 23:51 /var/www/example.com/log/
حالا که دایرکتوری /var/www/example.com/log از httpd_log_t استفاده میکند، همهچیز برای بررسی تنظیمات هاست مجازیتان آماده است!
مرحله ششم: بررسی هاست مجازی
بعد از اینکه SELinux را با هرکدام از متدهای بالا بهروزرسانی کردید، آپاچی میتواند در دایرکتوری /var/www/example.com/log فعالیت کند. حالا میتوانید با دستور زیر، وبسرور Apache را ریاستارت کنید:
sudo systemctl restart httpd
با استفاده از فرمان زیر، فهرستهای موجود در دایرکتوری /var/www/example.com/log را ببینید. از این طریق میفهمید که آیا آپاچی فایلهای لاگ را ساخته است یا نه:
ls -lZ /var/www/example.com/log
اگر همهچیز طبق برنامه پیش رفته باشد، خروجی زیر را میبینید که میگوید آپاچی توانسته است تا error.log و requests.log را برای فایلهای مشخصشده در تنظیمات هاست مجازی بسازد.
-rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 error.log -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 requests.log
خب حالا هم هاست مجازیتان را تعریف و هم دسترسیهای SELinux را بهروزرسانی کردهاید. حالا آپاچی میتواند دامنهتان را به بازدیدکنندگان ارائه کند. برای بررسی این موضوع میتوانید به http://example.com بروید. باید چیزی شبیه تصویر را زیر را ببینید:
یادآوری: فراموش نکنید که بهجای example.com که در تمام دستورات استفاده شد، از نام دامنه خودتان استفاده کنید!
همچنین اگر قصد استفاده از دامنههای بیشتر را دارید، فقط کافی است مراحل 4 و 5 را برای هرکدام تکرار کنید.
حالا میخواهید سراغ یکی دیگر از توزیعهای شناختهشده لینوکس برویم. میخواهیم ببینیم چطور میتوان آپاچی را روی Ubuntu 20.04 نصب کرد.
آموزش نصب وبسرور آپاچی روی توزیع Ubunto 20.04 لینوکس
درست مثل نصب آپاچی روی سنتوس 8، قبل از هرچیزی نیاز به یک کاربر non-root و البته sudu روی سرورتان دارید. همچنین باید یک فایروال پایهای را بهمنظور بستن پورتهای غیرضروری فعال کنید.
بعد از فراهم کردن این پیشنیازها، سراغ مراحلی که در ادامه خواهیم گفت بروید:
مرحله اول: نصب آپاچی
وبسرور Apache در ریپازیتوری اوبنتو وجود دارد و میتوانید از این طریق آن را روی این توزیع نصب کنید.
خب اول از همه، با استفاده از دستور زیر Local Package را نصب کنید:
sudo apt update
سپس پکیج Apache2 را نصب کنید:
sudo apt install apache2
بعد از تائید این فرایندها، آپاچی نصب خواهد شد.
مرحله دوم: تنظیم فایروال
قبل از تست کردن وبسرور آپاچی، باید فایروال را بهمنظور دسترسی خارجی به پورتهای پیشفرض سرور تنظیم کنید. فرض را بر این میگیریم که پیشنیازهایی که در ابتدا گفتیم را رعایت کردید؛ یعنی فایروالتان را برای محدود کردن دسترسی به سرور تنظیم کردهاید.
طی فرایند نصب، آپاچی خودش را با UFW تطبیق میدهد تا بتواند برخی از اپلیکیشنها را که دسترسی به فایروال از طریق آنها انجام میشود را فعال یا غیرفعال کند.
با وارد کردن دستور زیر، لیست این اپلیکیشنهای ufw را دریافت کنید:
sudo ufw app list
لیستی که دریافت میکنید به شکل زیر خواهد بود:
Available applications: Apache Apache Full Apache Secure OpenSSH
همانطور که در خروجی مشخص شده است، 3 اپلیکیشن برای آپاچی وجود دارند:
- Apache: این اپلیکیشن فقط پورت 80 را باز میکند.
- Apache Full: این اپلیکیشن دو پورت 80 و 443 را باز میکند.
- Apache Secure: این اپلیکیشن فقط پورت 443 را باز میکند.
بهتر است محدودکنندهترین اپلیکیشن را انتخاب کنید که همچنان اجازه ترافیکی که تنظیم کردهاید را میدهد. از آنجایی که در این آموزش هنوز گواهی SSL را برای سرورمان تعریف نکردهایم، فقط باید از پورت 80 استفاده کنیم. (گزینه اول)
sudo ufw allow 'Apache'
برای تائید تغییرات از فرمان زیر کمک بگیرید:
sudo ufw status
خروجی یک لیست از ترافیک HTTP مجاز را نمایش میدهد:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
همانطور که در خروجی نمایان است، اپلکیشن بهگونهای تنظیم شده که اجازه دسترسی به وبسرور آپاچی را داشته باشد.
مرحله سوم: بررسی وبسرور
بعد از اتمام فرایند نصب، Ubunto 20.04 آپاچی را اجرا میکند. برای اینکه مطمئنی شوید وبسرور در حال کار کردن است، دستور زیر را تایپ کنید:
sudo systemctl status apache2
خروجی باید مشابه خروجی زیر باشد:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 29435 (apache2) Tasks: 55 (limit: 1137) Memory: 8.0M CGroup: /system.slice/apache2.service ├─29435 /usr/sbin/apache2 -k start ├─29437 /usr/sbin/apache2 -k start └─29438 /usr/sbin/apache2 -k start
همانطور که در این خروجی تائیدشده است، سرویس بهدرستی در حال اجرا است. البته که بهترین روش برای تست این موضوع، درخواست بازدید یک صفحه از آپاچی است!
میتوانید به لندینگ پیج آپاچی دسترسی داشته باشید تا بهمید که برنامه بهدرستی در حال اجرا است. اگر آدرس آی پی سرورتان را نمیدانید، با فرمانهای مختلفی میتوانید آن را پیدا کنید.
مثلاً میتوانید دستور زیر را در CMD سرورتان بنویسید:
hostname -I
در پاسخ این دستور، تعدادی آدرس را دریافت خواهید کرد که با فاصله از هم جدا شدهاند. میتوانید هرکدام را در مرورگرتان وارد کنید تا بفهمید آیا کار میکنند یا نه.
راهحل دیگری که وجود دارد، استفاده از Icanhzip است که آدرس عمومی آی پیتان را ارائه میکند:
curl -4 icanhazip.com
وقتی آدرس IP سرورتان را پیدا کردید، آن را در مرورگرتان وارد کنید.
قاعدتاً باید صفحه زیر را ببینید. لندینگ پیج آپاچی در توزیع اوبنتو 20.04:
این صفحه تائید میکند که آپاچی بهدرستی در حال انجام کار است. درضمن برخی از اطلاعات مهم و پایهای در این صفحه وجود دارند.
مرحله چهارم: مدیریت فرایندهای آپاچی
حالا که آپاچی بهدرستی کار میکند، بیایید مدیریت برخی از فرایندهای آن را به شما آموزش دهیم.
برای متوقف کردن آپاچی میتوانید از دستور زیر استفاده کنید:
sudo systemctl stop apache2
برای راهاندازی مجدد وبسرور پس از متوقف کردن آن، باید از دستور زیر کمک بگیرید:
sudo systemctl start apache2
اگر میخواهید آپاچی را ریاستارت کنید، باید از دستور زیر استفاده کنید:
sudo systemctl restart apache2
اگر قصد اعمال تغییرات دارید و نمیخواهید آپاچی متوقف شود، از دستور زیر استفاده کنید:
sudo systemctl reload apache2
آپاچی بهصورت پیشفرض، بعد از بوت کردن سرور خودکار اجرا میشود. اگر نمیخواهید این اتفاق بیفتد، با استفاده از دستور زیر این قابلیت را غیرفعال کنید:
sudo systemctl disable apache2
برای فعال کردن مجدد این قابلیت هم میتوانید از فرمان زیر کمک بگیرید:
sudo systemctl enable apache2
خب برویم سراغ آموزش راهاندازی هاست مجازی در آپاچی نصبشده روی اوبنتو.
مرحله پنجم: تنظیم و راهاندازی هاست مجازی
با استفاده از آپاچی، میتوانید از هاستهای مجازی استفاده کنید. این کار باعث میشود بتوانید از بیشتر از یک دامنه روی یک سرور میزبانی کنید. ما در ادامه برای مثال از your_domain استفاده میکنیم. شما هنگام اجرا از همان دامنه خودتان که قصد افزودنش را دارید استفاده کنید.
آپاچی روی توزیع اوبنتو 20.04 بهصورت پیشفرض یک هاست مجازی دارد که داکیومنتها را از /var/www/html ارائه میکند. اگر بخواهید از یک سایت و دامنه استفاده کنید، همهچیز خوب پیش میرود؛ اما زمانی که پای چند سایت و دامنه در میان باشد، اوضاع فرق خواهد کرد.
در این حالت، باید در /var/www یک دایرکتوری برای your_domain.com بسازید. همچنین دایرکتوری اصلی که همان /var/www/html است را در همان حال بگذارید تا اگر درخواست بازدیدکننده با هیچکدام از سایتها همخوانی نداشت، بهعنوان دایرکتوری اصلی ارائه شود.
جهت ساخت دایرکتوری برای your_domain بهصورت زیر عمل کنید:
sudo mkdir /var/www/your_domain
سپس مالکیت دایرکتوری را به $user بدهید:
sudo chown -R $USER:$USER /var/www/your_domain
اگر مقدار umask را تغییر نداده باشید، قاعدتاً دسترسی مسیرهای وب یا web roots باید درست باشد. برای اطمینان از این موضوع و اینکه مالک می تواند فایلها را بخواند، بنوسید و اجرا کند، در حالی که دیگران تنها قابلیت خواندن اجرا کردن را دارند، از دستور زیر کمک بگیرید:
sudo chmod -R 755 /var/www/your_domain
پس از آن با استفاده از nano یا ویرایشگر مدنظرتان، یک صفحه index.html نمونه بسازید:
sudo nano /var/www/your_domain/index.html
داخل /var/www/your_doamin/index.html کد HTML زیر را وارد کنید:
Success! The your_domain virtual host is working!
وقتی کارتان تمام شد، آن را سیو کرده و صفحه را ببندید.
برای اینکه آپاچی بتواند این محتوا را ارائه کند، حتماً باید یک فایل هاست مجازی با مسیرهای درست بسازید. بهجای اعمال تغییرات در فایل تنظیمات واقع در /etc/apache2/sites-available/000-default.conf بهتر است یک فایل جدید در /etc/apache2/sites-available/your-domain.conf بسازید.
به این صورت:
sudo nano /etc/apache2/sites-available/your_domain.conf
در فایل بالا، تنظیمات زیر را که بهخاطر نام دامنه و دایرکتوری جدیدمان بهروزرسانی شدهاند وارد کنید:
ServerAdmin [email protected] ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
توجه داشته باشید که ما DocumentRoot را به دایرکتوری جدید و ServerAdmin را به ایمیلی که ادمین your_doamin دسترسی داشته باشد بهروزرسانی کردیم.
همچنین دو موضوع دیگر هم تعریف کردم:
- ServerName: نشاندهنده دامنه پایهای که باید با این هاست مجازی همخوانی داشته باشد.
- ServerAlias: نشاندهنده دامنههای دیگری که اگر دامنه پایه بودند باید با هاست مجازی همخوانی داشته باشند.
تغییراتتان را ذخیره و صفحه را ببندید.
حالا میخواهیم فایل را با ابزار a2ensite فعال کنیم:
sudo a2ensite your_domain.conf
سایت پیشفرضی که در 000-default.conf تعریف شده را با دستور زیر غیرفعال کنید:
sudo a2dissite 000-default.conf
سپس باید خطاهای تنظیمات را بررسی کرد:
sudo apache2ctl configtest
قاعدتاً باید جواب زیر را دریافت کنید:
Syntax OK
در آخر، با دستور زیر آپاچی را ریاستارت کنید تا تغییراتتان اعمال شوند:
sudo systemctl restart apache2
اگر همهچیز درست انجام شده باشد، آپاچی وبسرور نام دامنهتان خواهد بود. برای بررسی درستی این مسئله، میتوانید به آدرس دامنهتان که در اینجا http://your_domain است بروید. اگر عکس زیر را مشاهده کردید، همهچیز درست است!
حرف آخر
برای اینکه خیالمان از صحت و درستی مقاله راحت باشد، علاوه بر تجربیات متخصصین خودمان از دو مقاله در سایت DigitalOcean هم کمک گرفتیم.
هر سوالی در رابطه با نصب وبسرور آپاچی روی توزیعهای سنتوس 8 و اوبنتو 20.04 داشتید، حتماً در قسمت کامنتها بنویسید تا خیلی زود پاسختان را بدهیم.
همچنین این مقاله را برای دوستانتان که از هاست لینوکس استفاده میکنند بفرستید که قطعاً به کارشان میآید.