نصب Apache در CentOS Stream مسیر بهروز این آموزش است. نسخهٔ قبلی مقاله برای CentOS Linux 7 نوشته شده بود؛ پشتیبانی آن در ۳۰ ژوئن ۲۰۲۴ پایان یافته است. برای سرور جدید، آموزش CentOS 7 را با مخزن آرشیوی دوباره زنده نکنید.
دامنهٔ نصب Apache در CentOS Stream
نمونهٔ زیر برای سرور مستقل خانوادهٔ Enterprise Linux و بستهٔ httpd است؛ در CentOS Stream 10 باید مخازن رسمی همان نسخه فعال باشند. مرجع تنظیمات، راهنمای httpd در RHEL 10 است؛ نسخهٔ بسته و فایلهای مؤثر را روی سیستم خود بررسی کنید.
صفحهٔ نسخههای CentOS تفاوت Stream و Linux قدیمی را روشن میکند. نصب یک بسته، سیستم CentOS 7 را به Stream ارتقا نمیدهد. مهاجرت سیستمعامل کار جداگانهای با بررسی سازگاری برنامههاست.
نصب و شروع سرویس httpd
با حساب دارای sudo و بدون تداخل وبسرور موجود، ابتدا مشخصات بسته را ببینید و سپس نصب کنید. این دستورات برای سرور دارای کنترلپنلِ مدیریتکنندهٔ وبسرور نسخهٔ عمومی نیستند.
cat /etc/os-release
dnf info httpd
sudo dnf install httpd
sudo systemctl enable --now httpd
systemctl status httpd --no-pager
enable شروع هنگام بوت و –now شروع فعلی را درخواست میکند. اگر پورت اشغال است یا پیکربندی خطا دارد، پیام سرویس را بررسی کنید. همهٔ IPهای خروجی hostname -I الزاماً آدرس عمومی قابل دسترس از اینترنت نیستند.
پوشه و میزبان مجازی هماهنگ
برای سایت نمونه، پوشهٔ /var/www/example.com/public را ایجاد و فایل index.html با متن اختصاصی داخل آن قرار دهید. مسیر DocumentRoot باید دقیقاً همین مسیر باشد. سپس فایل /etc/httpd/conf.d/example.com.conf را بسازید:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com/public
<Directory /var/www/example.com/public>
Options -Indexes
AllowOverride None
Require all granted
</Directory>
ErrorLog /var/log/httpd/example-error.log
CustomLog /var/log/httpd/example-access.log combined
</VirtualHost>
در Apache 2.4 برای این الگوی ناممحور نیازی به دستور قدیمی NameVirtualHost نیست. فایلهای conf.d باید توسط پیکربندی اصلی خوانده شوند. برخلاف Ubuntu، دستور a2ensite روش معمول این بسته نیست. نام دامنهٔ نمونه و مسیرها را در همهٔ بخشها یکسان جایگزین کنید.
مجوز فایل و SELinux
فرایند httpd باید فایلها را بخواند و پوشهها را پیمایش کند. محتوای ایستا در مسیرهای معمول /var/www با زمینهٔ SELinux مربوط به محتوای وب مدیریت میشود. برای بررسی برچسب و بازگرداندن مقدار سیاست همان مسیر میتوان از این دستورات استفاده کرد:
ls -Zd /var/www/example.com/public
sudo restorecon -Rv /var/www/example.com
مسیر سفارشی خارج از محدودهٔ شناختهشده ممکن است تعریف پایدار fcontext بخواهد. خاموشکردن SELinux یا chmod 777 راهحل عمومی 403 نیست. نیاز نوشتن برنامه نیز با ارائهٔ فایل ایستا تفاوت دارد.
آزمون و دسترسی بیرونی
sudo apachectl configtest
sudo systemctl reload httpd
دستور دوم را فقط پس از موفقیت آزمون اجرا کنید. در firewalld، ابتدا zone فعال رابط را مشخص کنید و سرویس HTTP را فقط در همان محدودهٔ مورد نیاز مجاز کنید. فعالکردن HTTPS به گواهی و پیکربندی مستقل نیاز دارد؛ بازکردن پورت کافی نیست.
دامنه باید به IP درست اشاره کند و متن اختصاصی همین میزبان را نشان دهد. اگر صفحهٔ تست یا سایت دیگری دیده شد، با قواعد انتخاب VirtualHost نام میزبان را بررسی کنید. لاگ خطا را با زمان درخواست تطبیق دهید و سپس تنظیمات برنامهٔ اصلی را اضافه کنید.
مطالعهٔ مرتبط
بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شدهاند.