Laravel Homestead'i kullanma: 'girdi dosyası belirtilmedi'


113

Laravel ve Homestead'i kullanmakta yeniyim ve herhangi bir yardım veya doğru yönde bir noktayı takdir ediyorum. "Php artisan service" komutunu çalıştırdığımda "Geldiniz" ekranına başarılı bir şekilde ulaşabildim, ancak aynı şeyi Vagrant aracılığıyla yapmaya çalıştığımda "hiçbir girdi dosyası belirtilmedi" mesajı alıyorum. Homestead.yaml dosyam şöyle görünüyor:

authorize: /Users/me/.ssh/id_rsa.pub

keys:
    - /Users/me/.ssh/id_rsa

folders:
    - map: /Users/me/code/exampleproject
      to: /home/vagrant/code/exampleproject

sites:
    - map: exampleproject.app
      to: /home/vagrant/code/exampleproject/public

variables:
    - key: APP_ENV
      value: local

Bilgisayarımda aşağıdaki dizinlere sahibim:

/Users/me/code/Homestead
/Users/me/code/exampleproject //this is the directory created with composer

Serseri Kutumda bazı nedenlerden dolayı "kod" ve "Kod" adlı iki dizin var:

/home/vagrant/code/exampleproject 
/home/vagrant/Code

Kontrol ettim ve bilgisayarımdaki örnek proje dosyalarında yapılan değişikliklerin serseri kutu dosyalarında yansıtıldığını görebiliyorum.

Bunu nasıl anlayacağından emin değilim! Mümkün olan herhangi bir yardım için gerçekten minnettar olurum :)

Yanıtlar:


163

Yeniden yüklemek yerine deneyin

vagrant up --provision

veya

homestead up --provision

1
vagrant up --provisionBenim için işe yaramadı ama homestead up --provisionvermedi
zillaofthegods

Çok teşekkür ederim!
yohannan_sobin

1
Sadece yap vagrant reload --proivision.
Omar Tariq

1
Bu yöntem işe yarıyor, serseri yok etmeyi ve serseriyi deneyebilirsiniz, sonra tüm konfigürasyonları ve çok daha temiz yapıyorum.
George Plamenov Georgiev

merhaba homestead yerine burada aynı sorunu yaşıyorum cpanel'de çalıştırıyorum herhangi bir öneri?
Aslam

45

Ben de aynı sorunu yaşadım ve çözümü larachat kullanarak buldum.

Homestead.yaml dosya ayarlarınızın doğru olması için bunu nasıl düzelteceğiniz aşağıda açıklanmıştır. Nasıl yapıldığını öğrenmek istiyorsanız, homestead 2.0 https://laracasts.com/lessons/say-hello-to-laravel-homestead-two'daki Jeffery Way eğitimini izleyin .

Şimdi Input not specifiedsorunu çözmek için homestead kutusuna ssh yapmanız ve yazmanız gerekir.

serve domain.app /home/vagrant/Code/path/to/public/directorybu nginx için bir hizmet betiği oluşturacaktır. Her proje değiştirdiğinizde bunu yapmanız gerekecek.

Ayrıca bu dizide açıkladığım şeyi de tartıştı https://laracasts.com/series/laravel-5-fundamentals/


2
Bu tam olarak aradığım şeydi. Teşekkürler Rudy!
Matthew Fritz

Homestead'e başka bir proje eklerseniz sorun olur sanırım? Herkes için serveotomatik olarak çalıştırmak mümkün değil mi?
Volatil3

Eğiticiyi paylaştığınız için teşekkürler. Şimdi çalışıyor!
Dan Aronne

Yeni bir serseri, sanal kutu, çiftlik evi ... ve yok etmeyi / kaldırmayı denerken, sonunda işe yarayan hizmet komutu oldu. Teşekkürler
Chris

28

Klasör adını şu şekilde değiştirdiğiniz için bunu düzeltmek kolaydır: exampleproject

Öyleyse SSH serserinize:

ssh vagrant@127.0.0.1 -p 2222

Ardından nginx yapılandırmanızı değiştirin:

sudo vi /etc/nginx/sites-enabled/homestead.app

Düzen doğru URI Buna 3. hatta köküne yeni klasör adıyla :

root "/Users/MYUSERNAME/Code/exampleproject/public";

Nginx'i yeniden başlatın

sudo service nginx reload

Web tarayıcısını yeniden yükleyin, şimdi çalışmalı


bu sorun için tüm web'deki en iyi cevap. şeref!
Defkon 1

Bu bilgisayarımı kilitledi. Bu komutların nedenleri verilmiş olsaydı iyi olurdu - tam olarak neden gerekli oldukları ve ne yaptıkları.
Joshua Foxworth

24

Benim için aşağıdakiler çalıştı:

vagrant reload --provision


1
Bu, temel ana bilgisayar dizinini web tasarımı yerine Kod olarak değiştirdikten sonra siteleri yüklemesini sağlamak için de çalıştı. Teşekkürler! - rhand şimdi düzenle
rhand

Homestead.yamlDosyadaki küçük veya büyük harf sorunu da olabilir . Örneğin /phpmyadmin, aslında benim dizin adım olduğu zaman eşleştiriyordum phpMyAdmin.
Pathros

1
Bu çözümü kullanmamın nedeni, veritabanı verilerimi olduğu gibi tutması. Bu çözüm burada daha ayrıntılı olarak açıklanmaktadır: laracasts.com/discuss/channels/general-discussion/…
lwitzel

8

Bu konuyla mücadele eden biri olursa, cevabımı veriyorum.

  1. "/ Etc / ngnx / sites-available / domain" içindeki server.root yapılandırmasının "Homestead.yaml" içindeki siteler.to ile eşleştiğini doğrulamanız gerekebilir.

  2. Eşleşmiyorsa, değiştirin ve web sunucusunu "sudo service nginx restart" ile yeniden başlatın.

  3. Yine de işler çalışmıyor, ardından "YOURSITE / app / storage" klasörü için "chmod -R 777 app / storage" olarak yazma izni verin


7

Ben de aynı sorunu yaşadım, Laravel'in "kutunun dışında" kurulduğunu varsaymıştım ama öyle görünüyor. Makineye SSH'ledim ve şu komutları çalıştırdım:

cd Code
sudo composer self-update #not necessary, but I did it anyways
composer create-project laravel/laravel Laravel --prefer-dist

Ve her şey her zamanki gibi çalışıyordu.


1
Teşekkürler Arda! Anahtar bu. Birkaç saatimi aldı :( Sanal Makinenin içine girip şunu çalıştırmalısın: composer create-project laravel / laravel klasör-adı
gtamborero

1
"Girdi dosyası belirtilmedi" hatasıyla anlamak önemli olan, ana makinenizde Homestead.yaml yapılandırmasına bakmaktır -> Bu dosya site eşlemenizi içerir (harita: homestead.test ile: / home / vagrant / code / public) Bu, sanal makinenize root-> / home / vagrant / code / public / adresine giderseniz, html php dosyalarınızın orada olması gerektiği anlamına gelir. Orada yoksa, şunu çalıştırın: composer create-project laravel / laravel :) Her şey çalışıyorsa, "~ /" nin "c: / windows / users / adınız /" anlamına geldiğini bilmelisiniz, böylece samimi dosyalarınız olacaktır. serseriden ev sahibine
gtamborero

5

Bu sorun Homestead.yaml dosyasını düzenledikten sonra benim için oluştu. Bu sorunu şu şekilde çözdüm:

homestead destroy
homestead up

ne yazık ki bu benim için de işe yarıyor, bu da veri tabanlarımın her seferinde yok olmasına neden oluyor. Bunun için herhangi bir çözüm buldunuz mu?
LoveAndHappiness

Bunun yerine sadece 'çiftlik evi provizyonu' yapabilirsiniz. Ayrıca, henüz yapmadıysanız, veri tabanını daha az korumanız için ekiciler ve geçişler kurmanızı tavsiye ederim.
Rayzor

Bu benim sorunumu çöz
Ihab Shoully

5

Aynı sorunları yaşadım

Ancak, teknik özelliklerin yapılandırma dosyasının şu adreste bulunacağını söylediğini unuttum

~ / .homestead / Homestead.yaml ve güncelleniyordu ~ / Homestead / src / stubs / Homestead.yaml

Dolayısıyla FIX, burada bulunan Homestead.yaml dosyasını güncellemekti.

~ / .Homestead / Homestead.yaml

Önce

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

Sonra

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

Sonra koştum
vagrant up --provision

Umarım bu başkası için çalışır.


3

Bazı dizinleri yeniden adlandırdıktan sonra, serseriyi yok etmek ve yeniden çalıştırmak zorunda kaldım. Buradaki çözümlerin hiçbiri işe yaramadı.

Bu benim için çalıştı:

vagrant destroy
vagrant up

1
Kullanıcı serseri yok etmeyin, sanal makinenizi zarif bir şekilde kapatmak için serseri durdurma kullanın.
AbdulBasit

2

Çiftliğinizi yeniden başlatın. Benim için çalıştı.

homestead destroy
homestead up

2

Laravel belgelerini takip ederken de aynı sorunu yaşadım ( https://laravel.com/docs/5.2/homestead )

Sorunum çok basitti, bu bölümü belgelerde okudum:

Homestead.yaml dosyası ~ / .homestead gizli dizine yerleştirilecektir:

Bu yüzden, bash init.sh komutunu çalıştırdığımda dosya taşındığı için yanlış Homestead.yaml dosyasını güncelliyordum.

Bunu ancak çok fazla araştırmadan sonra fark ettim, bu yüzden birisine yardımcı olacağını umuyorum.


2

Ben de aynı durumla mücadele ediyordum. Aşağıdaki sorunu çözdü:

Bunun gibi dizin yapınız varsa:

folders:
    - map: /Users/me/code/exampleproject
      to: /home/vagrant/code/exampleproject

Sadece ana makinenizdeki exampleproject içinde 'public' klasör oluşturun.


2

Windows 10 kullanıyorum ve aşağıdaki Homestead yapılandırmasına sahibim

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa
folders:
    - map: ~/code               #folder in local computer where codes are stored eg, c:\xampp\htdocs\project1
      to: /home/vagrant/code    #folder in the VM where the above code will be mapped

sites:
    - map: homestead.local          #fake name of the site (redirect this domain to the above IP ie 192.168.10.10 in hosts file ie, c:\windows\system32\etc\hosts)
      to: /home/vagrant/code/public #complete path to index.php file in the local computer to be utilized by homestead.local 
databases:
    - homestead

Homestead.local etki alanına PING attım ve sonuçları alıyordum.

Ancak tarayıcıda http: //homestead.local yazdığımda , 'belirtilmiş girdi dosyası yok' hatası alıyorum

Kodu / ortak klasörü kontrol ettim ve dizin dosyası yoktu. Sistemin bir şekilde eksik olan varsayılan dosyayı aradığından emindim.

Bir dizin dosyası oluşturduktan sonra iyi çalışmaya başladı.

Güncelleme:

Homestead.yaml dosyasındaki bir değişiklikten sonra bir dahaki sefere gerçekleşti , vagrant reload --provisionkomutu çalıştırdım ve işe yaradı.

Görünüşe göre vagrant reloadsadece koşmak , serseri kutuyu sağlamayacak. Burayı oku


1

Dikkatli olun, linux büyük / küçük harfe duyarlıdır. Muhtemelen bir "Kod" ve bir "kod" dizini görmenizin nedeni budur.

Yapacağım şey, serseri kurulumunu yeniden yapmak ve basit tutmak ve Homestead kutusunun varsayılan olarak sahip olduğu ile eşleşmesini istiyorsanız, ana makinenizdeki dizininizi büyük harfle "Kod" yapın.

Ayrıca, Homestead kurulumunuza daha sonra daha fazla site eklemeye karar vermeniz durumunda, "klasörler" bölümünde makinenizdeki "Kod" klasörünüzle eşleştirebilirsiniz. Bu şekilde / home / vagrant / Code / altında tüm site projelerinizi göreceksiniz ve "genel" dizinlerine işaret eden daha fazla site bulabilirsiniz.


Teşekkürler @noeldiaz! Dün, söylediklerini yaptım. Vagrant'ı tekrar indirdim, sonra Homestead dizinimi "rm -r Homestead" ile kaldırdım, sonra serserilik yaptım ve yaptığımda serseri yukarı prosedürünün nginx sunucusunu başlatmak gibi bazı ek şeyler çalıştırdığını gördüm. Siteyi denediğimde işe yaradı! Ayrıca "kod" "Kod" klasör sorunu da ortadan kalktı :) "Klasörler" bölümüne kadar önerdiğiniz şeyi de yaptım. Sunucu / sanal kutu sorununu nasıl ayıklayacağımı anlamadığım için biraz korkuyorum ', ama devam edeceğim! Yardımınız için gerçekten minnettarım :)
bryant

1

Nginx web sunucusu Bunun nedeni büyük olasılıkla değil doğru yola işaret.

Bakmanız gereken iki anahtar var: altındaki mapanahtar foldersve altındaki toanahtar sites. foldersAnahtar serseri VM yerel makinenizde klasörleri eşler. sitesAnahtar değeri ile nginx bir sanal konak oluşturmak için kullanılır to.

Emin olmak istediğiniz şey , doğru yolun toaltında sitesolduğudur public.

Sorun, laravel projemi ile oluşturmamdı composer create laravel/laravel. Bu, adlı mevcut dizinimde bir klasör oluşturdu laravel. Sonra dizinleri değiştirmeden homestead yardımcısını kurdum composer require laravel/homestead --dev.

Çalıştırdıktan sonra php vendor/bin/homestead makeve vagrant upbenim dizin yapısı böyle bir şey görünüyordu:

$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile 

Homestead.yml şuna benziyordu:

folders:
    - map: "/Users/USER/Sites/sandbox/php/laravel51"
      to: "/home/vagrant/laravel51"

sites:
    - map: laravel51
      to: "/home/vagrant/laravel51/public"

Yakından bakarsanız, /Users/USER/Sites/sandbox/php/laravel51yol serseri VM'ye monte edilecektir. Bu yanlış dizindir çünkü uygulama dizininizin bulunduğu laravel proje köküne işaret ediyor olmalıdır. Burada olan şey , proje kökteyken çiftlik evi yardımcısına ihtiyacım olmasıydı .

Öyleyse şimdi soru ne yapmalıyım? İki seçeneğiniz var: mevcut ev sahibi sanal makinenizden kurtulun ve baştan başlayın, ancak bu sefer proje kökünden YA DA zaten sahip olduklarınızı kurtarın.

Sahip olduklarınızı kurtarmak istiyorsanız, birkaç dosyayı ve bir klasörü laravel proje kökünüze taşımanız gerekir.

Taşımanız gereken eserler şunlardır:

.vagrant
Homestead.yml
Vagrantfile

Daha composer.jsonsonra ihtiyaç duyacağınız için gerekli olmayacak.

Bu dosyaları laravel proje kökünüze taşıyın ve mevcut çalışma dizininizi oraya değiştirin (cd laravel ) değiştirin. Bu noktada sadece güncellemek mapaltından foldersve emin proje köküne işaret ediyor emin olun. Ayrıca emin olun toanahtar altında sitesolduğu toaltında anahtar foldersile /publickendisine eklenmiş.

Örneğin:

folders:
    - map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
      to: "/home/vagrant/laravel51"

sites:
    - map: laravel51
      to: "/home/vagrant/laravel51/public"

Şimdi composer require laravel/homestead --devhomestead yardımcısının mevcut projenizin composer.json dosyasına girmesi ve yüklenmesi için çalıştırın.

Çalıştırmak vagrant reload --provision ve hazır olmalısın.


1

Bu genellikle Homestead.yaml dosyasını düzenlediğinizde olur. dosyasını .

Benim gibi denedin homestead up --provisionve çalışmadın! o zaman şunu dene (benim için çalışıyor):

  • homestead destroy
  • homestead up

1

Homestead'in eski sürümleri ~/Codeörneğin varsayılan olarak klasörleri eşler ~/Code/laravel/public. İçindeki büyük harf kullanımına dikkat edin ~/Code. Bunlar büyük / küçük harfe duyarlıdır. Yeni sürümler küçük harf kullanır ~/code. Bu dizinleri Homestead.yamlgerçek dizinlerinize göre güncelleyin .

TL; DR;

Güncelleme ~/Codeiçin ~/codeveya yardımcısı gerçek dizin adları bağlı tersi.


1

Benim için aynı sorun.

Ne vagrant provisionya da homestead up --provisionbenim için çalıştı, ancak aşağıdakiler yaptı - muhtemelen homestead yml dosyasını değiştirdiğimde zaten çalışıyordu

vagrant reload --provision


0

Laravel 5'te homestead sunucuma ssh yapmam ve şu komutları çalıştırmam gerekiyordu:

sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache

0

İşte benim çözümüm:

Bu bir dosya yolu sorunu, bu nedenle aşağıda klasörlerim ve sitelerim yollarım var. Ayrıca, provizyon çalışmadığı için "serseri yok etme" yi kullanmak zorunda kaldım.

görüntü açıklamasını buraya girin


0

Sorunum etki alanının yapılandırma dosyasındaydı:

projemin ortak klasörü / home / vagrant / Code / demo / public konumunda oluşturuldu

etki alanının yapılandırma dosyası (benim için /etc/nginx/sites-available/demo.app) "/ home / vagrant / Code / demo / public yerine" / home / vagrant / Code / Laravel / public "yapılandırmıştı ".

Şimdi mükemmel çalışıyor.


0

Homestead ile benzer sorunlar yaşadım ve sadece kutuyu sağlamak benim için çalıştı. Yani şunu denemelisin:

vagrant provision


0

vagrant provisionilgili kodlar benim için çalışmadı, bir süre kaybolduktan sonra tüm sistemi yeniden başlattım. Şimdi çalışıyor... -,-"


0

Ben düzenlenmiş homestead.yamlve hostsuygun bu laracast öğretici kullanarak yeniden çiftlik vagrant suspend, vagrant haltvb / vagrant up; Ben de denedim vagrant provision, ancak yukarıdakilerin hepsini yaptıktan sonra bilgisayarımı yeniden başlattıktanno file specified sonra (Windows 7 bilgisayarındayım) gittim . Kesinlikle zaman alıcı ve aldatıcı bir hatadır.

Bu benim çalışma budur homestead.yamlgörünüyor için mi iki laravel projelerinin:

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
- ~/.ssh/id_rsa

folders:
    - map: D:\Projects
      to: /home/vagrant/Projects

sites:
    - map: projectone.app
      to: /home/vagrant/Projects/ProjectOne/public
    - map: projecttwo.app
      to: /home/vagrant/Projects/ProjectTwo/public

databases:
    - laraveldb

ve işte benim hostsdosyam:

...
127.0.0.1       localhost
192.168.10.10   projectone.app
192.168.10.10   projecttwo.app

Not, iki ayrı laravel kurulumu vardır D:\Projects\ProjectOneveD:\Projects\ProjectTwo

Daha sonra projectone.app:8000tarayıcıya yazarak ilk projeye erişiyorum veprojecttwo.app:8000 ikinci proje için .

PS Bunu Windows'ta Laravel 5.2 için test ettim


0

Bunun nedeni, uygulamanıza hizmet verebilmek için nginx sunucunuzu doğru şekilde yapılandırmanız gerektiğidir. Konudan başlayarak bu kılavuzu takip ederek bunu yapabilirsiniz. Nginx ve Web Kökü Yapılandır başlığından .

/ Etc / nginx / sites-available ve / etc / nginx / sites-etkin arasında sembolik bağlantınızı düzgün bir şekilde yapılandırdıktan sonra , kök değişkeninizin uygulamanızın klasör yoluna ayarlandığından emin olmanız gerekir. Nginx kökünüzü şuradan ayarlayın:

root /usr/share/nginx/html;

için

/home/vagrant/Projects/ProjectOne/public

Ayrıca, index.php'yi html dosyalarınızın önüne yerleştirmeniz gerekir, böylece php, html'den önce sunulur. Bunu değiştir

index index.html index.htm;

buna

index index.php index.html index.htm;

Yapılandırmanızı bitirdikten sonra nginx sunucunuzu şununla yeniden başlatın:

sudo service nginx restart

Başvurunuz şimdi sunulmalıdır.


0

Böyle bir sorun yaşadım. Homestead.yaml dosyasını inceledim ve tüm dosyalar ve tüm ayarlar doğruydu. Aşağıdaki adımlardan sonra sorunum ortadan kalktı.

1-Eğer vagrant @ homestead: ~ $ komut satırındaysanız exitcommand yazın.

2- Artık Homestead klasörünün içinde olmalısınız. bu komutu çalıştır

vagrant reload --provision

3- koş vagrant ssh

Şimdi tarayıcınıza ilgili adresi yazarsanız, Laravel sayfasını göstermelidir.


0

Bilgisayarınızı yeniden başlatmayı deneyin

Yerel olarak çalışan, çalışan bir Homestead vardı, bu bir noktada durdu ve "Girdi dosyası belirtilmedi" hatası alıyordu. Onu izleyemedim.

Bilgisayarın yeniden başlatılmasıyla hata ortadan kalktı.


0

Homestead projenizi içeren klasörü yeniden adlandırdıysanız, bu hatayı alırsınız. Homestead.yamlDosyanızı ziyaret edin ve yeniden adlandırılmış klasörü işaret etmek için tüm referansları güncelleyin, ardından vagrant uptekrar yapın (vb.)


0

Yeni bir larval 7> = sürümü kullanıyorsanız, barındırılan dizininizden kullanabilirsiniz vagrant provision

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.