میزبانی وب سایت بر روی سرور لینوکس نباید اینقدر سخت باشد. نه با آپاچی در اینجا نحوه نصب و پیکربندی سرور آپاچی در لینوکس آورده شده است.
آپاچی قدرتمندترین، انعطاف پذیرترین و پرکاربردترین نرم افزار منبع باز است که محتوای وب را از طریق اینترنت ارائه می کند. هنگامی که مشتری درخواستی با دامنه وب سایت ارائه می دهد، سرور به عنوان یک تحویل دهنده با ارائه محتوای موجود به عنوان فایل های HTML کار می کند.
مهمتر از همه، وب سرورها، از جمله آپاچی، از چندین سیستم عامل مانند لینوکس، ویندوز، سولاریس، macOS و غیره پشتیبانی می کنند.
سرور HTTP آپاچی امکان بارگیری ماژول ها را با پشتیبانی گسترده از نرم افزار و یکپارچه سازی برنامه ها فراهم می کند. این مقاله به جزئیات نصب و پیکربندی یک سرور HTTP Apache در لینوکس میپردازد.
مرحله 1: سرور آپاچی را روی لینوکس نصب کنید
قبل از شروع نصب آپاچی، باید پایگاه داده بسته لینوکس را از مخازن رسمی به روز کنید. این یک مرحله ضروری است که به جلوگیری از هرگونه خلأ امنیتی کمک می کند و جدیدترین ویژگی ها را در بسته ها شامل می شود.
لیست مخزن سیستم را به روز کنید و Apache را با استفاده از دستورات زیر نصب کنید:
در اوبونتو و دبیان:
sudo apt-get update
sudo apt-get install apache -y
در CentOS:
sudo yum update
sudo yum install httpd -y
در فدورا:
sudo dnf update
sudo dnf install httpd -y
برای نصب آپاچی روی آرچ لینوکس، اجرا کنید:
sudo pacman -Syu
sudo pacman -S apache
توجه داشته باشید که توزیعهای Ubuntu/Debian به Apache به عنوان apache2 اشاره میکنند، در حالی که CentOS و Fedora آن را httpd مینامند.
مرحله 2: بررسی وضعیت سرویس آپاچی
در توزیع های مبتنی بر دبیان، سرویس آپاچی به طور خودکار شروع می شود. می توانید به مرورگر بروید و آدرس IP محلی خود را برای دسترسی به صفحه فرود سرور وارد کنید. اگر در مورد آدرس سرور خود مطمئن نیستید، دستور hostname -i را برای چاپ جزئیات اجرا کنید.
hostname -i
خروجی:
192.168.43.130
صفحه نصب موفقیت آمیز را تأیید می کند.
http://<local_server_IPadd>
یا برای تایید نصب، دستور زیر را اجرا کنید:
apache2 -version
خروجی:
اگر از CentOS استفاده می کنید، سرویس به طور خودکار راه اندازی نمی شود. با اجرای دستور زیر می توانید سرویس را به صورت دستی راه اندازی کنید:
sudo systemctl start httpd
وضعیت خدمات را به شرح زیر بررسی کنید:
sudo systemctl status httpd
مرحله 3: فایروال را برای اجازه دسترسی به سرور آپاچی پیکربندی کنید
یکی دیگر از مراحل اجباری در پیکربندی آپاچی، فعال کردن فایروال UFW در لینوکس برای پذیرش یا اجازه دسترسی ترافیک به سرور از طریق درگاه پیشفرض 80 است. در حین نصب، سرویس با برخی از پروفایلهای برنامه در فایروال ثبت میشود. لیست پروفایل های برنامه به شما کمک می کند تا دسترسی آپاچی را فعال یا غیرفعال کنید.
از دستور زیر برای لیست کردن تمام پروفایل های برنامه Apache استفاده کنید:
sudo ufw app list
خروجی:
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
نمایه های موجود نشان دهنده:
- آپاچی: فقط پورت 80 را برای فعال کردن ارتباطات رمزگذاری نشده از طریق اینترنت باز می کند
- Apache Full: هر دو پورت 80 و 443 را برای ارتباط بدون رمز و ایمن باز می کند
- Apache Secure: دسترسی ایمن به سرور را از طریق HTTPS با اجازه دادن به ترافیک در پورت 443 فعال می کند.
از آنجایی که ما SSL/TLS را برای سرور فعال نداریم، دسترسی UFW را فقط در پورت 80 به صورت زیر مجاز میکنیم:
sudo ufw allow 'Apache'
حال با اجرای زیر وضعیت فایروال را بررسی کنید:
sudo ufw status
مرحله 4: دایرکتوری ها و فایل های آپاچی را بشناسید
پس از نصب و پیکربندی موفقیت آمیز سرور، هر مبتدی باید بداند که سرور چگونه وب سایت ها و محتوای آنها را مدیریت می کند. پوشه /var/www/html تمام وب سایت هایی را که می خواهید روی سرور خود میزبانی کنید، مدیریت می کند.
به طور پیش فرض، دایرکتوری حاوی صفحه وب است که قبلاً دیده اید. آپاچی به شما اجازه می دهد تا زیر شاخه های مختلفی را در این پوشه برای میزبانی چندین وب سایت ایجاد کنید.
در توزیعهای مبتنی بر اوبونتو و دبیان، دایرکتوری پیکربندی اصلی برای سرور آپاچی /etc/apache2 است، در حالی که برای CentOS، /etc/httpd است. از این رو، تمام فایل های پیکربندی سرور در داخل این دایرکتوری ها موجود است. برخی از شناخته شده ترین فایل ها/دایرکتوری ها عبارتند از:
- /var/log/apache2/error.log: تمام خطاهای مواجه شده را ثبت می کند
- /var/log/apache2/access.log: تمام درخواست های دسترسی ارائه شده به سرور را ثبت می کند
- /etc/apache2/sites-available: دایرکتوری حاوی میزبان های مجازی است
- /etc/apache2/sites-enabled: فروشگاههایی که آماده سرویس دهی به وبسایتها در هر میزبان مجازی هستند. بدون پیوند دادن فایل پیکربندی در دایرکتوری sites-available با استفاده از دستور a2ensite نمی تواند کار کند.
مثالی برای راه اندازی هاست مجازی
نصب سرور آپاچی یک دایرکتوری پیش فرض از /var/www/html در تمام توزیع های لینوکس ایجاد می کند. این دایرکتوری حاوی تمام فایل های وب سایت شما است، اما اگر بخواهید چندین وب سایت را روی یک سرور میزبانی کنید، نمی تواند کار کند.
برای سرویس دهی به چندین دامنه، می توانید از هاست های مجازی استفاده کنید و یک دایرکتوری دامنه در داخل پوشه /var/www به شرح زیر ایجاد کنید:
sudo mkdir /var/www/host_example
مالکیت و مجوزهای فایل دایرکتوری را با استفاده از chown تغییر دهید.
sudo chown -R $current_user:$current_user /var/www/host_example
sudo chmod -R 755 /var/www/host_example
حالا فایل /var/www/host_example/html/content.html را در ویرایشگر مورد علاقه خود باز کنید و HTML زیر را کپی/پیست کنید:
<html>
<head>
<title>Welcome to host_example!</title>
</head>
<body>
<h1>You are running host_example on Ubuntu 18.04!</h1>
</body>
</html>
آپاچی یک پوشه پیکربندی ایجاد می کند که به عنوان یک مکان ذخیره برای حاوی رکورد میزبان های مجازی عمل می کند. فایل پیکربندی پیش فرض /etc/apache2/sites-available/000-default.conf است. با این حال، می توانید یک فایل جدید با توجه به نام دامنه خود ایجاد کنید و بلوک پیکربندی موجود در فایل پیش فرض را کپی/پیست کنید.
فایل را با یک ویرایشگر متن انتخابی خود ویرایش کنید و آن را با نام دامنه و دایرکتوری جدید به صورت زیر به روز کنید:
<VirtualHost *:80>
ServerAdmin admin@host_example
ServerName host_example
ServerAlias www.host_example
DocumentRoot /var/www/host_example
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
فایل پیکربندی دامنه خود را فعال کنید
فعال سازی فایل پیکربندی دامنه host_example.conf نیاز به استفاده از a2ensite دارد.
sudo a2ensite host_example.conf
خروجی بالا الزامات غیرفعال کردن فایل تنظیمات پیش فرض (000-default.conf) را نشان می دهد:
sudo a2dissite 000-default.conf
اکنون سرویس apache را مجددا راه اندازی کنید تا تغییرات بارگذاری شود.
sudo systemctl restart apache2
به مرورگر بروید و به نام دامنه بروید تا بررسی کنید که آیا به وب سایت شما سرویس می دهد یا خیر:
http://host_example
تست خطاهای پیکربندی
ابزار apache2ctl به شما اجازه می دهد تا خطاهای پیکربندی سرور آپاچی را بررسی کنید. دستور زیر باید خروجی Syntax OK را برای تأیید پیکربندی موفق بدون خطا برگرداند:
sudo apache2ctl configtest
خروجی:
Syntax OK
میزبانی چندین وب سایت در سرورهای لینوکس با استفاده از آپاچی
آموزش بالا ماژولار بودن و سهولت نصب و پیکربندی سرور آپاچی را نشان می دهد. تطبیق پذیری سرور به شما این امکان را می دهد که راه اندازی و میزبانی وب سایت ها را بر اساس نیاز خود پیکربندی کنید. استفاده از تنظیمات میزبان مجازی نشان میدهد که فایلهای پیکربندی چگونه کار میکنند و چگونه تعامل دارند.
همچنین ممکن است متوجه شده باشید که بسته به توزیع لینوکس و نسخه آپاچی، مشخصات/پوشه ها ممکن است تغییر کند. در نهایت، دستورات مدیریت آپاچی برای مدیریت، راه اندازی یا بارگذاری مجدد سرویس های سرور به روشی بهینه وجود دارد. همچنین می توانید سرورهای لینوکس دیگری را برای میزبانی وب سایت خود بیابید.