Menggunakan Laravel Homestead: 'tidak ada file input yang ditentukan'

113

Saya baru menggunakan Laravel, dan Homestead, dan sangat menghargai bantuan atau titik ke arah yang benar. Saya telah berhasil membuka layar "Anda telah tiba" ketika menjalankan "php artisan serve" tetapi ketika saya mencoba melakukan hal yang sama melalui Vagrant, saya mendapatkan "tidak ada file input yang ditentukan". File Homestead.yaml saya terlihat seperti ini:

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

Di komputer saya, saya memiliki direktori berikut:

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

Di Vagrant Box saya, saya memiliki dua direktori bernama "code" dan "Code":

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

Saya telah memeriksa dan saya dapat melihat perubahan yang dilakukan pada file contoh proyek komputer saya tercermin dalam file kotak gelandangan.

Tidak begitu yakin bagaimana mengetahuinya !! Saya akan sangat menghargai bantuan apa pun yang mungkin :)

Bryant
sumber

Jawaban:

163

Alih-alih menginstal ulang coba

vagrant up --provision

atau

homestead up --provision
sleimanx2.dll
sumber
1
vagrant up --provisiontidak berhasil untuk saya, tetapi homestead up --provisionberhasil
zillaofthegods
Terima kasih banyak!
yohannan_sobin
1
Lakukan saja vagrant reload --proivision.
Omar Tariq
1
Metode ini bekerja juga Anda dapat mencoba gelandangan menghancurkan dan gelandangan kemudian saya membuat semua konfigurasi dan itu jauh lebih bersih.
George Plamenov Georgiev
hai saya punya masalah yang sama di sini daripada wisma saya menjalankannya di cpanel ada saran?
Aslam
45

Saya memiliki masalah yang sama persis dan menemukan solusinya melalui penggunaan larachat.

Berikut cara memperbaikinya Anda harus memiliki pengaturan file homestead.yaml Anda benar. Jika Anda ingin tahu bagaimana caranya, ikuti tutorial Jeffery Way di homestead 2.0 https://laracasts.com/lessons/say-hello-to-laravel-homestead-two .

Sekarang untuk memperbaiki Input not specifiedmasalah Anda perlu ssh ke dalam kotak dan ketik homestead

serve domain.app /home/vagrant/Code/path/to/public/directoryini akan menghasilkan skrip serve untuk nginx. Anda perlu melakukan ini setiap kali Anda beralih proyek.

Dia juga membahas apa yang saya jelaskan dalam seri ini https://laracasts.com/series/laravel-5-fundamentals/

Rudy Jessop
sumber
2
Inilah yang saya cari. Terima kasih Rudy!
Matthew Fritz
Saya kira masalah terjadi jika menambahkan proyek lain di Homestead, kan? Apakah tidak mungkin berjalan serveotomatis untuk semua?
Volatil3
Terima kasih telah berbagi tutorial. Berhasil sekarang!
Dan Aronne
Dengan instalasi baru dari vagrant, virtualbox, homestead ... dan mencoba menghancurkan / up, perintah serve adalah yang akhirnya berhasil. Terima kasih
Chris
28

Ini mudah diperbaiki, karena Anda telah mengubah nama folder menjadi: exampleproject

Jadi SSH untuk gelandanganmu:

ssh vagrant@127.0.0.1 -p 2222

Kemudian ubah konfigurasi nginx Anda:

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

Edit URI yang benar ke root pada baris 3 ke ini dengan nama folder baru :

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

Mulai ulang Nginx

sudo service nginx reload

Muat ulang browser web, ini seharusnya berfungsi sekarang

Truc
sumber
jawaban terbaik di seluruh web untuk masalah ini. pujian!
Defkon1
Ini mengunci komputer saya. Akan lebih baik jika alasan untuk perintah ini diberikan - mengapa mereka dibutuhkan dan apa yang mereka lakukan.
Joshua Foxworth
24

Bagi saya yang berikut ini berhasil:

vagrant reload --provision

Dave Chambers
sumber
1
Ini bekerja untuk saya juga untuk membuatnya memuat situs setelah saya mengubah direktori host dasar ke Kode alih-alih desain web. Terima kasih! - rhand baru saja edit
rhand
Bisa juga masalah huruf kecil atau huruf besar dalam Homestead.yamlfile. Misalnya, saya memetakan ke /phpmyadminsaat itu nama direktori saya sebenarnya phpMyAdmin.
Pathros
1
Alasan saya menggunakan solusi ini adalah agar data database saya tetap utuh. Solusi ini dijelaskan lebih rinci di sini: laracasts.com/discuss/channels/general-discussion/…
lwitzel
8

Memberikan tanggapan saya untuk berjaga-jaga jika ada yang bergumul dengan masalah ini.

  1. Anda mungkin perlu memverifikasi bahwa konfigurasi server.root di "/ etc / ngnx / sites-available / domain" cocok dengan sites.to config di "Homestead.yaml".

  2. Jika tidak cocok, ubah dan restart webserver dengan "sudo service nginx restart"

  3. Dan masih ada hal-hal yang tidak berfungsi maka izinkan izin menulis untuk folder "SITUS ANDA / aplikasi / penyimpanan" sebagai "chmod -R 777 app / penyimpanan"

Senthil
sumber
7

Saya juga memiliki masalah yang sama, saya berasumsi bahwa Laravel diinstal "di luar kotak" tetapi tampaknya tidak. Saya SSH ke mesin dan menjalankan perintah ini:

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

Dan semuanya berjalan seperti biasa.

Arda
sumber
1
Terima kasih Arda! Itu kuncinya. Saya butuh beberapa jam :( Anda harus masuk ke dalam Mesin Virtual dan menjalankan: komposer buat-proyek laravel / laravel nama-folder
gtamborero
1
Yang penting untuk dipahami dengan kesalahan "Tidak ada file masukan yang ditentukan", adalah melihat di mesin host Anda konfigurasi Homestead.yaml -> File ini berisi pemetaan situs Anda (map: homestead.test ke: / home / gelandangan / kode / public) Ini berarti bahwa jika Anda pergi ke mesin virtual Anda untuk root-> / home / gelandangan / code / public / Anda harus memiliki file php html Anda di sana. Jika tidak ada, jalankan: composer create-project laravel / laravel :) Jika semuanya berfungsi maka Anda harus tahu bahwa "~ /" berarti "c: / windows / users / yourname /" sehingga akan ada file yang di-sincronized dari gelandangan ke tuan rumah Anda
gtamborero
5

Masalah ini terjadi pada saya setelah mengedit Homestead.yaml. Saya menyelesaikan masalah ini dengan

homestead destroy
homestead up
Rayzor
sumber
sayangnya ini bekerja untuk saya juga, yang hasilnya di database saya semakin hancur setiap saat. Sudahkah Anda menemukan solusi untuk ini?
LoveAndHappiness
Anda mungkin bisa melakukan 'penyediaan wisma' saja. Juga jika Anda belum melakukannya, saya akan merekomendasikan menyiapkan seeder dan migrasi sehingga Anda tidak terlalu melindungi database.
Rayzor
Ini memperbaiki masalah saya: D, dan ini bagus: laracasts.com/lessons/say-hello-to-laravel-homestead-two
Ihab Shoully
5

Saya memiliki masalah yang sama

Tapi lupakan bahwa spesifikasi mengatakan file konfigurasi akan ditempatkan di

~ / .homestead / Homestead.yaml dan sedang memperbarui ~ / Homestead / src / stubs / Homestead.yaml

Jadi PERBAIKAN adalah memperbarui Homestead.yaml yang terletak di sini di

~ / .homestead / Homestead.yaml

Sebelum

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

Setelah

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

Lalu aku lari
vagrant up --provision

Semoga ini berhasil untuk orang lain.

menyalakan
sumber
3

Setelah saya mengganti nama beberapa direktori, saya harus menghancurkan dan menjalankan kembali gelandangan. Tidak ada solusi di sini yang berhasil.

Ini berhasil untuk saya:

vagrant destroy
vagrant up
Rok Povsic
sumber
1
Jangan gunakan perusak gelandangan, Gunakan gelandangan untuk mematikan mesin virtual Anda dengan baik.
AbdulBasit
2

Mulai ulang wisma Anda. Bekerja untuk saya.

homestead destroy
homestead up
Selassie Twumasi
sumber
2

Saya mengalami masalah yang sama saat mengikuti dokumen Laravel ( https://laravel.com/docs/5.2/homestead )

Masalah saya sangat sederhana, saya melewatkan membaca bagian ini di dokumen:

File Homestead.yaml akan ditempatkan di direktori tersembunyi ~ / .homestead:

Jadi saya memperbarui file Homestead.yaml yang salah, karena file tersebut dipindahkan ketika saya menjalankan perintah bash init.sh.

Saya baru menyadari ini setelah banyak mencari, jadi semoga ini akan membantu seseorang.

aljaydavids
sumber
2

Saya hanya berjuang dengan situasi yang sama. Berikut memecahkan masalah:

Jika Anda memiliki struktur direktori seperti ini:

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

Cukup buat folder 'publik' dalam contoh proyek di mesin host Anda.

Shreyansh Panchal
sumber
2

Saya menggunakan Windows 10 dan memiliki konfigurasi Homestead berikut

---
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

Saya PING domain homestead.local dan mendapatkan hasil.

Tetapi ketika saya mengetik http: //homestead.local di browser, saya mendapat kesalahan 'tidak ada file masukan yang ditentukan'

Saya memeriksa kode / folder publik dan tidak ada file indeks. Saya yakin sistem sedang mencari file default yang entah bagaimana hilang.

Setelah saya membuat file indeks, itu mulai berfungsi dengan baik.

Memperbarui:

Lain kali itu terjadi setelah perubahan pada file Homestead.yaml , saya menjalankan vagrant reload --provisionperintah dan itu berhasil.

Tampaknya vagrant reloadhanya menjalankan tidak akan menyediakan kotak gelandangan. Baca disini

Nava Bogatee
sumber
1

Perhatian, linux peka huruf besar / kecil. Mungkin itulah sebabnya Anda melihat direktori "Kode" dan "kode".

Apa yang akan saya lakukan adalah mengulang pengaturan gelandangan lagi dan jika Anda ingin membuatnya tetap sederhana dan cocok dengan apa yang kotak Homestead miliki sebagai default, buat direktori Anda di mesin host Anda "Kode" dengan huruf besar.

Anda juga dapat di bagian "folder" hanya memetakan ke folder "Kode" di mesin Anda, jika Anda memutuskan untuk menambahkan lebih banyak situs ke pengaturan Homestead Anda nanti. Dengan cara itu di bawah / home / gelandangan / Kode / Anda akan melihat semua proyek situs Anda dan Anda dapat melihat lebih banyak situs yang menunjuk ke direktori "publik" mereka.

noeldiaz
sumber
Terima kasih, @noeldiaz! Kemarin, saya akhirnya melakukan apa yang Anda katakan. Saya mendownload gelandangan lagi, kemudian menghapus direktori Homestead saya dengan "rm -r Homestead", lalu melakukan gelandangan, dan ketika saya melakukannya saya melihat bahwa prosedur gelandangan menjalankan beberapa hal tambahan seperti mem-boot server nginx. Ketika saya mencoba situs itu berhasil! Juga, masalah folder "kode" "Kode" telah hilang :) Saya telah melakukan apa yang Anda sarankan juga, sejauh bagian "folder". Saya / ma sedikit takut, karena sepertinya saya tidak mengerti bagaimana men-debug masalah server / kotak virtual ', tapi akan terus berlanjut! Saya sangat menghargai bantuan Anda :)
bryant
1

Ini mungkin karena server web nginx tidak mengarah ke jalur yang benar.

Ada dua kunci yang harus Anda perhatikan: mapkunci di bawah foldersdan tokunci di bawah sites. The folderskey peta folder pada komputer lokal Anda ke VM gelandangan. The siteskunci digunakan untuk membuat virtual host di nginx dengan nilai dito .

Apa yang ingin Anda pastikan adalah bahwa di tobawah sitesmenunjuk ke jalur yang benarpublic .

Masalahnya adalah saya membuat proyek laravel saya dengan composer create laravel/laravel. Ini membuat folder di direktori saya saat ini bernama laravel. Kemudian tanpa mengubah direktori saya menginstal homestead helper dengancomposer require laravel/homestead --dev .

Setelah berjalan php vendor/bin/homestead makedan vagrant upstruktur direktori saya terlihat seperti ini:

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

Homestead.yml saya terlihat seperti ini:

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

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

Jika Anda melihat lebih dekat, /Users/USER/Sites/sandbox/php/laravel51jalur tersebut akan dipasang ke VM gelandangan. Ini adalah direktori yang salah karena seharusnya mengarah ke akar proyek laravel tempat direktori aplikasi Anda berada. Apa yang terjadi di sini adalah bahwa saya seharusnya membutuhkan pembantu wisma saat saya berada di root proyek .

Jadi sekarang pertanyaannya adalah apa yang harus saya lakukan? Anda punya dua opsi: singkirkan VM homestead Anda saat ini dan mulai lagi, tetapi kali ini dari root proyek ATAU selamatkan apa yang sudah Anda miliki.

Jika Anda ingin menyelamatkan apa yang Anda miliki, Anda harus memindahkan beberapa file dan folder ke root proyek laravel Anda.

Ini adalah artefak yang harus Anda pindahkan:

.vagrant
Homestead.yml
Vagrantfile

Ini composer.jsontidak akan diperlukan karena Anda akan membutuhkannya nanti.

Pindahkan file-file itu ke root proyek laravel Anda dan ubah direktori kerja Anda saat ini ke sana ( cd laravel). Kemudian perbarui bagian mapbawah foldersdan pastikan itu mengarah ke root proyek. Pastikan juga bahwa tokunci di bawah sitesadalah tokunci di bawah foldersdengan/public ditambahkan padanya.

Sebagai contoh:

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

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

Sekarang lari composer require laravel/homestead --dev sehingga homestead helper diperlukan ke dalam file composer.json proyek Anda saat ini dan diinstal.

Jalankan vagrant reload --provisiondan Anda harus siap.

2upmedia
sumber
1

Ini biasanya terjadi ketika Anda mengedit Homestead.yaml file .

Jika seperti saya, Anda mencoba homestead up --provisiondan tidak berhasil! kemudian coba ini (ini berhasil untuk saya):

  • homestead destroy
  • homestead up
Mahmoud Zalt
sumber
1

Versi yang lebih lama dari folder peta Homestead di ~/Codekatakan misalnya secara default ~/Code/laravel/public. Perhatikan kapitalisasi kasus di ~/Code. Ini peka huruf besar / kecil. Versi baru menggunakan huruf kecil ~/code. Perbarui direktori ini Homestead.yamlsesuai dengan direktori Anda yang sebenarnya.

TL; DR;

Perbarui ~/Codeke ~/codeatau sebaliknya, tergantung pada nama direktori Anda yang sebenarnya.

doncadavona
sumber
1

Masalah yang sama bagi saya.

Tidak ada vagrant provisionatau homestead up --provisionberhasil untuk saya, tetapi di bawah ini berhasil - mungkin karena wisma sudah berjalan ketika saya memodifikasi file yml

vagrant reload --provision

nzbenny.dll
sumber
0

Di Laravel 5 saya harus ssh ke server wisma saya dan menjalankan perintah ini:

sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache
EvWill
sumber
0

Inilah solusi saya:

Ini adalah masalah jalur file jadi di bawah ini adalah jalur folder & situs saya. Juga, saya harus menggunakan "vagrant destroy" karena penyediaan tidak berhasil.

masukkan deskripsi gambar di sini

Matt Pierce
sumber
0

Masalah saya ada di file konfigurasi domain:

folder publik proyek saya dibuat di / home / gelandangan / Kode / demo / publik

file konfigurasi domain (bagi saya /etc/nginx/sites-available/demo.app) telah dikonfigurasi: "/ home / vagrant / Code / Laravel / public" bukan "/ home / gelandangan / Code / demo / public ".

Sekarang ini bekerja dengan sempurna.

Angel Noriega
sumber
0

Saya memiliki masalah serupa dengan Homestead dan hanya menyediakan kotak yang berhasil untuk saya. Jadi, Anda harus mencoba ini:

vagrant provision

masummdar
sumber
0

vagrant provisionkode terkait tidak berfungsi untuk saya, setelah kehilangan beberapa waktu, saya telah memulai ulang seluruh sistem. Sekarang berhasil ... -, - "

giovannipds
sumber
0

Saya diedit homestead.yamldan hostsmenurut laracast ini tutorial dan restart wisma menggunakan vagrant suspend, vagrant halt, dll / vagrant up; Saya mencoba vagrant provisionjuga, tetapi no file specifiedhanya hilang setelah saya me-restart komputer saya (saya menggunakan Windows 7 PC) setelah melakukan semua hal di atas. Ini tentu saja merupakan kesalahan yang memakan waktu dan rumit.

Seperti inilah pekerjaan saya homestead.yamluntuk dua proyek laravel:

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

dan ini hostsfile saya :

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

Catatan, ada dua instalasi laravel yang terpisah di D:\Projects\ProjectOnedanD:\Projects\ProjectTwo

Saya kemudian mengakses proyek pertama dengan mengetik projectone.app:8000di browser danprojecttwo.app:8000 untuk proyek kedua.

PS Saya menguji ini untuk Laravel 5.2 pada Windows

Arthur Tarasov
sumber
0

Ini terjadi karena Anda perlu mengkonfigurasi server nginx Anda dengan benar untuk melayani aplikasi Anda. Anda dapat melakukannya dengan mengikuti panduan ini, dimulai dari topik Konfigurasi Nginx dan Root Web .

Setelah mengonfigurasi tautan simbolik Anda dengan benar antara / etc / nginx / sites-available dan / etc / nginx / sites-enabled Anda perlu memastikan variabel root Anda disetel ke jalur folder aplikasi Anda. Setel root nginx Anda dari

root /usr/share/nginx/html;

untuk

/home/vagrant/Projects/ProjectOne/public

Juga, Anda harus menempatkan index.php sebelum file html Anda sehingga php disajikan sebelum html. Ubah ini

index index.html index.htm;

untuk ini

index index.php index.html index.htm;

Setelah konfigurasi Anda selesai, restart server nginx Anda dengan

sudo service nginx restart

Aplikasi Anda harus disajikan sekarang.

Carlos Adames
sumber
0

Saya punya masalah seperti itu. Saya meninjau file Homestead.yaml dan semua file dan semua pengaturan sudah benar. Masalah saya dihapus setelah langkah-langkah berikut.

1-Jika Anda berada di gelandangan @ homestead: ~ $ baris perintah, ketik exitperintah.

2- Sekarang Anda harus berada di dalam folder Homestead. jalankan perintah ini

vagrant reload --provision

3- lari vagrant ssh

Sekarang jika Anda mengetik alamat terkait di browser Anda, itu akan menampilkan halaman Laravel.

M Shafaei N
sumber
0

Coba mulai ulang komputer Anda

Jika Homestead yang berfungsi berjalan secara lokal, yang pada suatu saat akan berhenti dan akan mendapatkan kesalahan "Tidak ada file masukan yang ditentukan". Saya tidak bisa melacaknya.

Saat komputer dimulai ulang, kesalahan tersebut hilang.

MarsAndBack
sumber
0

Jika Anda mengganti nama folder yang berisi proyek Homestead Anda, Anda akan mendapatkan kesalahan ini. Kunjungi Homestead.yamlfile Anda dan perbarui referensi apa pun untuk mengarah ke folder yang diubah namanya, lalu lakukan vagrant up(dll.) Lagi

Jack Kinsella
sumber
0

Jika Anda menggunakan versi baru larva 7> = Anda dapat menggunakan dari direktori homested Anda vagrant provision

kelinci putih
sumber