Ubuntu 20.04 Üzerinde Apache ve PHP-FPM ile Çoklu PHP Sürümü Çalıştırma Rehberi
Bu rehberde tek bir Ubuntu sunucusu üzerinde birden fazla PHP sürümünü (örneğin PHP 7.2 ve PHP 7.3) aynı anda nasıl çalıştırabileceğinizi öğreneceksiniz. Apache web sunucusu + PHP-FPM kullanarak farklı gereksinimlere sahip projeleri tek makinada barındırabilir, maliyeti ve karmaşıklığı azaltabilirsiniz.
🚀 Ön Gereksinimler
- Ubuntu 20.04 kurulu bir sunucu
- Sudo yetkisine sahip kullanıcı
- Yüklü ve çalışan Apache web servisi
- Alan adlarınızın sunucu IP’sine yönlenmiş olması (Örn:
site1.rabisu.cloud,site2.rabisu.cloud)
1. PHP Sürümlerinin ve PHP-FPM’in Kurulması
Ubuntu varsayılan depoları tek PHP sürümü içerir. Çoklu sürüm için Ondrej PHP deposu eklenmelidir.
PHP deposunu ekleyin:
sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update -y
1. PHP 7.2 kurulumu
sudo apt-get install php7.2 php7.2-fpm php7.2-mysql libapache2-mod-php7.2 libapache2-mod-fcgid -y
2. PHP 7.3 kurulumu
sudo apt-get install php7.3 php7.3-fpm php7.3-mysql libapache2-mod-php7.3 -y
- Servisleri kontrol edin:
sudo systemctl start php7.2-fpm
sudo systemctl start php7.3-fpm
sudo systemctl status php7.2-fpm php7.3-fpm
3. Apache modüllerini aktif edin:
sudo a2enmod actions fcgid alias proxy_fcgi
sudo systemctl restart apache2
2. Web Sitesi Dizinlerinin Hazırlanması
- Dizinleri oluşturun:
sudo mkdir /var/www/site1.rabisu.cloud
sudo mkdir /var/www/site2.rabisu.cloud
1. Yetki ayarları:
sudo chown -R www-data:www-data /var/www/site1.rabisu.cloud
sudo chown -R www-data:www-data /var/www/site2.rabisu.cloud
sudo chmod -R 755 /var/www/site1.rabisu.cloud
sudo chmod -R 755 /var/www/site2.rabisu.cloud
2. Test amaçlı info.php ekleyin:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/site1.rabisu.cloud/info.php
echo "<?php phpinfo(); ?>" | sudo tee /var/www/site2.rabisu.cloud/info.php
3. Apache VirtualHost Ayarları
1. PHP 7.2 kullanan site
/etc/apache2/sites-available/site1.rabisu.cloud.conf
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName site1.rabisu.cloud
DocumentRoot /var/www/site1.rabisu.cloud
DirectoryIndex info.php
<Directory /var/www/site1.rabisu.cloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>
2. PHP 7.3 kullanan site /etc/apache2/sites-available/site2.rabisu.cloud.conf
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName site2.rabisu.cloud
DocumentRoot /var/www/site2.rabisu.cloud
DirectoryIndex info.php
<Directory /var/www/site2.rabisu.cloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.3-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/site2_error.log
CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>
- Siteleri aktifleştirin:
sudo a2ensite site1.rabisu.cloud
sudo a2ensite site2.rabisu.cloud
sudo a2dissite 000-default.conf
sudo systemctl restart apache2
4. Test Etme
- Tarayıcıdan kontrol edin:
http://site1.rabisu.cloud → PHP 7.2
http://site2.rabisu.cloud → PHP 7.3
- Test dosyalarını silmeyi unutmayın:
sudo rm /var/www/site1.rabisu.cloud/info.php
sudo rm /var/www/site2.rabisu.cloud/info.php
SSS – Sıkça Sorulan Sorular
✔ Daha fazla PHP sürümü ekleyebilir miyim? Evet. Ondrej deposu PHP 5.6 → PHP 8.x arası tüm sürümleri içeriyor.
✔ Performansı etkiler mi? PHP-FPM mod_php’den daha performanslıdır; ancak çok fazla havuz RAM tüketebilir.
✔ Nginx ile de olur mu? Evet, Nginx zaten doğal olarak PHP-FPM ile çalışır.
✔ Prod ortamı için güvenli mi? Evet fakat:
- info.php dosyalarını bırakmayın
- SSL kullanın (Let’s Encrypt önerilir)
🔚 Sonuç
Artık tek bir sunucuda farklı projeler için farklı PHP sürümlerini başarıyla yapılandırdınız. Bu esnek yapı sayesinde eski ve yeni projelerinizi uyumluluk sorunu yaşamadan yönetebilirsiniz.
Projeleriniz için yüksek performanslı ve esnek bir altyapı arıyorsanız, Rabisu Bulut platformunun sunduğu gelişmiş sunucu çözümlerini hemen inceleyebilirsiniz.