.env dosyasını sunucuya göndermiyorsunuz, o sadece geliştirme ortamına kullanılan bir dosya. config klasörü içerisine girerseniz eğer örneğin database.php dosyasına bakın, 'database' => env('DB_DATABASE', 'forge'),
şeklinde bir ifade görürsünüz. Bu, eğer .env dosyası varsa bu dosyadaki DB_DATABASE
değerini kullan; yoksa database adı forge
olsun demek. O yüzden sunucu değerlerini env() yöntemi varsa ikinci parametre olarak; yoksa direkt işlemeniz gerekli. Bunu forumda aratabilirsiniz.
Laravel'ı bir alt klasöre kurmak istiyorsanız benim tavsiyem subdomain kullanmanız ve bu subdomaine ait klasörü de document root dışında bir yerde tutmanızdır. Örneğin /home/site/public sizin ana alan adının document root'u ise /home/site/api şeklinde bir klasöre kurun ve alt alan adının document root'unu da /home/site/api/public yapın. Böylece dosya güvenliğini sağlamış olursunuz.
Yok ben illa domain.com/api şeklinde kullanmak istiyorum diyorsanız /home/site/public/api klasörünün içerisine sadece Laravel içerisindeki public klasörünün içeriğini koymalısınız. Geri kalan dosyaları yine dışarıdan erişilemeyecek bir yere taşımanız lazım, örneğin /home/site/api-core gibi. Daha sonra /home/site/public/api/index.php dosyasında autload.php ve bootstrap/app.php dosya yollarını /home/site/api-core içerisini görecek şekilde düzenlemeniz gerekiyor.
Hiçbir Laravel uygulamasında URL kısmında public yazmamalı, bunu unutmayın. Eğer bir rotaya, başında public ile erişmeye çalışıyorsanız yanlış yaptınız demektir.
Hata alıyorsanız hatalar storage/logs/ içerisinde tutulur.
500 Internal server error hatası alıyorsanız bunu web server'ın hata loglarında görebilirsiniz.