Skip to content
VDS · المواقع وخوادم الويب

Apache: التثبيت والمضيفات الافتراضية

تثبيت Apache على VPS، وإعداد المضيفات الافتراضية والوحدات، وحل التعارضات الشائعة مع Nginx على المنفذ 80.

آخر تحديث 23 أغسطس 2026

اختر Apache عندما تحتاج إلى .htaccess، أو نظام إدارة محتوى قديم، أو دليل جاهز من مطوّر التطبيق. فهو أثقل في استهلاك الذاكرة من Nginx، لكن على VDS-1 مع موقع صغير واحد لن تلاحظ الفرق.

التثبيت

apt update && apt install -y apache2        # Debian, Ubuntu
dnf install -y httpd && systemctl enable --now httpd   # AlmaLinux, CentOS Stream

يختلف اسم الخدمة: apache2 على Debian وUbuntu، وhttpd في عائلة RHEL. كما تختلف أدلة الإعداد — /etc/apache2 و/etc/httpd.

تحقّق:

systemctl status apache2
curl -I http://127.0.0.1

المضيف الافتراضي

الملف /etc/apache2/sites-available/example.ru.conf:

<VirtualHost *:80>
    ServerName example.ru
    ServerAlias www.example.ru
    DocumentRoot /var/www/example.ru

    <Directory /var/www/example.ru>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.ru-error.log
    CustomLog ${APACHE_LOG_DIR}/example.ru-access.log combined
</VirtualHost>

التفعيل والتحقق:

a2ensite example.ru
a2dissite 000-default
apachectl configtest && systemctl reload apache2

لا تحتاج إلى AllowOverride All إلا إذا كنت تستخدم .htaccess فعلاً. وإن لم تكن تستخدمه، فاضبطه على None: سيتوقف Apache عن البحث عن هذه الملفات في كل دليل عند كل طلب.

الوحدات

a2enmod rewrite headers ssl
systemctl restart apache2

لعرض ما هو مفعّل — apache2ctl -M. لا تفعّل كل شيء: فكل وحدة تُحمَّل في كل عملية عامل.

استخدم PHP-FPM بدلاً من mod_php القديم مع PHP: PHP-FPM.

Apache وNginx معاً

يستمع كلا الخادمين إلى المنفذ 80 افتراضياً، لذا لن يبدأ الثاني ببساطة وسيرمي Address already in use. أمامك خياران:

  • الإبقاء على خادم واحد فقط؛
  • وضع Nginx في المقدمة، وتحويل Apache إلى Listen 127.0.0.1:8080، والتمرير إليه عبر الوكيل — راجع الوكيل العكسي.

لمعرفة ما يستخدم المنفذ:

ss -tulpn | grep :80

الأخطاء الشائعة

العَرَضالسبب
AH00558: Could not reliably determine ... server's fully qualified domain nameلم يُضبط ServerName — إنه تحذير، لكن اضبطه على أي حال
.htaccess لا يعملAllowOverride None في كتلة Directory
لا تبدأ الخدمة بعد تعديلخطأ نحوي — شغّل apachectl configtest دائماً قبل إعادة التحميل
403 على دليلغياب Require all granted أو عدم امتلاك www-data للصلاحيات

السجلات: /var/log/apache2/ (Debian، Ubuntu) أو /var/log/httpd/ (AlmaLinux).

انسخ الإعداد قبل كل تعديل: cp file file.bak. على جهاز ظاهري، التراجع أسهل من محاولة تذكّر ما غيّرته قبل ساعة.