- Posted on
- Comments 0
Laravel 4 Paylaşımlı Host Komut (Shared Host Command)
Merhaba Arkadaşlar ,
Laravel projenizi henüz paylaşımlı host’a yüklemediyseniz. Laravel Paylaşımlı Host’ta yayınlamak. ile ilgili yazımı okuyabilirsiniz.
Projemiz’i teknik olarak internete açtık. Ancak , şimdi içerikleri nasıl dolduracağız. Migration’ları seed’leri boşuna mı yazdık? ‘Hayat “http://localhost” da çok güzeldi.’ peki ya şimdi..
Bana göre Laravel’i üst seviyelere taşıyan ve önüzmüzdeki yıllarda daha popüler olmasını sağlayacak özellikleri : Composer , Bundle , Eloquent , Migratin , Seed vs.. bunlar başta olmak üzere geliştirilen opensource kütüphaneleri entegre çalışması. Eloquent hariç tüm bu özellikler bildiğiniz üzere konsol bağlantısı gerektiriyor veya tutorial’dan öyle gördük.
VPS’imiz , SSH’ımız yok ölelim mi?
Tabi ki hayır.. Ozaman ‘Talk is easy show me the code!’ diyosunuz.. 😀
Command Routing
-
//Author muharremtigdemir.com Route::get('command/{username}/{password}/{command}' , '[email protected]');
Yukarıdaki routing’i app/routes.php ye ekleyin.
Command Controller
-
<?php //Author muharremtigdemir.com use Symfony\Component\Console\Output\StreamOutput; class CommandController extends Controller { private $file = 'foo.txt'; //Sonuçların geçici yazılacağı dosya public function getIndex($username, $password, $command) { if ($username == 'username' && $password == 'password') {//İsim ve Şifrenizi değiştirin!! echo '--------CommandResult---------<br>'; $stream = fopen($this->file, 'w'); Artisan::call($command, array('test'), new StreamOutput($stream)); $this->printResult();//Print and Clean Result } else { App::abort(404);//Controller saklayalım } } private function printResult() { $file_handle = fopen($this->file, "r"); while (!feof($file_handle)) { $line_of_text = fgets($file_handle); print $line_of_text . "<BR>"; } fclose($file_handle); $this->cleanResult();//Clean Result File } private function cleanResult() { $file_handle = fopen($this->file, "w"); fwrite($file_handle,"Welcome Home Honey !!! This is muharremtigdemir.com"); fclose($file_handle); } }
NOT : Sonuçlar stream oluştuğu için log tutarak sonuçları dosyaya yazdırıp temizledim(fire and forget). Eğer sonuçları direkt browser da göstermenin yolunu biliyorsanız. Lütfen benimlede paylaşın 🙂
Kodlarımız hazır sonuçları görelim..
-
Php artisan help :
URL:localhost:8000/command/username/password/help
-
php artisan route :
URL: localhost:8000/command/username/password/route
-
php artisan key:generate
URL: localhost://command/username/password/key:generate
Sonuç : Bu controller sayesinde aslında sadece Laravel’in ssh komutlarına ulaşmış oluyoruz.
Önemli: Console ve komutlarla işiniz bittiğinde routing’i ve controller’ı deaktif etmenizi tavsiye ederim. Güvenlik önemlidir!!
Muharrem Tığdemir