LARAVEL

LARAVEL

Laravel Homestead

 

Giriş

Laravel, yerel kalkınma ortamınız da dahil olmak üzere tüm PHP geliştirme deneyimini keyifli hale getirmeye çalışmaktadır. Vagrant , Sanal Makineleri yönetmek ve sağlamak için basit ve şık bir yol sağlar.

Laravel Homestead, yerel makinenize PHP, web sunucusu ve başka herhangi bir sunucu yazılımı yüklemenizi gerektirmeden size mükemmel bir geliştirme ortamı sağlayan resmi ve önceden paketlenmiş bir Vagrant kutusu. İşletim sisteminizi karıştırmak için endişelenmenize gerek yok! Vagrant kutuları tamamen atılabilir. Bir şeyler ters giderirse, kutuyu yokedip birkaç dakika içinde yeniden oluşturabilirsiniz!

Homestead herhangi bir Windows, Mac veya Linux sisteminde çalışır ve Nginx web sunucusu, PHP 7.1, MySQL, Postgres, Redis, Memcached, Düğüm ve şaşırtıcı Laravel uygulamaları geliştirmek için ihtiyacınız olan diğer tüm hediyeler içerir.

 

Dahil Edilen Yazılım

  • Ubuntu 16.04
  • Git
  • PHP 7.1
  • Nginx
  • MySQL
  • MariaDB
  • Sqlite3
  • Postgres
  • Besteci
  • Düğüm (İplik, Bower, Grunt ve Gulp ile)
  • Redis
  • Memcached
  • Beanstalkd
  • Mailhog
  • Ngrok

 

Kurulum ve Kurulum

 

İlk adım

Senin Homestead ortamı başlatmadan önce, yüklemelisiniz VirtualBox 5.1 , VMWare veya Parallels yanı sıra serseri . Tüm bu yazılım paketleri, tüm popüler işletim sistemleri için kullanımı kolay görsel yükleyiciler sağlar.

VMware sağlayıcısını kullanmak için hem VMware Fusion / Workstation hem de VMware Vagrant eklentisini satın almanız gerekecektir . Ücretsiz olmasa da, VMware kutudan çıkarılarak daha hızlı paylaşılan klasör performansı sağlayabilir.

Parallels sağlayıcısını kullanmak için, Parallels Vagrant eklentisini kurmanız gerekir . Ücretsizdir.

Homestead Vagrant Kutusunu Takma

VirtualBox / VMware ve Vagrant yüklendikten sonra terminalinizde aşağıdaki komutu kullanarak kutuyu Vagrant yüklemenize eklemelisiniz. İnternet bağlantı hızınıza bağlı olarak kutuyu indirmek birkaç dakika sürecektir:laravel/homestead

vagrant box add laravel/homestead

Bu komut başarısız olursa, Vagrant yüklemenizin güncel olduğundan emin olun.

Homestead'ı yükleme

Homestead'i sadece depoyu kopyalayarak yükleyebilirsiniz. HomesteadHomestead kutusu Laravel projelerinin tümünün ev sahipliği yapacağı için, depoyu "ev" dizininizdeki bir klasöre kopyalamanızı düşünün.

cd ~

git clone https://github.com/laravel/homestead.git Homestead

masterŞube her zaman istikrarlı olmayabileceğinden, Homestead'in etiketlenmiş bir sürümünü kontrol etmelisiniz . En kararlı sürümü Github Yayın Sayfasında bulabilirsiniz :

cd Homestead

// Clone the desired release...
git checkout v4.0.5

Homestead deposunu kopyaladıktan sonra, yapılandırma dosyasını oluşturmak için Homestead dizininden komutu çalıştırın. Dosya Homestead dizininde yer alacak:bash init.shHomestead.yamlHomestead.yaml

// Mac / Linux...
bash init.sh

// Windows...
init.bat

 

Çiftlik Evini Yapılandırma

Sağlayıcınızı Ayarlama

providerSenin anahtar dosyası Serseri sağlayıcı kullanılması gerektiğini belirtir: , , , veya . Bunu tercih ettiğiniz sağlayıcıya ayarlayabilirsiniz:Homestead.yamlvirtualboxvmware_fusionvmware_workstationparallels

provider: virtualbox

Paylaşılan Klasörlerin Yapılandırılması

foldersMülkiyet dosyası size Homestead çevre ile paylaşmak isteyen tüm klasörler listelenir. Bu klasörlerdeki dosyalar değiştirildiğinde, yerel makineniz ile Homestead ortamı arasında eşit tutulacaktır. Gerekli sayıda paylaşım klasörü yapılandırabilirsiniz:Homestead.yaml

folders:
    - map: ~/Code
      to: /home/vagrant/Code

Etkinleştirmek için NFS , sadece senkronize edilmiş klasör yapılandırması için basit bayrak ekleyin:

folders:
    - map: ~/Code
      to: /home/vagrant/Code
      type: "nfs"

Ayrıca serseri takımından tarafından desteklenen herhangi bir seçenek geçebilir Senkronize Klasörler altında listeleyerek optionstuşu:

folders:
    - map: ~/Code
      to: /home/vagrant/Code
      type: "rsync"
      options:
          rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
          rsync__exclude: ["node_modules"]

Nginx Sitelerini Yapılandırma

Nginx'e aşina değil misin? Sorun değil. sitesMülkiyet kolayca Homestead çevreye bir klasöre "domain" harita sağlar. Dosyada bir örnek site yapılandırması bulunur . Yine, Homestead ortamınıza gerektiği kadar çok site ekleyebilirsiniz. Homestead, üzerinde çalıştığınız her Laravel projesi için uygun, sanal bir ortam görevi görebilir:Homestead.yaml

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

Eğer değiştirirseniz sitesHomestead kutusunu karşılığından sonra mülkü, sen yeniden çalıştırmak gerekir sanal makinede Nginx yapılandırmasını güncelleştirmek için.vagrant reload --provision

Ana Bilgisayar Dosyası

Nginx sitelerinizin "etki alanları" nı makinenizdeki hostsdosyaya eklemelisiniz . hostsDosyanın Homestead makinenin içine Homestead siteleri için istekleri yönlendirir. Mac ve Linux'ta, bu dosya adresindedir . Windows'ta, adresinde bulunur . Bu dosyaya eklediğiniz satırlar aşağıdaki gibi görünecektir:/etc/hostsC:\Windows\System32\drivers\etc\hosts

192.168.10.10  homestead.app

Listelenen IP adresinin dosyanızdaki ayarlanmış olduğundan emin olun . Alan adını dosyanıza ekledikten ve Vagrant kutusunu başlattıktan sonra siteye web tarayıcınız aracılığıyla erişebilirsiniz:Homestead.yamlhosts

http://homestead.app

 

Vagrant Kutuyu Başlatmak

Eğer düzenledikten sonra beğeninize çalıştırmak için Homestead dizinden komutu. Vagrant sanal makineyi önyükleyecek ve paylaşılan klasörlerinizi ve Nginx sitelerinizi otomatik olarak yapılandıracaktır.Homestead.yamlvagrant up

Makineyi yok etmek için, komutu kullanabilirsin.vagrant destroy --force

 

Proje Başına Kurulum Başına

Homestead'i tüm dünyaya yüklemek ve aynı Homestead kutusunu tüm projelerinizde paylaşmak yerine, yönettiğiniz her proje için bir Homestead örneği yapılandırmanız mümkündür. Proje başına çalışan Homestead'i yüklemek, projenizde Vagrantfileçalışan diğer kişilere basitçe izin vererek projenizle birlikte göndermek için yararlı olabilir vagrant up.

Homestead'i doğrudan projenize yüklemek için Besteci'yi kullanarak isteyin:

composer require laravel/homestead --dev

Homestead yüklendikten sonra, kullanmak makeoluşturmak için komut Vagrantfileve proje kök dosyanın. Komut otomatik yapılandıracak ve yönergelere dosyası.Homestead.yamlmakesitesfoldersHomestead.yaml

Mac / Linux:

php vendor/bin/homestead make

Windows:

vendor\\bin\\homestead make

Sonra, terminalinizdeki vagrant upkomutu çalıştırın ve tarayıcınızdaki projenize erişin. Unutmayın, yine de seçeceğiniz bir dosya girişi veya alan adı eklemeniz gerekecek.http://homestead.app/etc/hostshomestead.app

 

MariaDB'yi kurma

MySQL yerine MariaDB'yi kullanmayı tercih ederseniz, bu mariadbseçeneği dosyanıza ekleyebilirsiniz . Bu seçenek MySQL'i kaldıracak ve MariaDB'yi kuracaktır. MariaDB, MySQL için yerinde bir yer değiştirme görevi görür; bu nedenle , uygulamanızın veritabanı yapılandırmasında veritabanı sürücüsünü kullanmalısınız:Homestead.yamlmysql

box: laravel/homestead
ip: "192.168.20.20"
memory: 2048
cpus: 4
provider: virtualbox
mariadb: true

 

Günlük Kullanım

 

Homestead'a Küresel Erişim

Bazen vagrant up, Homestead makinenize dosya sisteminizdeki herhangi bir yerden isteyebilirsiniz. Mac / Linux sistemlerinde Bash profilinize bir Bash işlevi ekleyerek bunu yapabilirsiniz. Windows'ta bunu bir "toplu iş" dosyası ekleyerek gerçekleştirebilirsiniz PATH. Bu komut dosyaları sisteminizdeki herhangi bir yerden herhangi bir Vagrant komutunu çalıştırmanıza izin verir ve otomatik olarak bu komutun Homestead kurulumunuza yönlendirilmesini sağlar:

Mac / Linux

function homestead() {
    ( cd ~/Homestead && vagrant $* )
}

Çimdik emin olun gerçek Homestead Montaj yeri ile işlevinde yolunu. İşlev yüklendikten sonra, sisteminizdeki gibi ya da herhangi bir yerden komutlar çalıştırabilirsiniz .~/Homesteadhomestead uphomestead ssh

Windows

Aşağıdaki içeriklerle makinenizin herhangi bir yerinde bir toplu iş dosyası oluşturun:homestead.bat

@echo off

set cwd=%cd%
set homesteadVagrant=C:\Homestead

cd /d %homesteadVagrant% && vagrant %*
cd /d %cwd%

set cwd=
set homesteadVagrant=

Komut dosyasındaki örnek yolunu Homestead yüklemenizin gerçek konumuna göre ayarladığınızdan emin olun. Dosyayı oluşturduktan sonra dosyanın konumunu ekleyin . Ardından, sisteminizdeki herhangi bir yerden veya yerden komutlar çalıştırabilirsiniz .C:\HomesteadPATHhomestead uphomestead ssh

 

SSH ile Bağlantı Kurma

Sen düzenlenmek suretiyle sanal makineye SSH olabilir vagrant sshsizin Homestead dizinden terminali komutunu.

Ancak, muhtemelen Homestead makinenize SSH'ye sıklıkla ihtiyaç duyacaksınız, çünkü Homestead kutusuna hızlı bir şekilde SSH yapmak için yukarıda açıklanan "işlev" i ana makinenize eklemeyi düşünün.

 

Veritabanlarına Bağlanma

Bir homesteadveritabanı, hem MySQL hem de Postgres için kutudan çıkarılarak yapılandırılmıştır. Laravel'in .envdosyası, bu veritabanını kutudan çıkaracak şekilde çerçeveyi yapılandırır daha da kolaylık sağlamak için.

Host makinenin Müşteri veritabanından MySQL veya Postgres veritabanına bağlanmak için, bağlanmak gerektiğini ve liman (MySQL) veya (Postgres). Her iki veritabanının kullanıcı adı ve parolası / dir .127.0.0.13306054320homesteadsecret

 

Ana makinenizdeki veritabanlarına bağlanırken yalnızca bu standart dışı bağlantı noktalarını kullanmalısınız. Laravel çalıştığı beri Sen laravel veritabanı yapılandırma dosyasında öntanımlıyı 3306 ve 5432 portları kullanacak içinde sanal makine.

 

Ek Siteler Ekleme

Homestead ortamınız sağlanıp çalıştırıldıktan sonra, Laravel uygulamalarınız için ek Nginx siteleri eklemek isteyebilirsiniz. Tek bir Homestead ortamında istediğiniz kadar Laravel kurulumunu yapabilirsiniz. Ek bir site eklemek için, siteyi dosyanıza eklemeniz yeterlidir :Homestead.yaml

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
    - map: another.app
      to: /home/vagrant/Code/another/public

Vagrant "hosts" dosyanızı otomatik olarak yönetmiyorsa, o siteye de yeni siteyi eklemeniz gerekebilir:

192.168.10.10  homestead.app
192.168.10.10  another.app

Site eklendikten sonra, komutu Homestead dizininizden çalıştırın.vagrant reload --provision

 

Site Türleri

Homestead, Laravel'e dayalı olmayan projeleri kolayca çalıştırmanıza izin veren birkaç siteyi destekler. Örneğin, symfony2site türünü kullanarak bir Symfony uygulamasını kolayca Homestead'e ekleyebiliriz :

sites:
    - map: symfony2.app
      to: /home/vagrant/Code/Symfony/public
      type: symfony2

: Kullanılabilir site türleri şunlardır apachelaravel(varsayılan), proxysilverstripestatamic, ve symfony2.

 

Cron Zamanlamalarını Yapılandırma

Laravel, her dakika çalıştırılacak tek bir Esnaf komutunu planlayarak Cron işlerini zamanlamak için uygun bir yol sağlar . Komutu tanımlanan görev zamanlamasını inceleyeceğiz işler çalıştırmak gerektiğini belirlemek için sınıfa.schedule:runschedule:runApp\Console\Kernel

Eğer isterseniz bir Homestead site için çalıştırılacak komutu, sen ayarlayabilirsiniz seçeneği sitesini tanımlarken:schedule:runscheduletrue

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
      schedule: true

Site için Cron işi sanal makinenin klasöründe tanımlanacaktır ./etc/cron.d

 

Limanlar

Varsayılan olarak, aşağıdaki bağlantı noktaları Homestead ortamınıza iletilir:

  • SSH: 2222 → Forward 22
  • HTTP: 8000 → Forward to 80
  • HTTPS: 44300 → 443'e ilet
  • MySQL: 33060 → 3306'ya doğru
  • Postgres: 54320 → İleriye 5432
  • Mailhog: 8025 → Forward to 8025

Ek Bağlantı Noktaları Yönlendirme

İsterseniz, Vagrant kutusuna ek bağlantı noktaları ileri götürebilir ve protokollerini belirleyebilirsiniz:

ports:
    - send: 93000
      to: 9300
    - send: 7777
      to: 777
      protocol: udp

 

Ortamınızı Paylaşma

Bazen şu anda üzerinde çalıştığınız şeyi iş arkadaşlarınızla veya bir müşterinizle paylaşmak isteyebilirsiniz. Vagrant'ın bunu desteklemek için dahili bir yolu vardır vagrant share; Ancak, dosyanızda yapılandırılmış birden çok siteniz varsa bu işe yaramaz .Homestead.yaml

Bu sorunu çözmek için, Homestead kendi sharekomutunu içerir . Başlamak için SSH'yi Homestead makinenize bağlayın vagrant sshve çalıştırın . Bu, siteyi yapılandırma dosyanızdan paylaşacaktır. Tabii ki, yapılandırılmış diğer sitelerinizden herhangi birini aşağıdakiler için değiştirebilirsiniz :share homestead.apphomestead.appHomestead.yamlhomestead.app

share homestead.app

Komutu çalıştırdıktan sonra, etkinlik günlüğünü ve paylaşılan sitenin herkese açık URL'lerini içeren bir Ngrok ekranı görürsünüz. Özel bir bölge, alt etki alanı veya başka bir Ngrok çalışma zamanı seçeneği belirtmek isterseniz bunları komutunuza ekleyebilirsiniz share:

share homestead.app -region=eu -subdomain=laravel

 

Unutmayın, Vagrant doğal olarak güvensizdir ve komutu çalıştırırken sanal makinenizi İnternet'e maruz bırakıyorsunuz share.

 

Ağ Arayüzleri

networksMalı sizin Homestead çevre için yapılandırır ağ arayüzleri. Gerektiği kadar çok arabirim yapılandırabilirsiniz:Homestead.yaml

networks:
    - type: "private_network"
      ip: "192.168.10.20"

Bir etkinleştirmek için köprülü arayüzü bir yapılandırmak bridgeayarı ve ağ türünü değiştirmek public_network:

networks:
    - type: "public_network"
      ip: "192.168.10.20"
      bridge: "en1: Wi-Fi (AirPort)"

Etkinleştirmek için DHCP , sadece kaldırmak ipyapılandırmanızdan seçeneği:

networks:
    - type: "public_network"
      bridge: "en1: Wi-Fi (AirPort)"

 

Çiftlik evi güncelleniyor

Homestead'i iki basit adımda güncelleyebilirsiniz. Öncelikle, aşağıdaki vagrant box updatekomutu kullanarak Vagrant kutusunu güncellemelisiniz :

vagrant box update

Sonra, Homestead kaynak kodunu güncellemeniz gerekiyor. Depoyu kopyaladıysanız git pull origin master, ilk önce depoyu kopyaladığınız konumda olabilir.

Eğer projenizin aracılığıyla Homestead yüklediyseniz dosyası, kendi sağlamalıdır dosyayı içerir ve bağımlılıkları güncelleyin:composer.jsoncomposer.json"laravel/homestead": "^4"

composer update

 

Eski Sürümler

Dosyanıza aşağıdaki satırı ekleyerek Homestead'un kullandığı kutunun sürümünü kolayca geçersiz kılabilirsiniz :Homestead.yaml

version: 0.6.0

Bir örnek:

box: laravel/homestead
version: 0.6.0
ip: "192.168.20.20"
memory: 2048
cpus: 4
provider: virtualbox

Homestead kutusunun eski bir sürümünü kullandığınızda, Homestead kaynak kodunun uyumlu bir sürümüyle eşleştirmeniz gerekir. Aşağıda, desteklenen kutu sürümlerini, kullanılacak Homestead kaynak kodunun hangi sürümünü ve sağlanan PHP sürümünü gösteren bir çizelge verilmiştir:

  Homestead Sürümü Kutu Versiyonu
PHP 7.0 3.1.0 0.6.0
PHP 7.1 4.0.0 1.0.0

 

Sağlayıcıya Özgü Ayarlar

 

Sanal kutu

Varsayılan olarak, Homestead natdnshostresolverayarı için yapılandırır on. Bu, Homestead'ın ana işletim sisteminizin DNS ayarlarını kullanmasına izin verir. Bu davranışı geçersiz kılmak isterseniz, dosyanıza aşağıdaki satırları ekleyin:Homestead.yaml

provider: virtualbox
natdnshostresolver: off

Henüz Yorum Yapılmamış, İlk Yorumu Siz Yapın

Yorum Yollayın