Merhabalar, Bilgi bankamıza ekleyeceğimiz bu makalemizde hosting hizmeti kullanan müşterilerimizin ve kullanıcıların yoğunlukla sormuş olduğu soruların başında gelen "Laravel çalıştırmak" konusuna değineceğiz.
Makalemizde, Laravel SSH olmadan çalışır mı? sorusuna da cevap vermiş olacağız.
Aşağıdaki adımları uygulamadan önce composerın autoload dosyasını tekrar oluşturalım. Komut satırında projenizin dosyasına girdikten sonra şunu yazın:
composer dump-autoload
Aşağıdakileri yapmadan önce serverınızın Laravel’i çalıştırmak için gereken minimum özelliklere sahip olduğundan emin olun:
- PHP >= 5.5.9
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- PHP >= 5.4
- Mcrypt PHP Extension
- OpenSSL PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
Adımlara geçelim.
1- Laravel projenizin içerisinde bulunan tüm dosyaları, public klasörü hariç olmak üzere zipleyin. Serverda public_html ile aynı dizinde “main-laravel” isminde bir klasör oluşturun. “main-laravel” klasörünün içinde projenizin adını vereceğiniz bir klasör daha oluşturun. Biz buna “laravel” diyeceğiz. Ziplediğiniz dosyayı bu klasörünün içine atıp dosyaları çıkartın
2- public klasörünü zipleyin. Sunucuda public_html klasörü içerisine “demo” klasörü oluşturun ve ziplediğiniz dosyayı bu klasörünün içerisine atıp dosyaları çıkartın.
3- public_html/demo klasörünün içerisinde bulunan index.php dosyasını açın ve şu değişiklikleri yapın: $app değişkeninin tanımlandığı satırın altına şunu yazın:
$app->bind('path.public', function() { return __DIR__; });
Böylece index.php dosyanızın bulunduğu klasör (bu örnekte “demo” klasörü) public dizin olarak belirlenmiş oldu. Upload yapıldığında artık dosyalar bu klasörün içerisinde tutulacak. Aynı zamanda asset() fonksiyonunu (veya benzeri fonksiyonları) kullandığınızda oluşturulacak URLler de bu klasör üzerinden oluşturulacak. Aşağıdaki kodu bulun:
require __DIR__.'/../bootstrap/autoload.php';
Bu satır Laravel’in nereden yüklendiğini belirleyen satır. autoload.php dosyasının yolunu belirtmemiz gerekiyor. Klasör düzenini hatırlarsak (2. madde), Laravel dosyalarını yüklediğimiz klasör şu an bulunduğumuz klasöre göre 2 klasör dışarda. Diğer bir deyişle, autoload.php dosyası şurada bulunuyor:
/../../main-laravel/laravel/bootstrap/autoload.php
Burada yapmamız gereken değişiklikler şöyle:
// Aşağıdaki kodu bulun: require __DIR__.'/../bootstrap/autoload.php'; // Aşağıdaki kod ile değiştirin: require __DIR__.'/../../main-laravel/laravel/bootstrap/autoload.php';
// Aşağıdaki kodu bulun $app = require_once __DIR__.'/../bootstrap/app.php'; // Aşağıdaki kod ile değiştirin $app = require_once __DIR__.'/../../main-laravel/laravel/bootstrap/app.php';
www.trdeserver.com/deneme/index.php www.trdeserver.com/deneme/public/
örneğimize göre .htaccess dosyamız aşağıdaki gibi olması gerekmektedir.
Options -MultiViews RewriteEngine On # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
Makalemize ait arama kelimeleri aşağıdaki gibidir. Laravel çalıştırmak,
Laravel hosting,
Hostingde laravel çalışır mı?,
SSH olmadan laravel çalıştırma
Laravel .htaccess ayarları