# 🚀 Askeri Platform - cPanel Deployment (SSH Olmadan)

## 📋 Hazırlık

### Gereksinimler
- **cPanel Hosting** (Natro, Turhost, Radore, vb.)
- **FTP/SFTP Erişimi** (FileZilla, WinSCP)
- **MySQL Database** (cPanel'den oluşturulacak)
- **PHP 8.2+** (cPanel'den seçilecek)

---

## 🔄 Deployment Adımları (SSH Olmadan)

### Adım 1: Yerel Hazırlık

```bash
# 1. Production assets oluştur
npm run build

# 2. Vendor optimize et
composer install --optimize-autoloader --no-dev

# 3. Production .env oluştur
cp .env .env.production
```

### Adım 2: .env.production Dosyası

**`.env.production` içeriği:**
```env
APP_NAME="Askeri Platform"
APP_ENV=production
APP_KEY=base64:NooSVFZ2PuuFdt2RW4TmXt3xpNwpjISSKCoPXfG4J4Y=
APP_DEBUG=false
APP_TIMEZONE=Europe/Istanbul
APP_URL=https://siteniz.com

APP_LOCALE=tr
APP_FALLBACK_LOCALE=tr

# Database (cPanel bilgilerinizle değiştirin)
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=site_askeriplatform
DB_USERNAME=site_user
DB_PASSWORD=GUVENLI_SIFRE
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci

# Cache & Session
CACHE_DRIVER=database
SESSION_DRIVER=database
QUEUE_CONNECTION=database

# Logging
LOG_CHANNEL=stack
LOG_LEVEL=warning
```

### Adım 3: cPanel Database Oluşturma

1. **cPanel → MySQL Databases**
2. **Yeni Database Oluştur:**
   - Database: `site_askeriplatform`
   - Karakter seti: `utf8mb4_unicode_ci`
3. **Yeni Kullanıcı Oluştur:**
   - Username: `site_user`
   - Password: Güçlü şifre
4. **Kullanıcıya Yetki Ver:**
   - Tüm yetkileri seç (ALL PRIVILEGES)

### Adım 4: FTP ile Dosya Yükleme

**FileZilla Ayarları:**
- Host: `siteniz.com` (veya IP adresi)
- Username: cPanel kullanıcı adı
- Password: cPanel şifresi
- Port: 21 (FTP) veya 22 (SFTP)

**Yükleme Yapısı:**
```
cPanel Kök Dizin/
├── public_html/              ← Domain root
│   ├── index.php           ← public/index.php
│   ├── .htaccess           ← public/.htaccess
│   └── build/              ← public/build/
│
├── .env                    ← .env.production içeriği
├── app/
├── bootstrap/
├── config/
├── database/
├── resources/
├── routes/
├── storage/
├── vendor/
├── artisan
├── composer.json
└── composer.lock
```

**ÖNEMLİ:**
- `public/` klasörünün **içeriğini** `public_html/` içine yükleyin
- Diğer klasörleri `public_html/` **dışına**, kök dizine yükleyin

### Adım 5: cPanel Terminal (SSH Alternatifi)

**cPanel → Terminal** (veya Advanced → Terminal):

```bash
# 1. Proje dizinine git
cd ~/public_html

# 2. Migration çalıştır
php artisan migrate --force

# 3. Storage link oluştur
php artisan storage:link

# 4. Cache temizle
php artisan cache:clear
php artisan view:clear
php artisan config:clear
```

**Terminal yoksa, cPanel File Manager'da:**
1. `public_html/` dizinine git
2. `storage/` klasörüne sağ tık → Change Permissions → `755`
3. `bootstrap/cache/` klasörüne sağ tık → Change Permissions → `755`

### Adım 6: PHP Versiyonu Ayarı

**cPanel → Select PHP Version:**
- Domain: `siteniz.com` seç
- PHP Version: **8.2** veya üzeri
- Extensions:
  - ✅ BCMath
  - ✅ Ctype
  - ✅ cURL
  - ✅ DOM
  - ✅ Fileinfo
  - ✅ JSON
  - ✅ Mbstring
  - ✅ OpenSSL
  - ✅ PDO
  - ✅ Tokenizer
  - ✅ XML
  - ✅ Zip
  - ✅ GD

### Adım 7: SSL Sertifika

**cPanel → SSL/TLS:**
1. **Let's Encrypt** sekmesine git
2. Domain seç: `siteniz.com` ve `www.siteniz.com`
3. **Install Certificate** tıkla
4. **Auto-Renewal** aktif et

---

## 🧪 Test Adımları

### 1. Site Kontrolü
- ✅ `https://siteniz.com` → Ana sayfa açılıyor
- ✅ `https://siteniz.com/admin` → Admin panel erişilebilir
- ✅ `https://siteniz.com/robots.txt` → SEO dosyası
- ✅ `https://siteniz.com/sitemap.xml` → Sitemap

### 2. Modül Testleri
- ✅ Forum: `https://siteniz.com/forum`
- ✅ Blog: `https://siteniz.com/blog`
- ✅ Chat: `https://siteniz.com/sohbet`
- ✅ Library: `https://siteniz.com/kutuphane`
- ✅ Interview: `https://siteniz.com/mulakat`

### 3. Admin Panel Testleri
- ✅ Login: `https://siteniz.com/login`
- ✅ Dashboard: `https://siteniz.com/admin`
- ✅ Homepage Widgets: `https://siteniz.com/admin/homepage`
- ✅ Hero Widget düzenle → Kaydet → Homepage'de kontrol et

---

## 🆘 Sorun Giderme

### "Application Error" Sayfası

**Çözüm 1: Cache Temizle**
```
cPanel → Terminal:
cd ~/public_html
php artisan cache:clear
php artisan view:clear
php artisan config:clear
```

**Çözüm 2: File Permissions**
```
cPanel → File Manager:
- storage/ → 755
- bootstrap/cache/ → 755
- .env → 640
```

### Database Connection Error

**Çözüm:**
1. `.env` dosyasını kontrol et
2. cPanel → MySQL Databases → database var mı kontrol et
3. Kullanıcı adı ve şifre doğru mu kontrol et
4. Kullanıcının database'e yetkisi var mı kontrol et

### 404 Not Found

**Çözüm:**
1. `public_html/.htaccess` dosyası var mı kontrol et
2. cPanel → Select PHP Version → mod_rewrite aktif mi kontrol et
3. `public_html/index.php` dosyası var mı kontrol et

### Assets Yüklenmiyor (CSS/JS)

**Çözüm:**
1. `npm run build` çalıştırdınız mı?
2. `public_html/build/` dizini kontrol et
3. `php artisan view:clear` çalıştırın

### Permission Denied

**Çözüm:**
```
cPanel → File Manager:
1. storage/ klasörüne sağ tık
2. Change Permissions
3. 755 seç (veya 775)
4. Recursive seç
5. Apply
```

---

## 📞 Destek

**Türk Hosting Şirketleri:**
- **Natro:** 0850 200 00 50
- **Turhost:** 0850 200 00 50
- **Radore:** 0850 200 00 50
- **Odwara:** 0850 200 00 50

**cPanel Destek:**
- cPanel içinde Help & Documentation
- https://docs.cpanel.net/

---

## ✅ Final Checklist

- [ ] Hosting satın alındı
- [ ] Domain bağlandı
- [ ] MySQL database oluşturuldu
- [ ] MySQL kullanıcı oluşturuldu
- [ ] PHP 8.2+ seçildi
- [ ] Composer dependencies yüklendi
- [ ] npm run build çalıştırıldı
- [ ] .env.production oluşturuldu
- [ ] FTP ile dosyalar yüklendi
- [ ] .env dosyası güncellendi
- [ ] Migration çalıştırıldı
- [ ] Storage link oluşturuldu
- [ ] Cache temizlendi
- [ ] SSL sertifikası yüklendi
- [ ] Site test edildi
- [ ] Admin panel test edildi
- [ ] Modüller test edildi
- [ ] Hero widget test edildi
