Bu içerik, önceki yazımızda bahsettiğimiz birden fazla domaini panel kullanmadan sunucuda barındırma konusuna devam niteliğindedir.
Birden fazla domaini ekledik peki birden fazla php versiyonu kullanabilir miyiz?
Yani ben ailehukuku.com.tr de php 5.6 yı kullanırken cezahukuku.com.tr 8.1 i kullanmak istersem nasıl bir yol izlemeliyim.
Haydi başlayalım.
Öncelikle php 5.6 versiyonunu artık linux serverların son sürümlerinin paket kaynaklarında bulamıyoruz. Bunun için sunucuya sury.org tarafından sağlanan paket kaynağını eklememiz gerekiyor.
Tabi sunucuyu yeni kurduysanız paket kaynağı eklerken gereken bazı uygulamalar elinizde mevcut olmayabilir. Öncelikle bunları denetlemeli ve eksik olanları kurmalısınız.
Şu komutu direk çalıştırın eksik olanları kuracaktır. Eğer zaten sunucunuzda mevcutsa kurulu olan uygulamalara dokunmayacaktır.
apt install curl wget gnupg2 software-properties-common ca-certificates lsb-release apt-transport-https
Şimdi sury paket kütüphanesini indirelim onaylayalım.
wget https://packages.sury.org/php/apt.gpg
apt-key add apt.gpg
Artık sunucuya kütüphaneyi ekleyebiliriz.
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
Eklendi. Şimdi bir güncelleme yapıp kullanabileceğimiz paketlerin güncel listesine erişelim.
apt update
Artık örneğin install php5.6 komutuyla ilgili versiyonu yükleyebilirsiniz. Ama biz her domainde farklı versiyon kullanmayı planladığımız için php5.6-fpm paketini de alacağız. Almışken mysql ve curl da gelsin. Şu komutu verelim ve 5.6 yı lazım olacak alt kütüphaneleriyle kuralım.
apt install php5.6 php5.6-fpm php5.6-mysql php5.6-curl libapache2-mod-fcgid
Elimiz değmişken php8.1 için de benzerini yapalım.
apt install php8.1 php8.1-fpm php8.1-mysql libapache2-mod-php8.1
Şimdi her iki versiyonu da çalıştırıp durumlarını kontrol edelim.
systemctl start php5.6-fpm
systemctl start php8.1-fpmsystemctl status php5.6-fpm
systemctl status php8.1-fpm
Eğer yeşil yazıyla Active: active (running) ifadesini gördüyseniz problem yok demektir.
Şimdi sıra geldi hangi domainin hangi versiyonu kullanacağına;
Öncelikle Apache yi böyle bir şey yapacağımızdan haberdar etmek için ilgili modülü aktif duruma getiriyoruz ve servisi yeniden başlatıyoruz.
a2enmod actions fcgid alias proxy_fcgi
systemctl restart apache2
Domainler için daha önce hazırladığımız apache conf dosyalarına erişeceğiz. Mesela ailehukuku.com.tr domainimiz için;
nano /etc/apache2/sites-available/ailehukuku.com.tr.conf
Burada VirtualHost kod bloğu içerisine şunu ekliyoruz;
<FilesMatch \.php$>
SetHandler “proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>
conf dosyasının son hali şöyle olmalı;
<VirtualHost *:80>
ServerName ailehukuku.com.tr
ServerAlias www.ailehukuku.com.tr
ServerAdmin webmaster@localhost
DocumentRoot /var/www/ailehukuku.com.tr/public_html<FilesMatch \.php$>
SetHandler “proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>ErrorLog ${APACHE_LOG_DIR}/ailehukuku.com.tr-error.log
CustomLog ${APACHE_LOG_DIR}/ailehukuku.com.tr-access.log combined
</VirtualHost>
Yapılan işlemleri test edelim
apachectl configtest
Çıktı olarak Syntax OK ifadesini görüyorsunuz problem yok demektir. Servisi yeniden başlatalım.
systemctl restart apache2
ailehukuku.com.tr domaini için conf dosyasında yaptığımız işlemi cezahukuku.com.tr domaini için de yapmalısınız. Sadece SetHandler “proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost" kısmındaki 5.6 kısmını 8.1 şeklinde değiştirmeniz yeterli. Yani cezahukuku.com.tr domaini için conf şöyle olmalı;
<VirtualHost *:80>
ServerName cezahukuku.com.tr
ServerAlias www.cezahukuku.com.tr
ServerAdmin webmaster@localhost
DocumentRoot /var/www/cezahukuku.com.tr/public_html<FilesMatch \.php$>
SetHandler “proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
</FilesMatch>ErrorLog ${APACHE_LOG_DIR}/cezahukuku.com.tr-error.log
CustomLog ${APACHE_LOG_DIR}/cezahukuku.com.tr-access.log combined
</VirtualHost>
Şimdi her iki web sitesine de bilgi.php adında, içinde php bilgilerinin listeleneceği birer dosya oluşturalım.
echo "<?php phpinfo(); ?>" > /var/www/ailehukuku.com.tr/public_html/bilgi.php
echo "<?php phpinfo(); ?>" > /var/www/cezahukuku.com.tr/public_html/bilgi.php
Yaptığımız işlemi kontrol ettiğimizde ailehukuku.com.tr/bilgi.php sayfasında php5.6, cezahukuku.com.tr/bilgi.php sayfasında da php8.1 kullanıldığını görebilirsiniz.
Kolay gelsin.
Hiç yorum yok:
Yorum Gönder