سرور HTTP آپاچی به عنوان پرکاربردترین وب سرور در دنیای اینترنت شناخته میشود. از ویژگی های نصب آپاچی می توان به متنباز بودن و رایگان بودن آن اشاره کرد. همچنین به دلیل ویژگیهای منحصربهفرد خود، از جمله ماژولهای قابل بارگذاری پویا، پشتیبانی گسترده از انواع رسانهها و قابلیت ادغام با سایر نرمافزارهای محبوب، به انتخابی ایدهآل برای بسیاری از توسعهدهندگان و مدیران سیستم تبدیل شده است. در این راهنمای جامع، به طور گام به گام، مراحل نصب آپاچی و پیکربندی و تنظیمات آن را بر روی سیستم عامل اوبونتو شرح خواهیم داد. با ما در این مقاله از مبین هاست همراه باشید تا بتوانید به راحتی وب سرور قدرتمند آپاچی را بر روی سرور اوبونتو خود نصب و از قابلیتهای بیشمار آن بهرهمند شوید.
پیشنیازها
قبل از شروع این راهنما، به یک سرور لینوکس اوبونتو نیاز دارید که با یک کاربر روت با دسترسیهای sudo و یک فایروال فعال برای مسدود کردن پورتهای غیر ضروری تنظیم شده باشد. پس از اتمام این تنظیمات، به عنوان کاربر روت وارد سیستم شوید و به مرحله اول بروید.
نصب آپاچی در اوبونتو
برای آشنایی با آموزش نصب Apache در اوبونتو باید موارد زیر را در نظر بگیرید.
مرحله 1 – نصب آپاچی
وب سرور آپاچی در مخازن نرمافزاری پیشفرض سرور مجازی لینوکس اوبونتو موجود است. نصب وبسرور آپاچی با استفاده از ابزارهای مدیریت بسته معمولی قابل انجام است.
با بهروزرسانی فهرست بستههای محلی شروع کنید تا آخرین تغییرات پیشرفته را داشته باشد.
sudo apt update
سپس، بسته apache2 را نصب کنید:
sudo apt install apache2
پس از تأیید نصب، apt آپاچی و تمام وابستگیهای مورد نیاز را نصب خواهد کرد.
مرحله 2 – تنظیم فایروال
به منظور امکان دسترسی خارجی به وب سرور آپاچی، لازم است تنظیمات فایروال UFW موجود بر روی سیستم تغییر داده شود. در صورت پیروی از دستورالعملهای پیشنیاز، فایروالUFW از قبل بر روی سیستم شما تنظیم شده است. در طول نصب آپاچی، این برنامه خود را با UFW ثبت میکند تا چند پروفایل برنامه را ارائه دهد که میتوانند برای فعال یا غیرفعال کردن دسترسی به آپاچی از طریق فایروال استفاده شوند.
لیست پروفایلهای برنامه ufw را با اجرای دستور زیر مشاهده کنید:
sudo ufw app list
خروجی شما لیستی از پروفایلهای برنامه خواهد بود:
Output Available applications: Apache Apache Full Apache Secure OpenSSH
همانطور که در خروجی نشان داده شده است، سه پروفایل برای آپاچی در دسترس است:
- Apache: این پروفایل فقط پورت 80 (ترافیک وب معمولی و رمزگذاری نشده) را باز میکند.
- Apache Full: این پروفایل هم پورت 80 (ترافیک وب معمولی و رمزگذاری نشده) و هم پورت 443 (ترافیک رمزگذاری شده TLS/SSL) را باز میکند.
- Apache Secure: این پروفایل فقط پورت 443 (ترافیک رمزگذاری شده TLS/SSL) را باز میکند.
پیشنهاد میکنیم که در نصب آپاچی از محدودکنندهترین پروفایل موجود که همچنان امکان عبور ترافیک تنظیم شده را فراهم میآورد، استفاده نمایید. از آنجا که هنوز SSL را برای سرور خود در این راهنما تنظیمات نکردهاید، فقط باید اجازه ترافیک در پورت 80 را بدهید:
sudo ufw allow 'Apache'
شما میتوانید تغییر را با بررسی وضعیت تأیید کنید:
sudo ufw status
خروجی لیستی از ترافیک HTTP مجاز را ارائه میدهد:
| To | Action | From | |---------------|--------|-------------| | OpenSSH | ALLOW | Anywhere | | Apache | ALLOW | Anywhere | | OpenSSH (v6) | ALLOW | Anywhere (v6)| | Apache (v6) | ALLOW | Anywhere (v6)|
همانطور که در خروجی نشان داده شده است، پروفایل برای اجازه دسترسی به سرور وب آپاچی فعال شده است.
مرحله 3 – بررسی وب سرور
بعد از نصب آپاچی، اوبونتو به طور خودکار این سرویس را اجرا میکند و وب سرور شما آماده به کار میشود.
برای اینکه مطمئن شوید همه چیز درست است، باید وضعیت سرویس آپاچی را بررسی کنید. برای این کار، از دستور زیر در ترمینال استفاده کنید:
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 Tue 2022-04-26 15:33:21 UTC; 43s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 5089 (apache2) Tasks: 55 (limit: 1119) Memory: 4.8M CPU: 33ms CGroup: /system.slice/apache2.service ├─5089 /usr/sbin/apache2 -k start ├─5091 /usr/sbin/apache2 -k start └─5092 /usr/sbin/apache2 -k start
همونطور که میبینید، نرم افزار نوشته active (running) که نشان میدهد. این بدان معناست که سرویس آپاچی با موفقیت اجرا شده است.
راه دیگر برای چک کردن کارکرد درست آپاچی
راه دیگری هم هست برای اینکه مطمئن شوید آپاچی درست کار میکند. شما میتوانید از طریق مرورگر وب به صفحه پیشفرض آپاچی بروید. برای این کار، باید آدرس IP سرور خودتان را بدانید.
چطور آدرس IP را پیدا کنیم؟
برای پیدا کردن آدرس IP سرور، چند راه هست:
- راه اول: در ترمینال دستور زیر را بنویسید:
hostname -I
این دستور چند تا آدرس IP به شما نشان میدهد که میتوانید هر کدام را در مرورگر امتحان کنید.
- راه دوم: از سایت icanhazip.com استفاده کنید. این سایت آدرس IP شما را نشان میدهد. کافی است در مرورگرتان این آدرس را باز کنید:
curl -4 icanhazip.com
اکنون میتوانید صفحه آپاچی را بررسی کنید. وقتی آدرس IP سرور را پیدا کردید، آن را در نوار آدرس مرورگرتان وارد کنید. باید یک صفحه وب پیشفرض از آپاچی ببینید. این صفحه نشان میدهد که نصب آپاچی به درستی انجام شده و کار میکند.
مرحله 4 – مدیریت فرآیند آپاچی
اکنون که وب سرور راهاندازی و اجرا شد، بیایید چند دستور مدیریتی اولیه را با استفاده از systemctl بررسی کنیم.
برای توقف وب سرور خود، دستور زیر را اجرا کنید:
sudo systemctl stop apache2
برای شروع وب سرور زمانی که متوقف شده است، دستور زیر را اجرا کنید:
sudo systemctl start apache2
برای توقف و سپس شروع مجدد سرویس، دستور زیر را اجرا کنید:
sudo systemctl restart apache2
اگر فقط تنظیمات آپاچی را تغییر دادهاید، نیازی به قطع ارتباط کاربران نیست. برای اعمال تغییرات، از دستور زیر استفاده کنید:
sudo systemctl reload apache2
به طور پیشفرض، آپاچی تنظیم شده که به طور خودکار هنگام بوت شدن سرور شروع شود. اگر تمایلی به چنین کاری ندارید، با اجرای دستور زیر آن راغیرفعال کنید:
sudo systemctl disable apache2
برای فعال کردن مجدد سرویس برای شروع در هنگام بوت، دستور زیر را اجرا کنید:
sudo systemctl enable apache2
اکنون آپاچی به طور خودکار هنگام بوت شدن سرور دوباره شروع خواهد شد.
مرحله 5 – تنظیم میزبانهای مجازی (توصیه شده)
هنگام استفاده از وب سرور آپاچی، میتوانید از میزبانهای مجازی (مشابه بلاکهای سرور در Nginx) برای کپسوله کردن جزئیات تنظیمات و میزبانی بیش از یک دامنه، از یک سرور واحد استفاده کنید. ما یک دامنه به نام your_domain را تنظیم میکنیم، اما شما باید با نام دامنه خودتان جایگزین کنید.
آپاچی در لینوکس اوبونتو به طور پیشفرض یک بلاک سرور فعال دارد که برای ارائه اسناد از پوشه /var/www/html تنظیم شده است. در حالی که این بلاک سرور برای یک سایت به خوبی کار میکند. اگر چندین سایت را میزبانی میکنید، میتواند تجربه خوبی نباشد. به جای تغییر مستقیم پوشه /var/www/html، یک پوشه جداگانه به نام your_domain در /var/www بسازید. به این ترتیب، فایلهای سایت your_domain در یک جای مشخص قرار میگیرند و /var/www/html همچنان به عنوان پوشه پیشفرض برای سایتهایی که اسم مشخصی ندارند، باقی میماند.
پوشه your_domain را به صورت زیر ایجاد کنید:
sudo mkdir /var/www/your_domain
در مرحله بعد، مالکیت پوشه را با استفاده از متغیر محیطی $USER به کاربری که در حال حاضر به آن وارد شدهاید، اختصاص دهید:
sudo chown -R $USER:$USER /var/www/your_domain
به طور معمول، اگر تنظیمات پیشفرض مجوز فایلها (umask) را تغییر نداده باشید، پوشه اصلی وبسایت شما (/var/www/your_domain) مجوزهای درستی دارد. با این حال، برای اطمینان بیشتر از اینکه مالک فایلها (کاربری که شما هستید) میتواند فایلها را بخواند، بنویسد و اجرا کند و سایر کاربران فقط میتوانند فایلها را بخوانند و اجرا کنند، دستور زیر را اجرا کنید:
sudo chmod -R 755 /var/www/your_domain
در مرحله بعد، با استفاده از nano یا ویرایشگر دلخواه خود، یک صفحه index.html نمونه ایجاد کنید:
sudo nano /var/www/your_domain/index.html
درون آن، HTML نمونه زیر را اضافه کنید:
HTML /var/www/your_domain/index.html <html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain virtual host is working!</h1> </body> </html>
پس از اتمام، فایل را ذخیره و ببندید. اگر از nano استفاده میکنید، میتوانید این کار را با فشار دادن CTRL + X، سپس Y و ENTER انجام دهید.
برای اینکه آپاچی محتوای سایت your_domain را نمایش دهد، باید یک فایل تنظیمات جداگانه برای این سایت ایجاد کنید. به جای اینکه فایل تنظیمات پیشفرض آپاچی (/etc/apache2/sites-available/000-default.conf) را مستقیماً تغییر دهید، یک فایل جدید به نام your_domain.conf در پوشه /etc/apache2/sites-available/ بسازید.
sudo nano /etc/apache2/sites-available/your_domain.conf
بلوک تنظیمات زیر را که مشابه پیشفرض است، اما برای فهرست و نام دامنه جدید شما بهروزرسانی شده است، اضافه کنید:
/etc/apache2/sites-available/your_domain.conf <VirtualHost *:80> ServerAdmin webmaster@localhost 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 </VirtualHost>
در فایل تنظیمات virtual host، چند تغییر مهم باید ایجاد کنید:
- DocumentRoot به مسیر پوشه جدید your_domain تغییر مییابد. این بدان معناست که آپاچی دیگر به طور پیشفرض فایلها را از پوشه /var/www/html برنمیدارد، بلکه از پوشه /var/www/your_domain برمیدارد.
- ServerAdmin به یک ایمیل معتبر تغییر یافت. این ایمیل، ایمیلی است که مدیر سایت your_domain میتواند به آن دسترسی داشته باشد و برای مسائل مربوط به سایت با آن ایمیل زده میشود.
- دو دستور مهم دیگر نیز اضافه کردیم:
- ServerName: این دستور مشخص میکند که این virtual host مربوط به کدام دامنه است (your_domain).
- ServerAlias: این دستور یک نام دیگر نیز برای دامنه تعریف میکند. (www.your_domain). این کار باعث میشود که سایت شما هم با your_domain و هم با www.your_domain قابل دسترس باشد.
پس از انجام این تغییرات، فایل را ذخیره کرده و ببندید.
اکنون باید این فایل تنظیمات را فعال کنیم تا آپاچی بداند که باید از این تنظیمات برای سایت your_domain استفاده کند. برای این کار از دستور a2ensite استفاده میکنیم:
sudo a2ensite your_domain.conf
این دستور فایل your_domain.conf را فعال میکند.
سایت پیشفرض تعریف شده در 000-default.conf را غیرفعال کنید:
sudo a2dissite 000-default.conf
در مرحله بعد، خطاهای تنظیمات را بررسی کنید:
sudo apache2ctl configtest
باید خروجی زیر را دریافت کنید:
Output . . . Syntax OK
آپاچی را برای اعمال تغییرات خود مجدداً راهاندازی کنید:
sudo systemctl restart apache2
اکنون آپاچی نام دامنه شما را ارائه میدهد. میتوانید این را با رفتن به http://your_domain آزمایش کنید.
مرحله 6 – آشنایی با فایلها و پوشههای مهم آپاچی
اکنون که با نحوه مدیریت و نصب آپاچی آشنا شدهاید، زمان آن رسیده که درباره برخی از فایلها و پوشههای مهم آن نیز بیشتر اطلاعاتی بدست بیاورید.
محتوا
- /var/www/html: این پوشه محل قرار گرفتن محتوای وبسایت شماست. به طور پیشفرض، صفحه آپاچی در این پوشه قرار دارد. البته این مسیر قابل تغییر بوده و میتوانید آن را در فایلهای تنظیمات آپاچی تغییر دهید.
تنظیمات سرور
- /etc/apache2: این پوشه، دایرکتوری تنظیمات آپاچی است و کلیه فایلهای تنظیمات آپاچی در این مکان قرار دارند.
- /etc/apache2/apache2.conf: این فایل، فایل تنظیمات اصلی آپاچی است و میتوان آن را برای اعمال تغییرات در تنظیمات سراسری برای نصب آپاچی ویرایش نمود. این فایل مسئول بارگذاری بسیاری از فایلهای دیگر در دایرکتوری تنظیمات است.
- /etc/apache2/ports.conf: این فایل پورتهایی را که آپاچی در آن منتظر گرفتن دستور است را مشخص میکند. به طور پیشفرض، آپاچی از پورت 80 (برای HTTP) و پورت 443 (برای HTTPS، در صورت فعال بودن ماژول SSL) درخواست دریافت میکند.
- /etc/apache2/sites-available/: این دایرکتوری محل ذخیرهسازی فایلهای تنظیمات مربوط به هر سایت (Virtual Host) است. آپاچی تا زمانی که این فایلها به دایرکتوری sites-enabled لینک نشوند، از آنها استفاده نخواهد کرد. معمولاً تنظیمات هر Virtual Host در این دایرکتوری انجام شده و سپس با استفاده از دستور a2ensite به دایرکتوری sites-enabled لینک میشود.
- /etc/apache2/sites-enabled/: این دایرکتوری محل ذخیرهسازی فایلهای تنظیمات Virtual Hostهای فعال است. این فایلها معمولاً با استفاده از دستور a2ensite از دایرکتوری sites-available به این دایرکتوری لینک میشوند. آپاچی هنگام راهاندازی یا بارگذاری مجدد، فایلهای تظیمات و لینکهای موجود در این دایرکتوری را برای ایجاد تنطیمات کامل بررسی میکند.
- /etc/apache2/conf-available/ و /etc/apache2/conf-enabled/: این دو دایرکتوری نیز مانند sites-available و sites-enabled هستند، با این تفاوت که برای ذخیرهسازی تنظیمات کلی آپاچی (نه فقط یک سایت خاص) استفاده میشوند. فایلهای موجود در conf-available با دستور a2enconf فعال و با دستور a2disconf غیرفعال میشوند.
- /etc/apache2/mods-available/ و /etc/apache2/mods-enabled/: این دو دایرکتوری به ترتیب شامل ماژولهای موجود و فعال آپاچی هستند. فایلهای با پسوند .load شامل قطعاتی برای بارگذاری ماژولهای خاص هستند، در حالی که فایلهای با پسوند .conf حاوی تنظیمات آن ماژولها میشوند. ماژولها را میتوان با استفاده از دستورات a2enmod و a2dismod فعال و غیرفعال کرد.
گزارشهای سرور
- /var/log/apache2/access.log: به طور پیشفرض، هر درخواست به وب سرور شما در این فایل ثبت میشود، مگر اینکه تنظیمات در زمان نصب آپاچی تغییر کرده باشد.
- /var/log/apache2/error.log: به طور پیشفرض، کلیه خطاها در این فایل ثبت میشوند. دستور LogLevel در فایل تنظیمات نصب آپاچی میزان جزئیات گزارشهای خطا را تعیین میکند.
جمع بندی
برای نصب آپاچی در اوبونتو ابتدا با دستور sudo apt update لیست بستهها را بهروزرسانی و سپس با دستور sudo apt install apache2 اقدام به نصب آپاچی میکنیم. سپس با دستور sudo systemctl status apache2 وضعیت سرویس را بررسی و با ورود آدرس IP سرور در مرورگر به صفحه پیشفرض آپاچی دسترسی پیدا میکنیم. در نهایت در این مقاله از مبینهاست، با فایلها و پوشههای مهم آپاچی مانند /var/www/html (محل فایلهای وبسایت)، /etc/apache2 (پوشه تنظیمات) و /var/log/apache2 (پوشه گزارشها) آشنا شدیم.
اکنون که وب سرور آپاچی خود را نصب کردهاید، گزینههای متعددی برای نوع محتوایی که میخواهید ارائه دهید و فناوریهایی که میتوانید برای ایجاد تجربهای غنیتر برای کاربران استفاده کنید، در اختیار دارید. همچنین میتوانید سرور مجازی هلند را از مبینهاست خریداری نمایید.
سوالات متداول
فایلهای آپاچی در اوبونتو کجا هستند؟
آپاچی فایلهای پیکربندی اصلی خود را در پوشه /etc/apache2 نگه میدارد. اجرای دستور زیر تمام فایلهای موجود در این پوشه را فهرست میکند: ls -f /etc/apache2.
آیا میتوان آپاچی را روی اوبونتو اجرا کرد؟
روشهای مختلفی برای اجرای سرور وب آپاچی روی اوبونتو وجود دارد که بستگی به این دارد که سیستم شما مبتنی بر systemd باشد یا SysVinit. سیستم مبتنی بر systemd از systemd به عنوان سیستم راهانداز خود استفاده میکند که قابلیتهای مدیریت سرویس و موازیسازی را فراهم میکند.
تفاوت بین آپاچی و Nginx چیست؟
آپاچی بر اساس یک معماری فرآیند محور عمل میکند و طیف گستردهای از ماژولها را ارائه میدهد. در حالی که NGINX از یک رویکرد رویداد محور استفاده میکند و همزمانی و عملکرد بالاتری را ارائه میدهد.
چگونه به سرور آپاچی در اوبونتو دسترسی پیدا کنم؟
در پایان مراحل نصب، اوبونتو آپاچی را اجرا میکند. وب سرور از قبل بالا و در حال اجرا خواهد بود. با اجرای دستور زیر برای سیستم راهانداز systemd، مطمئن شوید که سرویس فعال است: sudo systemctl status apache2.