Hosting Ortamınızda PHP Sürümünü Değiştirme (Tam Rehber)
PHP sürümünü yönetmek, herhangi bir web sitesi sahibi veya geliştirici için en kritik yönetim görevlerinden biridir. En son performans iyileştirmelerinden yararlanmak için yükseltme yapıyor olsanız, eski uygulama uyumluluğu için düşürüyor olsanız veya güvenlik açıklarını yamayor olsanız, farklı barındırma ortamlarında PHP sürümlerini nasıl değiştireceğinizi tam olarak bilmek önemli bir beceridir. Bu kapsamlı kılavuz, cPanel’in grafik arayüzünden VPS Barındırma ve özel sunuculardaki komut satırı araçlarına kadar mevcut olan her yöntemi size gösterir.
İçindekiler
- PHP Sürüm Yönetimi Neden Önemlidir
- PHP Sürümlerini ve Uyumluluğu Anlamak
- Yöntem 1: cPanel Aracılığıyla PHP Sürümünü Değiştirme (MultiPHP Manager)
- Yöntem 2: .htaccess Aracılığıyla PHP Sürümünü Değiştirme (Apache)
- Yöntem 3: Komut Satırı Aracılığıyla PHP Sürümünü Değiştirme (VPS/Özel Sunucular)
- Yöntem 4: php.ini Aracılığıyla PHP Sürümünü Değiştirme
- Etkin PHP Sürümünüzü Nasıl Doğrulayabilirsiniz
- PHP Sürümlerini Değiştirdikten Sonra Yaygın Hatalar
- PHP Sürüm Yönetimi için En İyi Uygulamalar
- Sonuç
1. PHP Sürüm Yönetimi Neden Önemlidir {#why-it-matters}
PHP, WordPress, Joomla, Drupal ve Magento gibi büyük platformlar da dahil olmak üzere, bilinen sunucu tarafı dili olan tüm web sitelerinin %77’sinden fazlasını desteklemektedir. Her büyük PHP sürümü önemli değişiklikler getirir:
- Performans kazançları: PHP 8.x, JIT (Just-In-Time) derleyicisi sayesinde PHP 5.x veya 7.x’ten çok daha hızlıdır.
- Güvenlik yamaları: Eski PHP sürümleri sonunda Yaşam Sonu (EOL) durumuna gelir ve artık güvenlik güncellemeleri almaz, sitenizi tehlikeye sokar.
- Uygulama uyumluluğu: Bazı eski eklentiler, temalar veya özel uygulamalar belirli PHP sürümleri için yazılmış olabilir ve yeni sürümlerde bozulabilir.
- Barındırma uyumluluğu: Birçok barındırma sağlayıcısı sunucu güvenliği standartlarını korumak için minimum PHP sürüm gereksinimlerini uygular.
PHP sürümünüzü proaktif olarak yönetmemek, bozuk işlevsellik, güvenlik ihlalleri veya tamamen web sitesi kapalı kalması ile sonuçlanabilir. Bu ayarı barındırma türünüz ne olursa olsun kontrol etmeyi bilmek, herhangi bir ciddi web yöneticisi için vazgeçilmezdir.
2. PHP Sürümlerini ve Uyumluluğu Anlamak {#understanding-versions}
Herhangi bir değişiklik yapmadan önce, PHP sürüm yaşam döngüsünü ve sürümlerin nasıl yapılandırıldığını anlamak önemlidir.
PHP Sürüm Numaralandırması
PHP, MAJOR.MINOR.PATCH sürüm oluşturma şemasını takip eder:
| Bileşen | Örnek | Anlamı |
|---|---|---|
| Major | 8 | Önemli mimari değişiklikler, olası kırılma değişiklikleri |
| Minor | 8.2 | Yeni özellikler, geriye dönük uyumlu iyileştirmeler |
| Patch | 8.2.10 | Yalnızca hata düzeltmeleri ve güvenlik yamaları |
PHP Destek Yaşam Döngüsü
Her PHP küçük sürümü şunları alır:
- Yaklaşık 2 yıl Etkin destek (hata düzeltmeleri + güvenlik yamaları)
- Ek 1 yıl Yalnızca güvenlik desteği
- Hiçbir yamanın yayınlanmadığı Yaşam Sonu (EOL)
Şu Anda Desteklenen PHP Sürümleri (2024–2025 itibariyle)
| PHP Sürümü | Durum | Notlar |
|---|---|---|
| PHP 8.3 | Etkin Destek | En son kararlı sürüm |
| PHP 8.2 | Etkin Destek | Çoğu uygulama için önerilen |
| PHP 8.1 | Yalnızca Güvenlik | Hala yaygın olarak kullanılmaktadır |
| PHP 8.0 | EOL | Kaçının — güvenlik yaması yok |
| PHP 7.4 | EOL | Yalnızca eski destek |
| PHP 7.3 ve altı | EOL | Kesinlikle önerilmez |
> Temel kural: Her zaman uygulamanızın resmi olarak desteklediği en yüksek PHP sürümünü çalıştırın. CMS veya çerçeveniz PHP 8.2’yi destekliyorsa, PHP 7.4’ü çalıştırmanın hiçbir nedeni yoktur.
3. Yöntem 1: cPanel Aracılığıyla PHP Sürümünü Değiştirme (MultiPHP Manager) {#cpanel-method}
cPanel, en yaygın olarak kullanılan barındırma kontrol panelidir ve PHP sürüm yönetimi için iki yerleşik araç sağlar: MultiPHP Manager (sunucu genelinde veya etki alanı başına) ve MultiPHP INI Editor (PHP ayarlarını ince ayar için). cPanel ile VPS kullanıyorsanız, her iki araç da sizin için kullanılabilir.
Adım 1: cPanel’e Giriş Yapın
- Tarayıcınızı açın ve cPanel giriş URL’nize gidin:
https://yourdomain.com:2083 (güvenli, önerilen)
https://yourdomain.com/cpanelhttps://your-server-ip:2083- cPanel kullanıcı adınızı ve şifrenizi girin.
- Giriş Yap‘ı tıklayın.
Adım 2: MultiPHP Manager’ı Açın
- cPanel panosunda, Yazılım bölümüne kaydırın.
- MultiPHP Manager‘ı tıklayın.
> Alternatif: Bazı cPanel kurulumları bunu PHP Sürümünü Seç, PHP Config veya PHP Selector olarak etiketler (ikincisi CloudLinux tabanlı paylaşılan barındırmada yaygındır). Arayüz biraz farklı olabilir, ancak işlem aynıdır.
Adım 3: Etki Alanınızı ve PHP Sürümünü Seçin
MultiPHP Manager arayüzünde:
- Hesabınızda barındırılan tüm etki alanlarının ve alt etki alanlarının bir listesini göreceksiniz.
- Değiştirmek istediğiniz etki alanının yanındaki onay kutusunu işaretleyin.
- Sayfanın üstündeki PHP Sürümü açılır menüsünden istediğiniz PHP sürümünü seçin (örneğin,
PHP 8.2). - Uygula‘yı tıklayın.
> Önemli: Paylaşılan barındırma hesabınız varsa, mevcut PHP sürümleri barındırma sağlayıcınız tarafından belirlenir. Listede olmayan bir sürüme ihtiyacınız varsa, ana bilgisayarınızın destek ekibine başvurun veya yüklü PHP sürümleri üzerinde tam kontrole sahip olduğunuz bir VPS Barındırma planına yükseltmeyi düşünün.
Adım 4: (İsteğe Bağlı) MultiPHP INI Editor Aracılığıyla PHP Ayarlarını Özelleştirin
Sürümleri değiştirdikten sonra, PHP yapılandırma değerlerini ayarlamanız gerekebilir:
- cPanel’deki Yazılım bölümüne dönün.
- MultiPHP INI Editor‘ı tıklayın.
- Açılır menüden etki alanınızı seçin.
- Aşağıdaki gibi değerleri değiştirin:
memory_limit (örneğin, 256M)
upload_max_filesize (örneğin, 64M)
max_execution_time (örneğin, 300)
post_max_size (örneğin, 64M)
Değişiklikleri kaydetmek için Uygula‘yı tıklayın.
Adım 5: Değişikliği Doğrulayın
Etkin PHP sürümünü doğrulamak için bir test dosyası oluşturun (tam talimatlar için Bölüm 7’ye bakın).
4. Yöntem 2: .htaccess Aracılığıyla PHP Sürümünü Değiştirme (Apache) {#htaccess-method}
Barındırma ortamınız Apache çalıştırıyorsa ancak grafik bir PHP seçici sağlamıyorsa, PHP sürümünü doğrudan .htaccess dosyanız aracılığıyla kontrol edebilirsiniz. Bu yöntem, sunucu düzeyinde erişimin kısıtlandığı Paylaşılan Web Barındırma planlarında özellikle yararlıdır.
Nasıl Çalışır
Apache, .php dosyalarının nasıl işleneceğini belirlemek için işleyicileri kullanır. .htaccess dosyasında özel bir işleyici belirterek, Apache’ye siteniz için belirli bir PHP sürümü kullanmasını söylersiniz.
Adım 1: .htaccess Dosyanıza Erişin
.htaccess dosyasını şu yollarla düzenleyebilirsiniz:
cPanel Dosya Yöneticisi: public_html dosyasına gidin, .htaccess dosyasını bulun, sağ tıklayın ve Düzenle‘yi seçin.
FTP/SFTP istemcisi: Sunucunuza bağlanın ve web kökünüze (genellikle public_html veya www) gidin.
SSH komut satırı: nano /home/username/public_html/.htaccess> Not: .htaccess gizli bir dosyadır. FTP istemcinizde “Gizli Dosyaları Göster”i etkinleştirin. cPanel Dosya Yöneticisinde, sağ üst ayarlarda “Gizli Dosyaları Göster (dotfiles)”i işaretleyin.
Adım 2: PHP İşleyici Yönergesini Ekleyin
Sunucunuzun PHP işleyici adlandırma kuralına bağlı olarak aşağıdaki satırlardan birini .htaccess dosyanıza ekleyin:
PHP 8.2 için:
AddHandler application/x-httpd-php82 .phpPHP 8.1 için:
AddHandler application/x-httpd-php81 .phpPHP 7.4 için (eski):
AddHandler application/x-httpd-php74 .phpAlternatif sözdizimi (bazı ana bilgisayarlarda kullanılır):
# Using suPHP or FastCGI
Action php-cgi /cgi-bin/php82
AddHandler php-cgi .php> Önemli: Tam işleyici adı (x-httpd-php82, x-httpd-php81 vb.), barındırma sağlayıcınızın sunucularında PHP’yi nasıl yapılandırdığına bağlıdır. Yukarıdakiler işe yaramazsa, barındırma sağlayıcınızın belgelerine bakın veya doğru işleyici adları için desteğe başvurun.
Adım 3: Kaydedin ve Test Edin
.htaccess dosyasını kaydedin ve sitenizi test edin. 500 Internal Server Error görürseniz, işleyici adı muhtemelen yanlıştır — satırı kaldırın ve alternatif bir sözdizimi deneyin.
5. Yöntem 3: Komut Satırı Aracılığıyla PHP Sürümünü Değiştirme (VPS/Özel Sunucular) {#cli-method}
Kendi Özel Sunucularınızı yönetiyorsanız veya kök erişimi olan bir VPS’niz varsa, PHP kurulumu ve sürüm değiştirme üzerinde tam kontrole sahipsiniz. Bu en güçlü ve esnek yöntemdir.
Ön Koşullar
- Sunucunuza kök veya sudo erişimi
- SSH istemcisi (macOS/Linux’ta Terminal, Windows’ta PuTTY veya Windows Terminal)
- Linux komut satırı işlemleri hakkında temel bilgi
Ubuntu / Debian — update-alternatives Kullanma
Ubuntu ve Debian tabanlı sistemler, birden fazla PHP sürümünü aynı anda yönetmek için update-alternatives sistemini kullanır.
#### Adım 1: Ondřej Surý PHP Deposunu Ekleyin
Bu PPA, Ubuntu/Debian için birden fazla PHP sürümü sağlar:
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update#### Adım 2: İstenen PHP Sürümünü Yükleyin
# Install PHP 8.2 and common extensions
sudo apt install -y php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl
php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-bcmath
# Install PHP 8.1 if needed
sudo apt install -y php8.1 php8.1-cli php8.1-fpm php8.1-mysql#### Adım 3: Varsayılan PHP Sürümünü Değiştirin (CLI)
# View all registered PHP alternatives
sudo update-alternatives --list php
# Switch to PHP 8.2
sudo update-alternatives --set php /usr/bin/php8.2
# Or use the interactive selector
sudo update-alternatives --config phpEtkileşimli seçici şuna benzer bir şey gösterecektir:
There are 3 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.1 81 manual mode
3 /usr/bin/php8.2 82 manual mode
Press <enter> to keep the current choice[*], or type selection number:İstediğiniz sürüme karşılık gelen numarayı girin ve Enter tuşuna basın.
#### Adım 4: Apache için PHP Sürümünü Değiştirin (mod_php)
# Disable current PHP module (e.g., PHP 8.1)
sudo a2dismod php8.1
# Enable new PHP module (e.g., PHP 8.2)
sudo a2enmod php8.2
# Restart Apache
sudo systemctl restart apache2#### Adım 5: Nginx için PHP Sürümünü Değiştirin (PHP-FPM)
Nginx için PHP, PHP-FPM aracılığıyla işlenir. Nginx sunucu bloğunuzu doğru FPM soketine işaret edecek şekilde güncelleyin:
# In your Nginx server block configuration
location ~ .php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}Ardından hem PHP-FPM hem de Nginx’i yeniden başlatın:
sudo systemctl restart php8.2-fpm
sudo systemctl restart nginxCentOS / RHEL / AlmaLinux / Rocky Linux — SCL veya Remi Deposunu Kullanma
#### Seçenek A: Software Collections (SCL) Kullanma — CentOS 7
# Install the SCL repository
sudo yum install -y centos-release-scl
# Install PHP 7.4 via SCL
sudo yum install -y rh-php74 rh-php74-php-fpm rh-php74-php-mysqlnd
# Enable PHP 7.4 for the current session
sudo scl enable rh-php74 bash
# Verify
php --version> Not: SCL değişiklikleri oturum özeldir. Bir kullanıcı için kalıcı hale getirmek için source /opt/rh/rh-php74/enable dosyasına ~/.bashrc ekleyin.
#### Seçenek B: Remi Deposunu Kullanma — CentOS 7/8, AlmaLinux, Rocky Linux
# Install EPEL and Remi repositories
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm # For RHEL 8/AlmaLinux 8
# List available PHP streams
sudo dnf module list php
# Reset current PHP module
sudo dnf module reset php
# Enable PHP 8.2 stream
sudo dnf module enable php:remi-8.2
# Install PHP 8.2
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-zip
# Verify
php --versionBireysel Siteler için PHP’yi Değiştirme (Site Başına PHP Sürümü)
Birden fazla web sitesi çalıştıran sunucularda, genellikle site başına farklı PHP sürümlerine ihtiyaç duyarsınız. En temiz yaklaşım, birden fazla PHP-FPM havuzu çalıştırmaktır:
# Start PHP-FPM for multiple versions
sudo systemctl start php7.4-fpm
sudo systemctl start php8.1-fpm
sudo systemctl start php8.2-fpmArdından her Nginx sanal ana bilgisayarını farklı bir FPM soketini kullanacak şekilde yapılandırın:
# Site A — PHP 8.2
server {
server_name site-a.com;
root /var/www/site-a;
location ~ .php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
}
# Site B — PHP 7.4 (legacy application)
server {
server_name site-b.com;
root /var/www/site-b;
location ~ .php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}6. Yöntem 4: php.ini Aracılığıyla PHP Sürümünü Değiştirme {#phpini-method}
Bazı barındırma ortamlarında, özellikle CGI veya FastCGI PHP işleyicileri kullananlar, web sitenizin kök dizinine yerleştirilen özel bir php.ini dosyası aracılığıyla PHP davranışını — ve bazen hatta sürümünü — etkileyebilirsiniz.
Özel php.ini Oluşturma
- Web sitenizin kök dizininde (
public_html)php.iniadlı bir dosya oluşturun. - Yapılandırma yönergelerinizi ekleyin:
; Custom PHP configuration
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_vars = 3000
date.timezone = "UTC"> Not: Bu yöntem PHP *ayarlarını* kontrol eder, mutlaka PHP *sürümünü* değil. php.ini aracılığıyla sürüm seçimi yalnızca belirli barındırma kurulumlarında mümkündür. Tam sürüm kontrolü için yukarıda açıklanan cPanel, .htaccess veya komut satırı yöntemlerini kullanın.
7. Etkin PHP Sürümünüzü Nasıl Doğrulayabilirsiniz {#verify}
Herhangi bir değişiklik yaptıktan sonra, her zaman doğru PHP sürümünün etkin olduğunu doğrulayın. Bunu yapmanın birkaç yolu vardır:
Yöntem A: phpinfo() Test Sayfası Oluşturun
- Web kök dizininizde (
public_html)phpinfo.phpadlı yeni bir dosya oluşturun. - Aşağıdaki içeriği ekleyin:
<?php
phpinfo();
?>- Tarayıcınızda
https://yourdomain.com/phpinfo.phpdosyasına gidin. - Sayfa, kapsamlı PHP yapılandırma bilgilerini görüntüleyecektir. PHP Sürümü en üstte gösterilir.
> Güvenlik Uyarısı: Test ettikten sonra bu dosyayı hemen silin. phpinfo() çıktısı, saldırganların yardımcı olabilecek hassas sunucu yapılandırma ayrıntılarını ortaya çıkarır.
Yöntem B: Komut Satırı Aracılığıyla Kontrol Edin (SSH)
php --version
# or
php -vBeklenen çıktı:
PHP 8.2.10 (cli) (built: Sep 5 2023 08:12:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies
with Zend OPcache v8.2.10, Copyright (c), by Zend TechnologiesYöntem C: Basit PHP Betiği Aracılığıyla Kontrol Edin
Daha az ayrıntılı bir kontrol için, tam phpinfo() yerine bu minimal betiği kullanın:
<?php
echo 'PHP Version: ' . PHP_VERSION;
echo '<br>PHP Major Version: ' . PHP_MAJOR_VERSION;
echo '<br>PHP Minor Version: ' . PHP_MINOR_VERSION;
?>Yöntem D: WordPress Admin Aracılığıyla Kontrol Edin (WordPress Siteleri için)
WordPress panonuzda:
- Araçlar → Site Sağlığı‘na gidin.
- Bilgi sekmesini tıklayın.
- Sunucu bölümünü genişletin.
- PHP sürümü‘nü arayın.
8. PHP Sürümlerini Değiştirdikten Sonra Yaygın Hatalar {#common-errors}
PHP sürümlerini değiştirmek bazen sorunlara neden olabilir. İşte en yaygın sorunlar ve bunları nasıl çözeceğiniz:
Hata 1: Beyaz Ölüm Ekranı (WSOD) veya Boş Sayfa
Neden: Bir eklenti, tema veya özel kod, yeni PHP sürümü ile uyumlu olmayan sözdizimi veya işlevler kullanır.
Çözüm:
wp-config.phpdosyasına ekleyerek WordPress hata ayıklama modunu etkinleştirin:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);- Belirli hata iletileri için
/wp-content/debug.logdosyasını kontrol edin. - Sorunu izole etmek için tüm eklentileri devre dışı bırak
