Öncelikle Bu Konu alıntıdır. https://ozdemirburak.com/laravel-homestead-kurulumu alıntı kaynagı üsttedr. ________________________________________________________________________ Laravel'i Vagrant üzerinden çalıştırmak birçok kolaylık sağlamakta olup, Ubuntu'da Laravel Homestead kurulumu ise gayet basit bir işlemdir. Ancak maalesef, detaylı Türkçe anlatım mevcut değil, dolayısıyla bu yazıyı yazmaya karar verdim. Bu yazının sonunda, homestead kurulumunu tamamlamış, nasıl projelerinizi Vagrant'a linkleyebileceğinizi öğrenmiş, ayrıca da veritabanını daha kolay yönetebilmek için phpMyAdmin kurulumunu tamamlamış olacaksınız. Kurulum Komutları Kuruluma başlamak için, VirtualBox, Vagrant ve git'i bizim için yükleyecek, sonrasında da homestead vagrant box'ını bizim için yükleyecek alttaki komutları çalıştırmanız lazım. Vagrant box eklerken, size vmware veya virtualbox'tan hangisini istediğinizi soracaktır, bu kurulumda virtualbox üzerinden ilerlediğimiz için onu seçin. Ancak isterseniz virtualbox yerine vmware kurulumu yapıp, vmware olarak seçim yapabilir, ya da daha sonradan değiştirebilirsiniz. Eğer macOS için kurulum yapacaksanız, virtualbox ve vagrant'ı internet sitelerinden indirip, yüklemeniz gerekmekte. $ sudo apt install virtualbox $ sudo apt install vagrant $ sudo apt install git $ vagrant box add laravel/homestead $ cd ~ && git clone https://github.com/laravel/homestead.git Homestead && cd Homestead $ chmod +x init.sh && ./init.sh Kurulum kısmen tamamlandı, daha öncesinde public key üretmediyseniz, alttaki komut ile üretmeniz lazım, ilk çıkan sorguya direkt enter'a basıp, ikinci sorguda, bir passphrase yani şifre niteliğinde düşünebileceğiniz bir cümle yazın. $ ssh-keygen -t rsa -b 4096 -C "mail@adresiniz.com" Opsiyonel olarak, her seferinde passphrase sorgusu ile uğraşmak istemiyorsanız, alttaki komutları yazıp, çıkan sorguda biraz önce oluşturduğunuz passphrase'i yazın. $ eval `ssh-agent -s` $ ssh-add ~/.ssh/id_rsa Homestead Konfigürasyonu Homestead konfigürasyonunu anlamak için, ilk projenizi çalıştıracağımız gerçeklemeyi oluşturalım. $ nano ~/Homestead/Homestead.yaml Alttakine benzer bir yapıyla karşılacaksınız. ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox folders: - map: ~/Code/example to: /home/vagrant/Code/example sites: - map: example.test to: /home/vagrant/Code/example databases: - homestead Çok basit bir mantığı var, folders(klasörler) kısmında, map dosyalarınızı nereden sunduğunuzu belirtiyor, yani bu örnekte ~/Code/example içerisindeki her şey vagrant üzerinde /home/vagrant/Code/example'a linkleniyor, siz ~/Code/example üzerinde bir değişiklik yaparsanız, /home/vagrant/Code/example üzerinde de aynı değişiklikleri görebiliyorsunuz. sites kısmını ise sunucu bloğu olarak düşünebilirsiniz, örneğin /home/vagrant/Code/example'da index.php var ise, birazdan yapacağımız değişiklik sonrasında tarayıcıda example.test yazdığınızda index.php'nin içeriğini görebileceksiniz. /home/vagrant/Code/example'ın bir Laravel projesi olduğunu düşünürsek, index.php'nin bulunduğu public'i linklemeniz gerekeceği için /home/vagrant/Code/example/public olarak değiştirmeniz lazım. Burada biraz önce bahsettiğim yapmamız gereken değişiklik ise, example.test'i hosts dosyasında localhost veya homestead sanal ip'sine linklemek olacak. Bunun için de, $ sudo nano /etc/hosts Karşınıza çıkan kısımda, 192.168.10.10 example.test Satırını ekleyin, kaydetmek için de sırasıyla CTRL+X ve ardından Y'ye basıp, enter'a basın. Tahmin edebileceğiniz üzere, alttaki gibi bir düzenleme de yapabilirsiniz. folders: - map: ~/Code to: /home/vagrant/Code sites: - map: example.test to: /home/vagrant/Code/example/public - map: deneme.test to: /home/vagrant/Code/deneme Ve tabii ki deneme.test adında bir proje eklediğinizde, yine bunu /etc/hosts'a eklemeniz lazım, 192.168.10.10 example.test 192.168.10.10 deneme.test Homestead Kullanımı Homestead kullanımı gayet basittir. Birazdan vagrant'ı başlatınca, tarayıcıda example.test yazdığınızda ~/Code/example üzerinden çalışan example Laravel projenizi, deneme yazdığınızda da ~/Code/deneme üzerinde çalışan, ~/Code/deneme dizininde index.php ya da index.html dosyası olan Laravel olmayan projenizi görebileceksiniz. Vagrant'ı alttaki komut ile başlatabilirsiniz. $ vagrant up Bunu yazdıktan sonra tarayıcıda biraz önce belirttiğimiz example.test veya deneme.test ya da nasıl isimlendirdiyseniz, projenizi çalıştırmayı deneyin, eksiksiz takip ettiyseniz bir problemle karşılaşmamanız lazım. Bunun yanında, sunucuya ssh ile bağlanabilirsiniz. $ vagrant ssh Yalnız burada dikkat etmeniz gereken şey, tüm bu komutları, ~/Homestead klasörü içerisinde gerçekleştirdiğimiz. Ancak Homestead klasörüne herhangi bir yerden erişebilmek için alias kullanabilirsiniz, bunun için de, $ nano ~/.bash_aliases Dosyaya alttaki satırı ekleyin, CTRL X + Y + Enter ile kaydedin. alias homestead='function homestead() { ( cd ~/Homestead && vagrant $* ) }' Son olarak da bunu tanıtmak için, $ source ~/.bashrc An itibariyle, herhangi bir konum üzerinden homestead klasörüne ulaşarak, vagrant komutlarını gerçekleyebilirsiniz. Örnek ssh komutu alttaki gibi. $ homestead ssh Bir diğer sık kullanacağınız komut da vagrantı sonlandırmak için, alttaki komutu yazabilirsiniz, $ homestead halt Homestead phpMyadmin Kurulumu Veritabanını daha kolay yönetebilmek için Homestead sunucunuza phpMyadmin kurabilirsiniz, $ homestead ssh $ curl -sS https://raw.githubusercontent.com/grrnikos/pma/master/pma.sh | sh $ exit Sonrasında da bilgisayarınızda, yine /etc/hosts dosyasını düzenlememiz lazım. $ sudo nano /etc/hosts Veritabanı 127.0.0.1 üzerinden çalıştığı için, alttaki satırı ekleyip, CTRL X + Y + Enter basıp kaydedin. 127.0.0.1 phpmyadmin.test Devamında, phpMyadmin'e giriş yapmak için tarayıcıdan http://phpmyadmin.test:8000 linkine girin, halihazırda mevcut kullanıcı adı ve şifre sırasıyla homestead ve secret. Ekstra Ayarlar Ekstra olarak yapabileceğimiz birkaç ayar daha var. Eğer Türkiye zaman dilimini kullanmak, ayrıca da strftime gibi fonksiyonlar ile Türkçe çıktı üretmek istiyorsanız, sırasıyla alttaki komutlarla sistemi düzenleyebilirsiniz. Karşınıza çıkacak komut isteminde Europe'u seçip Enter'a, ardından da Istanbul'u seçip tekrar Enter'a basın. $ sudo dpkg-reconfigure tzdata $ sudo locale-gen tr_TR tr_TR.utf8 Son olarak ufak bir not, .yaml dosyanızda değişiklik yaptıktan sonra, ayarların geçerli olması için alttaki komutu çalıştırmayı unutmayın. $ homestead reload --provision Bundan sonra ne yapacağınız size kalmış, an itibariyle her şeyi yönetebileceğiniz, geliştirme ortamınızın hazır olmuş olmalı.