Paylaşımlı barındırma hizmetlerinde projelerinizi yayınlamak heyecan verici olabilir — ta ki PHP versiyonuyla ilgili bir hata mesajıyla karşılaşana kadar. Laravel 13 kullanırken Hostinger sunucusunda PHP 8.2 çalışıyor ve composer install komutu hata veriyorsa, bu durum sizi uzun saatler boyunca çözüm aramaya itebilir. Neyse ki, sorun aslında basit bir $PATH ayarıyla çözülebilir. İşte nasıl olduğunu adım adım açıklıyoruz.
Hostinger’da PHP Versiyonunun Nasıl Belirlendiğini Anlamak
Hostinger’in hPanel arayüzünde PHP versiyonunu değiştirmek oldukça basittir. Hosting → Yönet → PHP Yönetimi bölümünden istediğiniz PHP versiyonunu (örneğin PHP 8.3) seçebilirsiniz. Bu ayar, web sunucusunun (Nginx/Apache + PHP-FPM) hangi PHP versiyonunu kullanacağını belirler — yani web sitenizin tarayıcıdan erişilen kısmı için PHP versiyonunu kontrol eder.
Ancak SSH terminalinizde çalıştırdığınız komutlar (örneğin php -v ya da composer install) farklı bir PHP versiyonunu kullanabilir. Bu durum, özellikle projenizin composer.json dosyasında PHP versiyon gereksinimleri (örneğin "php": "^8.3") yer alıyorsa ciddi sorunlara yol açar. Çünkü composer install komutu, yerel makinenizdeki PHP versiyonuna değil, SSH oturumunuzda tanımlı olan $PATH değişkenine göre PHP komutunu çalıştırır.
İlk Denemeler: Neden İşe Yaramadı?
Birçok geliştirici, sorunu çözmek için ilk olarak aşağıdaki yöntemleri deniyor:
- `composer update` komutu: Bu komut, bağımlılıklarınızı güncellemeye çalışır, ancak
composer.jsondosyanızın PHP versiyon gereksinimlerini karşılamadığınızda hata verir. Örneğin:
composer updateKomut, "php": "^8.3" gereksinimini karşılayamayan sunucuda çalışmaz.
- `composer install --ignore-platform-reqs` komutu: Bu komut, platform gereksinimlerini (örneğin PHP versiyonunu) yok sayar ve bağımlılıkları zorla kurar. Ancak bu geçici bir çözümdür ve uygulamada çalışma zamanı hatalarına neden olabilir. Örneğin, PHP 8.3’e özel özellikler kullanan paketler, uyumsuz PHP versiyonunda düzgün çalışmayabilir.
- hPanel’de PHP versiyonunu değiştirmek: Yukarıda belirtildiği gibi, bu ayar sadece web sunucusunu etkiler. SSH terminalindeki PHP versiyonunu değiştirmez.
Bu yaklaşımların hiçbiri kalıcı bir çözüm sunmaz ve sorunun kökenini gözden kaçırır: SSH oturumunda hangi PHP versiyonunun kullanıldığı.
Kalıcı Çözüm: $PATH Değişkenini Düzenlemek
Hostinger, farklı PHP versiyonlarını /opt/alt/ dizini altında ayrı klasörlerde saklar. Örneğin:
ls /opt/alt/
# Çıktı: php74 php80 php81 php82 php83 php85SSH terminalinizde php -v komutunu çalıştırdığınızda, sistem varsayılan olarak /usr/bin/php yolunu kullanır — bu genellikle Hostinger’in varsayılan PHP versiyonudur (örneğin PHP 8.2). Ancak projeniz PHP 8.3 gerektiriyorsa, bu uyuşmazlık composer install komutunun başarısız olmasına neden olur.
Adım 1: Mevcut PHP versiyonunu kontrol edin
php -v
# Örnek çıktı: PHP 8.2.30 (cli) (built: ...)Bu çıktı, SSH terminalinizin hangi PHP versiyonunu kullandığını gösterir.
Adım 2: İstenilen PHP versiyonunun yolunu $PATH değişkenine ekleyin
Hostinger’in /opt/alt/php85/usr/bin/ yolunda PHP 8.5 yer alır. Bu yolu $PATH değişkeninin en başına ekleyerek, sistemin php komutunu bu konumdan bulmasını sağlayabilirsiniz. Örneğin:
export PATH="/opt/alt/php85/usr/bin:$PATH"Ardından PHP versiyonunu tekrar kontrol edin:
php -v
# Örnek çıktı: PHP 8.5.0 (cli) (built: ...)Artık composer install komutu düzgün çalışmalıdır:
composer installAdım 3: $PATH ayarını kalıcı hale getirin
Yukarıdaki export komutu, yalnızca mevcut SSH oturumunuz için geçerlidir. Bu ayarı kalıcı hale getirmek için shell profil dosyanıza ekleyin. Örneğin, Bash kullanıyorsanız:
echo 'export PATH="/opt/alt/php85/usr/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcEğer Zsh kullanıyorsanız:
echo 'export PATH="/opt/alt/php85/usr/bin:$PATH"' >> ~/.zshrc
source ~/.zshrcArtık her yeni SSH oturumunuzda PHP versiyonu otomatik olarak doğru şekilde ayarlanacaktır.
Bu Çözümün Arkasındaki Mantık
Hostinger’in paylaşımlı barındırma hizmetlerinde birçok kullanıcı farklı PHP versiyon gereksinimlerine sahip olabilir. Bu nedenle, sistem /opt/alt/ dizini altında her PHP versiyonunu ayrı klasörlerde saklar. hPanel’de yaptığınız PHP versiyonu seçimi, web sunucusunun hangi PHP versiyonunu kullanacağını belirler — ancak SSH terminalinizin $PATH değişkeni, sistemin hangi PHP versiyonunu varsayılan olarak kullanacağını kontrol eder.
$PATH değişkenine /opt/alt/phpXX/usr/bin yolunu eklemek, sistemin php komutunu bu konumdan bulmasını sağlar. Bu sayede, composer install ve composer update komutları doğru PHP versiyonunu kullanarak çalışır ve platform gereksinimlerini karşılar.
Özet: Hızlı Çözüm Adımları
Aşağıdaki adımları izleyerek PHP versiyon uyuşmazlığını hızlıca çözebilirsiniz:
- hPanel’de PHP versiyonunu değiştirin: Web sunucusu için doğru versiyonu seçin.
- `composer install --ignore-platform-reqs` kullanmayın: Bu geçici bir çözümdür ve risklidir.
- `/opt/alt/phpXX/usr/bin` yolunu `$PATH` değişkenine ekleyin: SSH terminalinde doğru PHP versiyonunu kullanın.
- `export` komutunu kalıcı hale getirin:
.bashrcya da.zshrcdosyanıza ekleyin.
Son Sözler
Hostinger gibi paylaşımlı barındırma hizmetlerinde PHP versiyon uyuşmazlıkları, projelerinizin yayınlanmasını geciktirebilir. hPanel ve SSH terminali arasındaki bu ayrım, birçok geliştiricinin karşılaştığı yaygın bir sorundur. Yukarıda açıkladığımız $PATH düzenleme yöntemi, bu sorunu kalıcı ve güvenilir bir şekilde çözmenizi sağlar.
Eğer Laravel gibi modern framework’ler kullanıyorsanız, PHP versiyon gereksinimlerine dikkat etmek önemlidir. Doğru versiyonu kullanmak, uygulamalarınızın stabil çalışmasını ve gelecekteki güncellemelerin sorunsuz şekilde yapılmasını sağlar. Umarız bu rehber, sizin için de faydalı olmuştur ve projelerinizin yayın sürecini kolaylaştırır.
Yapay zeka özeti
Hostinger paylaşımlı barındırmada PHP versiyon uyuşmazlığı yaşadınız mı? Laravel projelerinde karşılaşılan bu sorunu çözmek için gereken adımları ve kalıcı düzeltmeyi öğrenin. Hızlı ve güvenilir yöntemler.