در خانوادهی RHEL، Apache با نام httpd شناخته میشود و PHP بهطور پیشفرض از طریق PHP-FPM اجرا میشود.
۱. نصب
sudo dnf install -y httpd mod_ssl php php-fpm php-mysqlnd php-mbstring php-xml php-gd php-intl
sudo systemctl enable --now httpd php-fpm
sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reload۲. VirtualHost
sudo mkdir -p /var/www/example.ir/public
sudo nano /etc/httpd/conf.d/example.ir.conf<VirtualHost *:80>
ServerName example.ir
ServerAlias www.example.ir
DocumentRoot /var/www/example.ir/public
<Directory /var/www/example.ir/public>
AllowOverride All
Require all granted
Options -Indexes +FollowSymLinks
</Directory>
ErrorLog /var/log/httpd/example.ir-error.log
CustomLog /var/log/httpd/example.ir-access.log combined
</VirtualHost>چون محتوا زیر /var/www است، برچسب SELinux آن خودکار درست است. اگر برنامه باید در پوشهای بنویسد (مثلاً آپلود)، فقط همان پوشه را قابلنوشتن کنید:
sudo mkdir -p /var/www/example.ir/public/uploads
sudo chown apache: /var/www/example.ir/public/uploads
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/example.ir/public/uploads(/.*)?"
sudo restorecon -Rv /var/www/example.ir۳. اعمال و آزمایش
sudo apachectl configtest && sudo systemctl reload httpd
echo '<?php echo "ok ", PHP_VERSION;' | sudo tee /var/www/example.ir/public/t.php
curl -s -H 'Host: example.ir' http://127.0.0.1/t.php && sudo rm /var/www/example.ir/public/t.php۴. اتصال به پایگاه داده روی سرور دیگر
sudo setsebool -P httpd_can_network_connect_db on۵. HTTPS
sudo dnf install -y certbot python3-certbot-apache
sudo certbot --apache -d example.ir -d www.example.ircertbot در مخزن EPEL است (فعالسازی EPEL).