Geliştirme

cPanel’de PHP Script Kurulumu: 404 ve 500 Hatası Çözümü (2026)

cPanel’e PHP script kurulumunu; veritabanı bağlantısı, index.php indirme, 404, HTTP 500 ve .htaccess sorunlarının çözümleriyle öğrenin.

cPanel’de PHP Script Kurulumu: 404 ve 500 Hatası Çözümü (2026)

Hazır bir PHP script indirdiniz ancak cPanel’e yükledikten sonra beyaz sayfa, HTTP 500, 404 Not Found veya “index.php indiriliyor” gibi bir sorunla karşılaştınız. Bu hatalar ilk bakışta karmaşık görünse de genellikle yanlış klasör, uyumsuz PHP sürümü, eksik veritabanı bilgisi veya hatalı .htaccess kurallarından kaynaklanır.

Bu rehberde bir PHP scripti cPanel’e sıfırdan nasıl yükleyeceğinizi, MySQL veritabanını nasıl oluşturacağınızı ve kurulum sırasında karşılaşabileceğiniz yaygın hataları nasıl çözeceğinizi adım adım anlatacağız. Henüz kuracağınız projeyi seçmediyseniz Kodhane üzerindeki ücretsiz scriptleri inceleyebilirsiniz.

Önemli: Yeni bir scripti doğrudan aktif sitenize kurmak yerine önce bir alt alan adı veya test klasöründe deneyin. Böylece mevcut siteniz etkilenmeden PHP sürümünü, veritabanını ve yönlendirme ayarlarını kontrol edebilirsiniz.

PHP script kurulumu için gerekenler

Kuruluma başlamadan önce hosting hesabınızın bazı temel özelliklere sahip olması gerekir. Çoğu güncel PHP projesi için cPanel erişimi, MySQL veya MariaDB veritabanı, phpMyAdmin ve uygun bir PHP sürümü yeterlidir.

  • Aktif bir alan adı veya alt alan adı
  • cPanel kullanıcı bilgileri
  • PHP destekli Linux hosting
  • MySQL veya MariaDB veritabanı
  • phpMyAdmin erişimi
  • Scriptin ZIP dosyası
  • Varsa scriptle birlikte verilen SQL dosyası
  • Scriptin desteklediği PHP sürümünün bilgisi

Scriptin detay sayfasında PHP sürümü, gerekli eklentiler ve kurulum adımları belirtilmiş olabilir. Dosyaları yüklemeden önce bu bilgileri kontrol etmek, daha sonra oluşabilecek HTTP 500 hatalarının önemli bir bölümünü önler.

1. Script dosyalarını doğru klasöre yükleyin

cPanel’e giriş yaptıktan sonra Dosya Yöneticisi bölümünü açın. Ana alan adında çalışacak bir site için genellikle kullanmanız gereken klasör public_html klasörüdür.

Scripti bir alt alan adında deneyecekseniz oluşturduğunuz alt alan adının belge kökünü kontrol edin. Bu dizin hosting ayarına göre aşağıdaki örneklerden biri olabilir:

public_html/
public_html/test/
public_html/demo/
subdomains/demo/

ZIP dosyasını doğru dizine yükledikten sonra dosyaya sağ tıklayıp Extract veya Ayıkla seçeneğini kullanın.

Bu aşamada en sık yapılan hata, ZIP dosyasının içindeki ana klasörü olduğu gibi çıkarmaktır. Örneğin dosyalar aşağıdaki şekilde oluşursa proje ana alan adında doğrudan çalışmayabilir:

public_html/scriptplatformu/index.php
public_html/scriptplatformu/includes/
public_html/scriptplatformu/assets/

Projenin ana alan adında açılmasını istiyorsanız çoğu durumda index.php dosyasının doğrudan public_html içerisinde bulunması gerekir:

public_html/index.php
public_html/includes/
public_html/assets/
public_html/uploads/

Scripti siteadresiniz.com/scriptplatformu altında kullanmak istiyorsanız alt klasör yapısını koruyabilirsiniz. Ancak bu durumda script içerisindeki temel URL ve .htaccess ayarlarının da alt klasöre uygun olması gerekir.

2. MySQL veritabanı oluşturun

Birçok PHP scripti kullanıcıları, içerikleri ve site ayarlarını saklamak için MySQL veritabanı kullanır. cPanel ana ekranından MySQL Databases veya MySQL Veritabanları bölümünü açın.

  1. Yeni bir veritabanı oluşturun.
  2. Yeni bir veritabanı kullanıcısı oluşturun.
  3. Güçlü ve benzersiz bir parola belirleyin.
  4. Kullanıcıyı oluşturduğunuz veritabanına ekleyin.
  5. Kullanıcıya gerekli veritabanı yetkilerini verin.

cPanel, hesap adını veritabanı ve kullanıcı adının başına otomatik olarak ekleyebilir. Örneğin site_db yazmanıza rağmen gerçek veritabanı adı aşağıdaki gibi olabilir:

cpaneladi_site_db

Aynı durum veritabanı kullanıcısı için de geçerlidir. PHP bağlantı dosyasına yalnızca son kısmı değil, cPanel’de gösterilen tam veritabanı ve kullanıcı adını yazmalısınız.

Dikkat: Veritabanını ve kullanıcıyı oluşturmak yeterli değildir. Kullanıcıyı veritabanına ayrıca eklemeli ve gerekli izinleri vermelisiniz. Aksi hâlde “Access denied for user” hatası alabilirsiniz.

3. SQL dosyasını phpMyAdmin ile içe aktarın

Script paketinde database.sql, install.sql, migration.sql veya benzer isimde bir dosya bulunabilir. Bu dosyada scriptin kullanacağı tablolar ve başlangıç ayarları yer alır.

  1. cPanel’den phpMyAdmin’i açın.
  2. Sol taraftan oluşturduğunuz veritabanını seçin.
  3. Üst menüden İçe Aktar sekmesine girin.
  4. SQL dosyasını seçin.
  5. Karakter setini mümkünse UTF-8 olarak bırakın.
  6. İçe aktarma işlemini başlatın.

İşlem tamamlandığında sol tarafta users, settings, scripts veya projeye ait başka tablolar görünmelidir. Hiç tablo oluşmadıysa yanlış veritabanını seçmiş veya hatalı SQL dosyasını yüklemiş olabilirsiniz.

“Unknown column” hatası neden oluşur?

Aşağıdakine benzer bir hata görüyorsanız PHP kodu, veritabanında bulunmayan bir sütunu kullanmaya çalışıyor demektir:

SQLSTATE[42S22]: Column not found:
1054 Unknown column 'ornek_alan' in 'field list'

Bu durum genellikle ana SQL dosyasının yüklendiği ancak daha sonra yayınlanan migration dosyalarının uygulanmadığı anlamına gelir. Script paketindeki database/migrations klasörünü kontrol edin. Migration dosyaları varsa tarih sırasına göre aynı veritabanına uygulayın.

Migration dosyalarını başka bir veritabanına yüklemek hatayı çözmez. PHP bağlantı dosyasının kullandığı veritabanı ile phpMyAdmin’de güncellediğiniz veritabanının aynı olduğundan emin olun.

4. Veritabanı bağlantı dosyasını düzenleyin

Scriptin veritabanı ayarları genellikle config.php, db.php, database.php veya .env dosyasında bulunur. Dosyayı cPanel kod düzenleyicisiyle açarak hosting bilgilerinizle güncelleyin.

PDO kullanan basit bir PHP bağlantısı şu yapıya benzeyebilir:

<?php
$host = 'localhost';
$dbname = 'cpaneladi_site_db';
$username = 'cpaneladi_site_user';
$password = 'guclu-parolaniz';

$pdo = new PDO(
    "mysql:host={$host};dbname={$dbname};charset=utf8mb4",
    $username,
    $password,
    [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]
);

Paylaşımlı hosting hizmetlerinin büyük bölümünde veritabanı sunucusu localhost olarak kullanılır. Ancak hosting firmanız farklı bir MySQL sunucusu verdiyse kontrol panelindeki değeri kullanmanız gerekir.

Veritabanı parolanızı blog yazılarında, ekran görüntülerinde veya destek mesajlarında açık biçimde paylaşmayın. Ayrıca bağlantı dosyasının doğrudan web üzerinden indirilemediğini kontrol edin.

5. Alan adı ve temel URL ayarını kontrol edin

Bazı scriptler bağlantıları oluşturmak için bir temel site adresi kullanır. Proje localhost ortamından canlı sunucuya taşındığında bu değer değiştirilmezse CSS ve JavaScript dosyaları yüklenmeyebilir veya bağlantılar localhost adresine yönlenebilir.

Aşağıdaki gibi bir ayar bulunuyorsa canlı alan adınızla güncelleyin:

define('BASE_URL', 'https://siteadresiniz.com');

Script alt klasörde çalışıyorsa klasörü de eklemeniz gerekebilir:

define(
    'BASE_URL',
    'https://siteadresiniz.com/scriptplatformu'
);

Adresin sonunda eğik çizgi kullanılıp kullanılmayacağı scriptin mevcut yapısına bağlıdır. Kod içerisindeki bağlantı birleştirme yöntemini kontrol etmeden rastgele eğik çizgi eklemek çift eğik çizgili URL’lere neden olabilir.

index.php neden dosya olarak indiriliyor?

Tarayıcıda siteyi açtığınızda index.php çalışmak yerine bilgisayarınıza indiriliyorsa sunucu PHP dosyasını yorumlamıyor demektir. Bu sorun çoğunlukla script kodundan değil, hosting veya Apache yapılandırmasından kaynaklanır.

Kontrol etmeniz gereken başlıca noktalar şunlardır:

  • Hosting paketinde PHP desteğinin aktif olması
  • Alan adına bir PHP sürümünün atanmış olması
  • .htaccess dosyasında geçersiz PHP handler satırı bulunmaması
  • Dosyanın gerçekten .php uzantısına sahip olması
  • Sunucunun Apache veya LiteSpeed PHP yapılandırmasının çalışması

cPanel’de MultiPHP Manager veya Select PHP Version bölümünü açın ve alan adınıza desteklenen bir PHP sürümü atayın. Sorun yeni bir .htaccess yükledikten sonra başladıysa dosyadaki PHP handler satırlarını kontrol edin.

Başka bir hosting hesabından kopyalanan aşağıdaki türden sunucuya özel satırlar yeni sunucuda sorun oluşturabilir:

AddHandler application/x-httpd-ea-php82 .php
SetHandler application/x-httpd-php

Bu satırları bilinçsizce eklemek veya silmek yerine hosting firmanızın önerdiği PHP handler yapılandırmasını kullanın. Alan adındaki bütün PHP dosyaları indiriliyorsa hosting desteğine başvurmanız gerekebilir.

HTTP ERROR 500 hatası nasıl çözülür?

HTTP 500, sunucuda bir PHP veya Apache hatası oluştuğunu ancak ayrıntının ziyaretçiye gösterilmediğini ifade eder. Hatanın gerçek nedenini bulmadan sürekli dosya değiştirmek sorunu büyütebilir.

1. Error log dosyasını kontrol edin

cPanel’de Errors, Error Log veya Dosya Yöneticisi içerisindeki error_log dosyasını kontrol edin. Örneğin aşağıdaki hata eksik dosya yolunu gösterir:

PHP Fatal error: require_once():
Failed opening required 'includes/db.php'

Eğer hata admin/edit_script.php içerisinden oluşuyorsa includes/db.php göreli yolu yanlış klasörü işaretleyebilir. Admin klasörü içindeki bir dosyadan üst dizindeki includes klasörüne ulaşmak için çoğu projede aşağıdaki gibi güvenli bir yol kullanılır:

require_once __DIR__ . '/../includes/db.php';

__DIR__ kullanılması, dosyanın hangi URL üzerinden çağrıldığına bakılmadan fiziksel dosya yolunun doğru çözülmesini sağlar.

2. PHP sürümünü kontrol edin

Script eski PHP sürümü için yazılmışsa PHP 8 üzerinde kaldırılmış fonksiyonlar nedeniyle hata verebilir. Yeni bir script de eski PHP 7.4 ortamında desteklenmeyen sözdizimi kullanabilir.

Scriptin gereksinimlerini kontrol ederek alan adınıza uygun PHP sürümünü atayın. PHP sürümünü değiştirdikten sonra giriş, kayıt, dosya yükleme, yönetici paneli ve düzenleme sayfalarını ayrı ayrı test edin.

3. PHP eklentilerini kontrol edin

Güncel PHP scriptlerinde aşağıdaki eklentiler sık kullanılır:

  • PDO ve pdo_mysql
  • mbstring
  • fileinfo
  • curl
  • json
  • openssl
  • zip
  • gd veya imagick

Özellikle görsel yükleme, ZIP açma, e-posta gönderme veya uzak API bağlantısı kullanan projelerde eksik eklenti belirli sayfalarda HTTP 500 oluşturabilir.

4. PHP sözdizimini kontrol edin

Bir dosyada eksik noktalı virgül, kapanmamış parantez veya hatalı tırnak bulunması sayfanın tamamen çalışmamasına yol açabilir. Hata kaydında genellikle Parse error veya Syntax error mesajı ve ilgili satır numarası görünür.

404 Not Found ve .htaccess sorunu

Ana sayfa açılıyor ancak script detay, blog veya duyuru sayfaları 404 veriyorsa sorun çoğunlukla temiz URL yönlendirmelerindedir. Apache üzerinde bu yönlendirmeler genellikle .htaccess dosyası ve mod_rewrite ile çalışır.

Basit bir yönlendirme yapısı aşağıdaki gibi olabilir:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^script/([a-zA-Z0-9-]+)/?$ \
script.php?slug=$1 [L,QSA]

Script bir alt klasörde çalışıyorsa RewriteBase ve hedef yolların klasöre göre ayarlanması gerekebilir:

RewriteBase /scriptplatformu/

Hosting ana dizininde çalışan bir yapı ile localhost alt klasöründe çalışan yapı aynı yönlendirme ayarını kullanamayabilir. Bu nedenle .htaccess dosyasını değiştirirken hem ana alan adı hem de test ortamı dikkate alınmalıdır.

.htaccess kaynaklı 500 hatası

Yeni bir .htaccess yükledikten hemen sonra bütün site HTTP 500 veriyorsa dosyada sunucunun desteklemediği bir direktif olabilir. Sorunu doğrulamak için mevcut dosyanın yedeğini alın ve yalnızca test amacıyla adını geçici olarak değiştirin.

Site açılmaya başlarsa sorun PHP kodunda değil, .htaccess kurallarındadır. Kuralları topluca silmek yerine bölümler hâlinde kontrol edin.

  • Yanlış RewriteBase değeri
  • Desteklenmeyen Options direktifleri
  • Sunucuya özel PHP handler satırları
  • Sonsuz yönlendirme oluşturan HTTP ve HTTPS kuralları
  • Birbirini tekrar eden temiz URL kuralları
  • Yanlış ErrorDocument hedefleri

Dosya ve klasör izinleri nasıl olmalı?

Çoğu Linux hosting hesabında klasörler için 755, PHP ve diğer normal dosyalar için 644 izinleri yeterlidir.

Dosya türü Önerilen izin Açıklama
Klasörler 755 Çoğu standart klasör için yeterlidir.
PHP, CSS ve JavaScript 644 Normal web dosyalarında kullanılabilir.
Yükleme klasörü Genellikle 755 Sunucu yapılandırmasına göre değişebilir.
Hassas ayar dosyaları 600 veya 640 Hosting yapılandırması destekliyorsa kullanılabilir.

Sorunu çözmek için bütün dosyalara 777 izni vermek güvenli değildir. Yazma izni gereken klasörü belirleyip yalnızca o klasörün izinlerini hosting yapılandırmasına uygun şekilde düzenleyin.

CSS ve JavaScript dosyaları yüklenmiyorsa

Sayfa açılıyor ancak tasarım bozuk görünüyorsa tarayıcının geliştirici araçlarından Network ve Console sekmelerini kontrol edin. CSS veya JavaScript dosyaları 404 dönüyorsa temel URL ya da dosya yolu yanlış olabilir.

Örneğin proje alt klasörde çalışmasına rağmen dosyalar alan adı kökünden isteniyorsa şu bağlantı yanlış hedefe gidebilir:

/assets/css/style.css

Projenin URL üretme sistemine göre bağlantının aşağıdaki gibi olması gerekebilir:

/scriptplatformu/assets/css/style.css

Canlı sunucuda proje doğrudan public_html içerisinde bulunuyorsa ilk kullanım doğru olabilir. Dosya yollarını ortama özel sabit metinlerle değiştirmek yerine merkezi temel URL ayarından üretmek daha sağlıklıdır.

Kurulumdan sonra güvenlik kontrolleri

Scriptin ana sayfasının açılması kurulumun tamamen bittiği anlamına gelmez. Canlı kullanıma geçmeden önce temel güvenlik kontrollerini gerçekleştirin.

  • Varsayılan yönetici parolasını değiştirin.
  • Kurulum klasörü varsa kaldırın veya erişime kapatın.
  • SQL ve yedek dosyalarının web üzerinden indirilemediğini kontrol edin.
  • Hata gösterimini canlı ortamda kapatın.
  • HTTPS yönlendirmesini etkinleştirin.
  • Dosya yükleme alanlarında uzantı ve MIME kontrolü yapıldığını doğrulayın.
  • Yönetici işlemlerinde CSRF koruması bulunduğunu kontrol edin.
  • Kullanıcı parolalarının güvenli şekilde hash’lendiğinden emin olun.
  • Veritabanı ve dosya yedeği oluşturun.
  • Demo hesap bilgilerini canlı yönetici hesabında kullanmayın.

İnternetten indirilen her PHP scriptini güvenli kabul etmeyin. Scripti önce test ortamında çalıştırın, dosya yükleme noktalarını ve yönetici yetkilendirmesini inceleyin. Güncelleme geçmişi, geliştirici profili ve kullanıcı geri bildirimleri de seçim sırasında değerlendirilmelidir.

PHP script kurulum kontrol listesi

  • Script dosyaları doğru dizine çıkarıldı mı?
  • index.php doğru klasörde mi?
  • Doğru PHP sürümü seçildi mi?
  • Gerekli PHP eklentileri aktif mi?
  • Veritabanı oluşturuldu mu?
  • Veritabanı kullanıcısı gerekli yetkilerle eklendi mi?
  • Ana SQL ve migration dosyaları doğru veritabanına uygulandı mı?
  • Veritabanı bağlantı bilgileri güncellendi mi?
  • Temel site URL’si canlı alan adına çevrildi mi?
  • .htaccess kuralları bulunduğu dizine uygun mu?
  • Dosya ve klasör izinleri kontrol edildi mi?
  • Giriş, kayıt ve şifre yenileme sayfaları çalışıyor mu?
  • Dosya ve görsel yükleme işlemleri çalışıyor mu?
  • Mobil görünüm kontrol edildi mi?
  • Yönetici panelindeki ekleme ve düzenleme işlemleri test edildi mi?

Sık sorulan sorular

PHP scripti public_html içine mi yüklemeliyim?

Script ana alan adında çalışacaksa genellikle evet. Bir alt alan adı veya alt klasör kullanıyorsanız dosyaları o adresin belge köküne yüklemelisiniz.

Ana sayfa açılıyor ancak diğer sayfalar neden 404 veriyor?

En yaygın neden temiz URL yönlendirmelerinin çalışmamasıdır. .htaccess, RewriteBase, mod_rewrite desteği ve scriptin temel URL ayarı kontrol edilmelidir.

HTTP 500 hatasının ayrıntısını nereden görebilirim?

cPanel Errors bölümü veya projenin bulunduğu klasördeki error_log dosyası gerçek PHP hata mesajını gösterebilir. Öncelikle hata metninde belirtilen dosya ve satırı inceleyin.

SQL dosyasını yükledim ama sütun bulunamadı hatası alıyorum

Scriptin daha yeni bir sürümüne ait migration dosyaları eksik olabilir. Migration dosyalarını PHP bağlantısında kullanılan aynı veritabanına tarih sırasıyla uygulayın.

index.php neden tarayıcıya indiriliyor?

Sunucu PHP dosyasını çalıştırmak yerine normal dosya olarak gönderiyordur. Alan adının PHP sürümü, PHP handler ayarları ve .htaccess dosyası kontrol edilmelidir.

PHP sürümünü yükseltmek bütün hataları çözer mi?

Hayır. Script eski fonksiyonlar kullanıyorsa yeni PHP sürümü de hata oluşturabilir. En doğru seçenek, geliştiricinin belirttiği desteklenen PHP sürümünü kullanmaktır.

Sonuç

cPanel üzerinde PHP script kurulumunun temel mantığı; dosyaları doğru dizine yerleştirmek, veritabanını eksiksiz hazırlamak, bağlantı bilgilerini güncellemek ve sunucunun PHP yapılandırmasını scriptle uyumlu hâle getirmektir.

HTTP 500 hatasında ilk bakılması gereken yer hata kaydıdır. 404 hatasında .htaccess ve temel URL, index.php indirme probleminde ise PHP handler yapılandırması kontrol edilmelidir. Hatanın gerçek nedenini belirlemeden dosyaları topluca değiştirmek yeni sorunlar oluşturabilir.

Yeni bir proje mi arıyorsunuz?
Kodhane ücretsiz scriptler sayfasını ziyaret edin ve farklı kategorilerde yayınlanan scriptleri inceleyin. İndirmeden önce açıklama, sürüm, gereksinim ve geliştirici bilgilerini kontrol etmeyi unutmayın.
admin

Merhaba ben Admin herhangi bir yardıma ihtiyacınız olursa benimle iletişime geçin.