# Web hostingde Joomla, Drupal, PrestaShop, OpenCart, Moodle veya Laravel kurun

> Linux web hostingde PHP CMS, mağaza veya Laravel uygulaması kurun: PHP sürümünü ayarlayın, veritabanını oluşturun, dosyaları yükleyin, kurulumu çalıştırın.

Zorluk: Başlangıç

Çoğu PHP uygulaması **Linux web hostingde** aynı şekilde kurulur: PHP sürümünü seçin, bir veritabanı oluşturun, dosyaları doğru klasöre koyun ve uygulamanın web kurulum sihirbazını çalıştırın. Bu rehber bu adımları **cPanel** veya **Plesk** gibi her kontrol paneli için (hangisi olduğunu paketiniz gösterir) ve **Joomla**, **Drupal**, **PrestaShop**, **OpenCart**, **Moodle** ve **Laravel**'in ihtiyaç duyduğu ek adımlarla verir.

## Başlamadan önce

- Alan adınız hosting hesabınıza yönlenir ve HTTPS ile açılır: [web hostingde ücretsiz SSL ve HTTPS](/guides/hosting-free-ssl-https).
- Uygulamanın resmi web sitesinden indirilmiş paketi ve gereksinimler sayfası.
- Dosya yüklemenin bir yolu: panelin **Dosya Yöneticisi** veya FTP / SFTP: [FTP veya SFTP ile dosya yükleyin](/guides/upload-files-ftp-sftp).
- Mevcut bir sitenin yerine mi kuruyorsunuz? Önce yedek alın: [hosting hesabınızı yedekleme ve geri yükleme](/guides/hosting-backup-restore).

## 1. adım: Sitenin çalışacağı klasörü seçin

**Belge kökü** (document root), bir alan adının sunduğu klasördür. Ana alan adının klasörünü ya da kendi klasörü olan `shop.example.com` gibi bir alt alan adını kullanın.

İki uygulama yalnızca bir alt klasörü sunar:

- **Moodle 5.1 ve üzeri** `public` klasörünü sunar. Moodle'ı kendine ait bir klasöre, örneğin `moodle` klasörüne yükleyin ve alan adının belge kökünü `moodle/public` yapın.
- **Laravel** kendi `public` klasörünü sunar. Belge kökünü projenin `public` klasörü yapın.

**cPanel**

**Domains**'i açın, alan adını veya alt alan adını oluşturun ve **Document Root** klasörünü girin. Birincil alan adı her zaman `public_html` kullanır; bu yüzden Moodle veya Laravel'i bir alt alan adına ya da ek alan adına kurun.
**Plesk**

**Websites & Domains**'i, ardından alan adının **Hosting settings** ayarlarını (yeni sürümlerde **Hosting & DNS** › **Hosting**) açın, **Document root** değerini değiştirin ve **OK** veya **Save**'i seçin.

Paneliniz yalnızca `public_html` içindeki belge köklerini kabul ediyorsa uygulamaya orada kendi klasörünü verin ve o klasörü yalnızca bu alan adından sunun.

## 2. adım: PHP sürümünü ve eklentileri ayarlayın

Alan adı için sürümü ayarlayın ve uygulamanın listelediği eklentileri açın: [PHP sürümünü ve PHP sınırlarını değiştirin](/guides/hosting-php-version-settings).

| Uygulama | PHP | Ayrıca kontrol edin |
|---|---|---|
| Joomla 6 | 8.3 veya üzeri, önerilen 8.4 | 256 MB `memory_limit` |
| Drupal 11 | 8.3 veya 8.4, Drupal 11.3'ten itibaren 8.5 | |
| PrestaShop 9.1 ve 9.2 | 8.1 ile 8.5 arası | 512 MB `memory_limit`; `intl`, `gd`, `zip`, `pdo_mysql` |
| OpenCart 4 | 8.1 veya üzeri | |
| Moodle 5.3 | 8.3 veya 8.4 | En az 96 MB `memory_limit`, önerilen 128 MB |
| Laravel 13 | 8.3 ile 8.5 arası | `mbstring`, `openssl`, `pdo`, `tokenizer`, `xml`, `ctype`, `curl`, `fileinfo` |

## 3. adım: Veritabanını oluşturun

Bir veritabanı ve bu veritabanında tüm yetkilere sahip bir veritabanı kullanıcısı oluşturun; veritabanı adını, kullanıcı adını, şifreyi ve sunucuyu (host) not edin: [web hostingde veritabanları ve phpMyAdmin](/guides/hosting-databases-phpmyadmin).

**cPanel**

**Manage My Databases**'i (veya **Database Wizard**'ı) açın, veritabanını ve kullanıcıyı oluşturun, ardından kullanıcıyı **ALL PRIVILEGES** ile veritabanına ekleyin. cPanel iki adın önüne de hesap adınızı ekler, örneğin `account_shop`: kurulum sihirbazı tam adları ister.
**Plesk**

**Databases**'i açın ve **Add Database**'i seçin. Veritabanı adını girin ve veritabanı kullanıcısını aynı formda oluşturun.

Sunucu (host), panelin gösterdiği adrestir; genellikle `localhost`.

## 4. adım: Dosyaları yükleyin

Uygulamanın ZIP dosyasını 1. adımdaki klasöre yükleyin ve Dosya Yöneticisi'nin **Extract** işlemiyle açın ya da dosyayı bilgisayarınızda açıp dosyaları SFTP ile yükleyin.

- **OpenCart:** paketteki `upload` klasörünün kendisini değil, içeriğini yükleyin. `config-dist.php` dosyasının adını `config.php`, `admin/config-dist.php` dosyasının adını `admin/config.php` olarak değiştirin.
- **Drupal:** drupal.org'daki sürüm arşivini yükleyin ya da paketinizde SSH erişimi varsa Composer ile kurun.
- **Laravel:** bunun yerine aşağıdaki Laravel bölümünü izleyin.

**Doğrulama:** klasör, uygulamanın dosyalarını doğrudan içerir (örneğin `index.php`); paket adını taşıyan bir klasör daha içermez.

## 5. adım: Web kurulum sihirbazını çalıştırın

Alan adınızı tarayıcıda açın. Kurulum sihirbazı PHP sürümünü ve eklentileri kontrol eder, ardından 3. adımdaki veritabanı bilgilerini ve bir yönetici hesabını ister.

**Moodle** ayrıca **veri dizinini** (`moodledata`) ister. Bu dizini ana dizininizde, Moodle klasörünün yanında oluşturun; asla bir alan adının sunduğu klasörün içinde oluşturmayın.

## 6. adım: Kurulumu tamamlayın ve güvenceye alın

| Uygulama | Kurulumdan sonra |
|---|---|
| Joomla | Geride bir `installation` klasörü kaldıysa silin. Genel yapılandırmada arama motoru dostu URL'leri açın. |
| Drupal | Alan adınızı `sites/default/settings.php` içindeki `$settings['trusted_host_patterns']` ayarına ekleyin, ardından `settings.php` dosyasını yeniden salt okunur yapın. |
| PrestaShop | `install` klasörünü silin. Kurulum sihirbazı `admin` klasörünün adını değiştirir; yeni adı not edin, çünkü bu sizin yönetim paneli adresinizdir. |
| OpenCart | `install` klasörünü silin. Yönetim paneli `storage` klasörünün web kökünde olduğu uyarısını verirse klasörü taşımak için uyarıdaki düğmeyi kullanın. |
| Moodle | Moodle'ın cron betiğini her dakika çalıştıran bir cron görevi ekleyin; komutu Moodle'ın cron belgelerinden alın. |

Drupal ayarı, kendi alan adınızla şöyle görünür:

```php
$settings['trusted_host_patterns'] = [
  '^example\.com$',
  '^www\.example\.com$',
];
```

## 7. adım: Cron görevlerini ekleyin

Birçok uygulama görevleri bir zamanlamayla çalıştırır: e-postalar, dizinler, temizlik işleri. Uygulamanın belgelediği komutu ekleyin:

**cPanel**

**Cron Jobs**'u açın, görevin ne sıklıkla çalışacağını seçin, komutu girin ve **Add New Cron Job**'u seçin.
**Plesk**

**Scheduled Tasks**'ı açın, **Add Task**'ı seçin, **Run a command**'ı seçin, komutu ve zamanlamayı girin, ardından **OK**'i seçin.

## Web hostingde Laravel

1. Projeyi üretim paketleriyle, sunucuda SSH üzerinden ya da kendi bilgisayarınızda hazırlayın: `composer install --no-dev --optimize-autoloader`. `vendor` klasörü dahil tüm projeyi yükleyin.
2. Alan adının belge kökünü projenin `public` klasörü yapın (1. adım).
3. `.env.example` dosyasından `.env` dosyasını oluşturun. `APP_ENV=production`, `APP_DEBUG=false`, `APP_URL` değerlerini ve 3. adımdaki veritabanı bilgilerini girin.
4. SSH üzerinden uygulama anahtarını oluşturun, geçişleri (migration) çalıştırın ve yapılandırmayı önbelleğe alın:

```bash
php artisan key:generate
php artisan migrate --force
php artisan optimize
```

5. `storage` ve `bootstrap/cache` klasörlerinin hesabınız tarafından yazılabilir olduğundan emin olun.
6. Zamanlayıcıyı, projenizin yoluyla her dakika çalışan bir cron görevi olarak ekleyin (7. adım):

```bash
cd /home/account/myapp && php artisan schedule:run >> /dev/null 2>&1
```

Kuyruk işçileri sürekli çalışan süreçlerdir. Web hostingde kuyruğu zamanlayıcıdan `php artisan queue:work --stop-when-empty` ile işleyin ya da `sync` kuyruk sürücüsünü kullanın. Supervisor altında sürekli çalışan işçiler için bir VPS kullanın.

## Sorun giderme

**Kurulum sihirbazı eksik bir PHP eklentisinde duruyor.** Eklentiyi alan adının PHP sürümü için açın, ardından kurulum sihirbazını yeniden yükleyin: [PHP sürümünü ve PHP sınırlarını değiştirin](/guides/hosting-php-version-settings).

**`Allowed memory size of … bytes exhausted`.** `memory_limit` değerini paketinizin sınırları içinde artırın (2. adım).

**Kurulum sihirbazı veritabanına bağlanamıyor.** Varsa hesap önekiyle birlikte tam veritabanı ve kullanıcı adlarını, panelin gösterdiği sunucuyu ve kullanıcının şifresini kullanın. Kullanıcının veritabanında yetkisi olduğunu kontrol edin.

**Kurulumdan sonra 500 hatası.** [Hosting 500 ve 403 hatalarına](/guides/hosting-500-403-errors) bakın. Laravel'de `storage/logs/laravel.log` dosyasını kontrol edin.

**Moodle 5.1 veya üzeri `public` dizini hakkında bir hata gösteriyor.** Belge kökü `moodle/public` yerine Moodle klasörünü gösteriyordur. 1. adımdaki gibi değiştirin.

## Sonraki adımlar

- Dosyaların ve veritabanının kopyalarını tutun: [hosting hesabınızı yedekleme ve geri yükleme](/guides/hosting-backup-restore).
- Başka bir sağlayıcıdan site taşıyorsanız: [web sitesini kesintisiz taşıyın](/guides/move-website-without-downtime).

## Sık sorulan sorular

### Bu rehber hangi uygulamaları kapsıyor?

Joomla, Drupal, PrestaShop, OpenCart, Moodle ve Laravel. Aynı adımlar, pazar yerlerinden alınan betikler gibi web kurulum sihirbazıyla gelen çoğu PHP uygulamasında da işe yarar.

### SSH erişimine ihtiyacım var mı?

Hayır. Joomla, Drupal, PrestaShop, OpenCart ve Moodle için kontrol panelinin Dosya Yöneticisi, veritabanı araçları ve cron görevleri yeterlidir. Laravel SSH ile daha kolaydır, ama kendi bilgisayarınızda hazırladığınız bir projeyi de yükleyebilirsiniz.

### Hangi PHP sürümünü seçmeliyim?

2. adımdaki tablodan, uygulamanın desteklediği en yeni sürümü. Artık güvenlik düzeltmesi almayan sürümler php.net'te listelenir.

### Ne zaman VPS'e geçmeliyim?

Uygulama OpenSearch gibi bir arama motoru (Magento), sürekli çalışan kuyruk işçileri, Node.js ya da paketinizin sunduğundan fazla bellek ve işlemci gerektirdiğinde.

---

Kaynak: <https://hyperdc.com/tr/guides/products/install-php-app-web-hosting>\
Son güncelleme: 2026-10-23
