Usando Laravel Homestead: 'ningún archivo de entrada especificado'


113

Soy nuevo en el uso de Laravel y Homestead, y agradecería cualquier ayuda o un punto en la dirección correcta. He podido acceder con éxito a la pantalla "Has llegado" cuando ejecuto "php artisan serve", pero cuando intento hacer lo mismo a través de Vagrant, obtengo "ningún archivo de entrada especificado". Mi archivo Homestead.yaml se ve así:

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

En mi computadora tengo los siguientes directorios:

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

En mi Vagrant Box tengo, por alguna razón, dos directorios llamados "código" y "Código":

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

He comprobado y puedo ver los cambios realizados en mi computadora, los archivos de proyectos de ejemplo se reflejan en los archivos de vagrant box.

¡No estoy seguro de cómo resolver esto! Realmente agradecería cualquier ayuda posible :)

Respuestas:


163

En lugar de reinstalar intente

vagrant up --provision

o

homestead up --provision

1
vagrant up --provisionno funcionó para mí, pero homestead up --provision
zillaofthegods

Muchas gracias!
yohannan_sobin

1
Solo hazlo vagrant reload --proivision.
Omar Tariq

1
Este método está funcionando, también puede intentar destruir vagrant y vagrant up, luego hago todas las configuraciones y es mucho más limpio.
George Plamenov Georgiev

hola tengo el mismo problema aquí en lugar de homestead lo ejecuto en cpanel alguna sugerencia?
Aslam

45

Tuve exactamente el mismo problema y encontré la solución mediante el uso de larachat.

A continuación, le indicamos cómo solucionarlo: debe tener la configuración del archivo homestead.yaml correcta. Si desea saber cómo se hace, siga el tutorial de Jeffery Way sobre homestead 2.0 https://laracasts.com/lessons/say-hello-to-laravel-homestead-two .

Ahora, para solucionar el Input not specifiedproblema, debe ingresar al cuadro de homestead y escribir

serve domain.app /home/vagrant/Code/path/to/public/directoryesto generará un script de servicio para nginx. Deberá hacer esto cada vez que cambie de proyecto.

También habló sobre lo que expliqué en esta serie https://laracasts.com/series/laravel-5-fundamentals/


2
Esto es exactamente lo que estaba buscando. ¡Gracias Rudy!
Matthew Fritz

Supongo que ocurre un problema si agrega otro proyecto en Homestead, ¿verdad? ¿No es posible ejecutar serveautomáticamente para todos?
Volatil3

Gracias por compartir el tutorial. ¡Lo tengo funcionando ahora!
Dan Aronne

Con una nueva instalación de vagrant, virtualbox, homestead ... y tratando de destruir / arriba, el comando de servicio es lo que finalmente funcionó. Gracias
Chris

28

Esto es fácil de solucionar, porque ha cambiado el nombre de la carpeta a: exampleproject

Entonces SSH a tu vagabundo:

ssh vagrant@127.0.0.1 -p 2222

Luego cambia tu configuración de nginx:

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

Edite el URI correcto a la raíz en la línea 3 a este con el nuevo nombre de carpeta :

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

Reiniciar Nginx

sudo service nginx reload

Vuelva a cargar el navegador web, debería funcionar ahora


la mejor respuesta en toda la web para este problema. ¡prestigio!
Defkon1

Esto bloqueó mi computadora. Sería bueno si se dieran las razones de estos comandos: exactamente por qué son necesarios y qué están haciendo.
Joshua Foxworth

24

Para mí funcionó lo siguiente:

vagrant reload --provision


1
Esto también funcionó para mí para que cargara los sitios después de cambiar el directorio de host base a Código en lugar de diseño web. ¡Gracias! - rhand acaba de editar
rhand

También podría ser un problema de minúsculas o mayúsculas en el Homestead.yamlarchivo. Por ejemplo, estaba mapeando /phpmyadmincuando mi nombre de directorio era en realidad phpMyAdmin.
Pathros

1
La razón por la que utilizo esta solución es que mantiene intactos los datos de mi base de datos. Esta solución se describe con más detalle aquí: laracasts.com/discuss/channels/general-discussion/…
lwitzel

8

Dando mi respuesta en caso de que alguien tenga problemas con este problema.

  1. Es posible que deba verificar que la configuración server.root en "/ etc / ngnx / sites-available / domain" coincida con su configuración sites.to en "Homestead.yaml".

  2. Si no coincide, cámbielo y reinicie el servidor web con "sudo service nginx restart"

  3. Y todavía las cosas no funcionan, entonces permita el permiso de escritura para la carpeta "YOURSITE / app / storage" como "chmod -R 777 app / storage"


7

También tuve el mismo problema, había asumido que Laravel está instalado "fuera de la caja" pero parece que no lo está. Me conecté con SSH a la máquina y ejecuté estos comandos:

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

Y todo marchaba como de costumbre.


1
¡Gracias Arda! Esa es la clave. Me tomó unas horas :( Tienes que ir dentro de la Máquina Virtual y ejecutar: composer create-project laravel / laravel folder-name
gtamborero

1
Lo que es importante entender con el error "No hay archivo de entrada especificado" es buscar en su máquina host la configuración de Homestead.yaml -> Este archivo contiene el mapeo de sus sitios (mapa: homestead.test a: / home / vagrant / code / public) Esto significa que si vas a tu máquina virtual a root-> / home / vagrant / code / public / tienes que tener tus archivos php html allí. Si no los hay, ejecute: composer create-project laravel / laravel :) Si todo funciona, entonces debe saber que "~ /" significa "c: / windows / users / yourname /" por lo que habrá sus archivos sincronizados de vagabundo a su anfitrión
gtamborero

5

Este problema me ocurrió después de editar Homestead.yaml. Resolví este problema al

homestead destroy
homestead up

Lamentablemente, esto también funciona para mí, lo que hace que mis bases de datos se destruyan cada vez. ¿Ha encontrado alguna solución para esto?
LoveAndHappiness

En su lugar, es posible que pueda simplemente hacer 'provisión de vivienda'. Además, si aún no lo ha hecho, le recomiendo configurar sembradoras y migraciones para que pueda proteger menos la base de datos.
Rayzor

Esto solucionó mi problema: D, y esto es bueno: laracasts.com/lessons/say-hello-to-laravel-homestead-two
Ihab Shoully

5

Tuve los mismos problemas

Pero olvidé que las especificaciones decían que el archivo de configuración estaría ubicado en

~ / .homestead / Homestead.yaml y estaba actualizando ~ / Homestead / src / stubs / Homestead.yaml

Entonces, el FIX fue actualizar Homestead.yaml ubicado aquí en

~ / .homestead / Homestead.yaml

antes de

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

Después

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

Entonces corrí
vagrant up --provision

Espero que esto funcione para cualquier otra persona.


3

Después de cambiar el nombre de algunos directorios, tuve que destruir y volver a ejecutar vagrant. Ninguna de las soluciones aquí funcionó.

Esto funcionó para mí:

vagrant destroy
vagrant up

1
No use vagrant destruye, use vagrant halt para apagar grácilmente su máquina virtual.
AbdulBasit


2

Tuve el mismo problema mientras seguía los documentos de Laravel ( https://laravel.com/docs/5.2/homestead )

Mi problema era muy simple, me perdí leer esta parte en los documentos:

El archivo Homestead.yaml se colocará en el directorio oculto ~ / .homestead:

Así que estaba actualizando el archivo Homestead.yaml incorrecto, ya que el archivo se movió cuando ejecuté el comando bash init.sh.

Solo me di cuenta de esto después de muchas búsquedas, así que espero que esto ayude a alguien.


2

Solo estaba luchando con la misma situación. A continuación se resolvió el problema:

Si tiene una estructura de directorio como esta:

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

Simplemente cree una carpeta 'pública' dentro de exampleproject en su máquina host.


2

Estoy usando Windows 10 y tengo la siguiente configuración de Homestead

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

Hice ping al dominio homestead.local y estaba obteniendo resultados.

Pero cuando escribí http: //homestead.local en el navegador, obtuve el error 'no se especifica el archivo de entrada'

Revisé el código / carpeta pública y no había ningún archivo de índice. Estaba seguro de que el sistema estaba buscando el archivo predeterminado que de alguna manera faltaba.

Una vez que creé un archivo de índice, comenzó a funcionar bien.

Actualizar:

La próxima vez que sucedió después de un cambio en el archivo Homestead.yaml , ejecuté el vagrant reload --provisioncomando y funcionó.

Parece que correr vagrant reloadsolo no abastecerá la caja vagabunda. Leer aquí


1

Una advertencia, linux distingue entre mayúsculas y minúsculas. Probablemente por eso ve un directorio "Código" y un "código".

Lo que haría es rehacer la configuración del vagabundo nuevamente y si desea mantenerlo simple y que coincida con lo que el cuadro de Homestead tiene por defecto, haga su directorio en su máquina host "Código" con mayúsculas.

También puede en la sección "carpetas" simplemente mapear la carpeta "Código" en su máquina, en caso de que decida agregar más sitios a su configuración de Homestead más adelante. De esa manera, en / home / vagrant / Code / verá todos los proyectos de su sitio y podrá ver más sitios apuntando a sus directorios "públicos".


¡Gracias, @noeldiaz! Ayer terminé haciendo lo que dijiste. Descargué vagrant nuevamente, luego eliminé mi directorio de Homestead con "rm -r Homestead", luego lo hice vagrant up, y cuando lo hice vi que el procedimiento vagrant up ejecutaba algunas cosas adicionales como arrancar el servidor nginx. ¡Cuando probé el sitio funcionó! Además, el problema de la carpeta "código" "Código" desapareció :) También hice lo que sugirió, en lo que respecta a la sección "carpetas". Estoy un poco asustado, ya que parece que no entiendo cómo depurar el problema del servidor / caja virtual ', ¡pero continuaré! Realmente aprecio tu ayuda :)
bryant

1

Es probable que esto se deba a que el servidor web nginx no apunta a la ruta correcta.

Hay dos claves que debe mirar: la mapclave debajo foldersy la toclave debajo sites. La foldersclave asigna carpetas en su máquina local a la máquina virtual vagabunda. La sitesclave se usa para crear un host virtual en nginx con el valor en to.

Lo que quiere asegurarse es que tobajo sitesapunta al camino correcto hacia public.

El problema fue que creé mi proyecto laravel con composer create laravel/laravel. Esto creó una carpeta en mi directorio actual llamada laravel. Luego, sin cambiar de directorio, instalé el asistente de homestead con composer require laravel/homestead --dev.

Después de ejecutar php vendor/bin/homestead makey vagrant upmi estructura de directorio se veía así:

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

Mi Homestead.yml se veía así:

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

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

Si miras de cerca, la /Users/USER/Sites/sandbox/php/laravel51ruta se montará en la VM vagabunda. Este es el directorio incorrecto porque debería apuntar a la raíz del proyecto laravel donde está el directorio de tu aplicación. Lo que sucedió aquí fue que se suponía que debía requerir el ayudante de la granja mientras estaba en la raíz del proyecto .

Entonces ahora la pregunta es ¿qué hago? Tiene dos opciones: deshacerse de su VM actual de homestead y comenzar de nuevo, pero esta vez desde la raíz del proyecto O rescatar lo que ya tiene.

Si desea salvar lo que tiene, tendrá que mover varios archivos y una carpeta a la raíz de su proyecto laravel.

Estos son los artefactos que necesitará mover:

.vagrant
Homestead.yml
Vagrantfile

El composer.jsonno será necesario ya que va a lo requieran más tarde.

Mueva esos archivos a la raíz de su proyecto laravel y cambie su directorio de trabajo actual allí ( cd laravel). En ese punto, simplemente actualice el mapdebajo foldersy asegúrese de que apunte a la raíz del proyecto. También asegúrese de que la toclave de abajo sitessea ​​la toclave de abajo folderscon la que se /publicadjunta.

Por ejemplo:

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

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

Ahora ejecútelo composer require laravel/homestead --devpara que se requiera el asistente de homestead en el archivo composer.json de su proyecto actual y se instale.

Corre vagrant reload --provisiony deberías estar listo.


1

Esto suele suceder cuando edita el archivo Homestead.yaml .

¡Si como yo lo intentaste homestead up --provisiony no funcionaste! luego prueba esto (funciona para mí):

  • homestead destroy
  • homestead up

1

Las versiones anteriores de Homestead mapean carpetas ~/Codepara decir, por ejemplo, de forma predeterminada ~/Code/laravel/public. Observe las mayúsculas del caso en ~/Code. Son sensibles a mayúsculas y minúsculas. Las nuevas versiones usan minúsculas ~/code. Actualice estos directorios en su de Homestead.yamlacuerdo con sus directorios reales.

TL; DR;

Actualización ~/Codea ~/codeo viceversa dependiendo de sus nombres de directorio reales.


1

El mismo problema para mí.

Ninguno de los dos vagrant provisiono homestead up --provisiontrabajó para mí, pero el siguiente lo hizo - probablemente como propiedad ya estaba funcionando cuando he modificado el archivo yml

vagrant reload --provision


0

En Laravel 5 tuve que ssh en mi servidor de homestead y ejecutar estos comandos:

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

0

Esta es mi solución:

Es un problema de ruta de archivo, por lo que a continuación se muestran las rutas de mis carpetas y sitios. Además, tuve que usar "destruir vagabundo" ya que el aprovisionamiento no funcionó.

ingrese la descripción de la imagen aquí


0

Mi problema estaba en el archivo de configuración del dominio:

la carpeta pública de mi proyecto se creó en / home / vagrant / Code / demo / public

el archivo de configuración del dominio (para mí /etc/nginx/sites-available/demo.app) había configurado: "/ home / vagrant / Code / Laravel / public" en lugar de "/ home / vagrant / Code / demo / public ".

Ahora está funcionando perfecto.


0

He tenido problemas similares con Homestead y solo aprovisionar la caja funcionó para mí. Entonces deberías probar esto:

vagrant provision


0

vagrant provisionLos códigos relacionados no funcionaron para mí, después de perder un tiempo, reinicié todo el sistema. Ahora funciona... -,-"


0

I editado homestead.yamly hostsde acuerdo con este tutorial laracast y homestead renovadas usando vagrant suspend, vagrant halt, etc. / vagrant up; Lo intenté vagrant provisiontambién, pero no file specifiedsolo desaparecí después de reiniciar mi computadora (estoy en una PC con Windows 7) después de hacer todo lo anterior. Sin duda, es un error complicado y que requiere mucho tiempo.

Así es homestead.yamlcomo se ve mi trabajo para dos proyectos de 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

y aquí está mi hostsarchivo:

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

Tenga en cuenta que hay dos instalaciones separadas de laravel en D:\Projects\ProjectOneyD:\Projects\ProjectTwo

Luego accedo al primer proyecto escribiendo projectone.app:8000en el navegador y projecttwo.app:8000al segundo proyecto.

PD: probé esto para Laravel 5.2 en Windows


0

Esto sucede porque necesita configurar su servidor nginx correctamente para poder servir su aplicación. Puede hacer esto siguiendo esta guía, comenzando en el tema Configurar Nginx y Web Root .

Después de configurar correctamente su enlace simbólico entre su / etc / nginx / sites-available y / etc / nginx / sites-enabled, debe asegurarse de que su variable raíz esté configurada en la ruta de la carpeta de su aplicación. Configure su raíz nginx desde

root /usr/share/nginx/html;

a

/home/vagrant/Projects/ProjectOne/public

Además, debe colocar index.php antes de sus archivos html para que php se sirva antes que html. Cambia esto

index index.html index.htm;

a esto

index index.php index.html index.htm;

Después de terminar su configuración, reinicie su servidor nginx con

sudo service nginx restart

Su solicitud debería ser entregada ahora.


0

Tuve tal problema. Revisé el archivo Homestead.yaml y todos los archivos y todas las configuraciones eran correctas. Mi problema se eliminó después de los siguientes pasos.

1-Si está en vagrant @ homestead: ~ $ línea de comando, escriba exitcomando.

2- Ahora debes estar dentro de la carpeta Homestead. ejecutar este comando

vagrant reload --provision

3- correr vagrant ssh

Ahora, si escribe la dirección relacionada en su navegador, debería mostrar la página de Laravel.


0

Intenta reiniciar tu computadora

Tenía un Homestead funcionando localmente, que en algún momento se detuvo y obtendría el error "No se especificó el archivo de entrada". No pude rastrearlo.

Con un reinicio de la computadora, el error desapareció.


0

Si cambió el nombre de la carpeta que contiene su proyecto de Homestead, obtendrá este error. Visite su Homestead.yamlarchivo y actualice cualquier referencia para apuntar a la carpeta renombrada, luego haga vagrant up(etc.) nuevamente


0

Si está usando una nueva versión de larval 7> = puede usar desde su directorio de inicio vagrant provision

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.