test - Uso de Laravel Homestead: ''no se especificó ningún archivo de entrada''
laravel homestead windows 10 (23)
Aquí está mi solución:
Es un problema de ruta de archivo, por lo que a continuación están mis rutas de carpetas y sitios. Además, tuve que usar "vagabundo destruir" ya que el aprovisionamiento no funcionaba.
Soy nuevo en el uso de Laravel y Homestead, y agradecería cualquier ayuda o un punto en la dirección correcta. Pude acceder a la pantalla "Has llegado" cuando ejecuto "servicio php artesanal", 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
Lo he verificado y puedo ver los cambios realizados en mi computadora. Los archivos del proyecto de ejemplo se reflejan en los archivos del cuadro vagabundo.
¡No estoy seguro de cómo resolver esto! Realmente agradecería cualquier ayuda posible :)
Dando mi respuesta por si acaso si alguien está luchando con este problema.
Es posible que deba verificar que la configuración de server.root en "/ etc / ngnx / sites-available / domain" coincida con sus sitios. Para configurar "Homestead.yaml".
Si no coincide, cámbielo y reinicie el servidor web con "sudo service nginx restart"
Y aún así las cosas no funcionan, entonces permita el permiso de escritura para la carpeta "YOURSITE / app / storage" como "chmod -R 777 app / storage"
Después de cambiar el nombre de algunos directorios, tuve que destruir y volver a ejecutar el vagabundo después de que ninguna de las soluciones funcionara.
Esto funcionó para mí:
vagrant destroy
vagrant up
Edité homestead.yaml
y hosts
acuerdo con https://laracasts.com/lessons/say-hello-to-laravel-homestead-two y reinicié homestead usando vagrant suspend
vagrant halt
, vagrant halt
, etc. / vagrant up
; Traté de una vagrant provision
también, pero no file specified
solo desapareció después de reiniciar mi computadora (estoy en la PC con Windows 7) después de hacer todo lo anterior. Sin duda es un error lento y complicado.
Esto es lo que mi trabajo homestead.yaml
parece 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 archivo de hosts
:
...
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/ProjectOne
y D:/Projects/ProjectTwo
Luego projecttwo.app:8000
al primer proyecto escribiendo projectone.app:8000
en el navegador y projecttwo.app:8000
para el segundo proyecto.
PD: Probé esto para Laravel 5.2 en Windows
En Laravel 5 tuve que entrar en mi servidor y ejecutar estos comandos:
sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache
En lugar de volver a instalar, intente
vagrant up --provision
o
homestead up --provision
Este problema ocurrió después de editar Homestead.yaml. Resolví este problema por
homestead destroy
homestead up
Esto es fácil de arreglar, porque ha cambiado el nombre de la carpeta a: exampleproject
Entonces SSH a tu vagabundo:
ssh [email protected] -p 2222
Luego cambia tu configuración de nginx:
sudo vi /etc/nginx/sites-enabled/homestead.app
Edite el URI correcto en la raíz en la línea 3 a este con el nuevo nombre de la carpeta :
root "/Users/MYUSERNAME/Code/exampleproject/public";
Reiniciar Nginx
sudo service nginx reload
Recargar el navegador web, debería funcionar ahora
Esto es probable porque el servidor web nginx no está apuntando a la ruta correcta.
Hay dos claves que debe tener en cuenta: la clave del map
debajo de las folders
y la tecla to
debajo de los sites
. La folders
claves correlaciona las carpetas en su máquina local con la VM vagabunda. La clave de sites
se usa para crear un host virtual en nginx con el valor de to
.
Lo que quiere asegurarse es que en sites
apunta al camino correcto al public
.
El problema fue que creé mi proyecto laravel con el composer create laravel/laravel
. Esto creó una carpeta en mi directorio actual llamado laravel
. Luego, sin cambiar los directorios, instalé el helper de homestead con el composer require laravel/homestead --dev
.
Después de ejecutar php vendor/bin/homestead make
y vagrant up
mi estructura de directorios 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 observa detenidamente, la ruta /Users/USER/Sites/sandbox/php/laravel51
se montará en la VM vagabunda. Este es el directorio incorrecto porque debería estar apuntando a la raíz del proyecto laravel donde está el directorio de la aplicación. Lo que sucedió aquí fue que se suponía que debía requerir el ayudante homestead mientras yo estaba en la raíz del proyecto .
Entonces, ahora la pregunta es: ¿qué hago? Tienes dos opciones: deshacerte de tu VM actual de Homestead y comenzar de nuevo, pero esta vez desde la raíz del proyecto O rescatar lo que ya tienes.
Si quiere salvar lo que tiene, tendrá que mover varios archivos y una carpeta a su raíz del proyecto laravel.
Estos son los artefactos que necesitarás mover:
.vagrant
Homestead.yml
Vagrantfile
El composer.json
no será necesario ya que lo necesitarás más tarde.
Mueva esos archivos a su raíz de proyecto laravel y cambie su directorio de trabajo actual a allí ( cd laravel
). En ese punto, simplemente actualice el map
en folders
y asegúrese de que esté apuntando a la raíz del proyecto. También asegúrese de que la tecla to
en los sites
es la tecla to
en las folders
con /public
anexado.
Por ejemplo:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Ahora ejecute el composer require laravel/homestead --dev
para que se requiera el helper de homestead en el archivo composer.json de su proyecto actual e instalado.
Ejecuta la vagrant reload --provision
y deberías estar todo listo.
Esto generalmente sucede cuando edita el archivo Homestead.yaml .
Si, como yo, intentaste homestead up --provision
y no funcionó! entonces prueba esto (me funciona):
-
homestead destroy
-
homestead up
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 la raíz web .
Después de configurar correctamente su enlace simbólico entre su / etc / nginx / sites-available y / etc / nginx / sites-enabled, necesita asegurarse de que su variable raíz esté configurada en la ruta de la carpeta de su aplicación. Establezca su raíz nginx desde
root /usr/share/nginx/html;
a
/home/vagrant/Projects/ProjectOne/public
Además, debe colocar index.php antes de los archivos html para que php se sirva antes de html. Cambia esto
index index.html index.htm;
a esto
index index.php index.html index.htm;
Después de finalizar su configuración, reinicie su servidor nginx con
sudo service nginx restart
Su aplicación debe ser servida ahora.
He tenido problemas similares con Homestead y solo aprovisionar la caja funcionó para mí. Entonces deberías probar esto:
vagrant provision
Las versiones anteriores de Homestead asignan carpetas en ~/Code
para decir, por ejemplo, por defecto ~/Code/laravel/public
. Observe las mayúsculas del caso en ~/Code
. Estos son sensibles a las mayúsculas Las nuevas versiones usan minúsculas ~/code
. Actualice estos directorios en su Homestead.yaml
según sus directorios reales.
TL; DR;
Actualice ~/Code
a ~/code
o viceversa dependiendo de los nombres reales de su directorio.
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.
Palabra de advertencia, Linux es sensible a mayúsculas y minúsculas. Esa es probablemente la razón por la que ve un "Código" y un "código" de directorio.
Lo que haría sería volver a realizar la configuración vagabunda y si desea mantenerla simple y hacer coincidir lo que la casilla de Homestead tiene como valor predeterminado, haga que su directorio en su máquina host sea "Código" con letras mayúsculas.
También podría en la sección "carpetas" simplemente asignar a su 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 esta forma, en / home / vagrant / Code / verá todos los proyectos de su sitio y podrá ver más sitios apuntando a sus directorios "públicos".
Para mí, lo siguiente funcionó:
vagrant reload --provision
Reinicia tu hogar. Trabajó para mi.
homestead destroy
homestead up
Solo estaba luchando con la misma situación. Siguiendo resuelto el problema:
Si tienes una estructura de directorios como esta:
folders:
- map: /Users/me/code/exampleproject
to: /home/vagrant/code/exampleproject
Simplemente crea una carpeta ''pública'' dentro de exampleproject en tu equipo host.
También tuve el mismo problema, asumí que Laravel está instalado "fuera de la caja", pero parece que no lo es. Hice 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 estaba funcionando como de costumbre.
Tuve el mismo problema al seguir los documentos de Laravel ( https://laravel.com/docs/5.2/homestead )
Mi problema fue muy simple, me olvidé de leer esta parte en los documentos:
El archivo Homestead.yaml se colocará en el directorio oculto ~ / .homestead:
Así que estaba actualizando el archivo incorrecto Homestead.yaml, ya que el archivo se movió cuando ejecuté el comando bash init.sh.
Solo me di cuenta de esto después de mucha búsqueda, así que espero que esto ayude a alguien.
Tuve el mismo problema exacto y encontré la solución mediante el uso de larachat.
A continuación, le indicamos cómo solucionarlo. Necesita corregir la configuración de su archivo homestead.yaml. 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 problema de la Input not specified
, debes enviar un ssh al cuadro de Homestead y escribir
serve domain.app /home/vagrant/Code/path/to/public/directory
esto generará un script de servicio para nginx. Deberá hacer esto cada vez que cambie de proyecto.
También discutió lo que expliqué en esta serie https://laracasts.com/series/laravel-5-fundamentals/
Tuve los mismos problemas
Pero se olvidó de que las especificaciones indicaban que el archivo de configuración estaría ubicado en
~ / .homestead / Homestead.yaml y estaba actualizando ~ / Homestead / src / stubs / Homestead.yaml
Entonces, el FIX debía actualizar el 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.
vagrant provision
códigos relacionados con el vagrant provision
no me funcionaron, después de perder un poco de tiempo, reinicié todo el sistema. Ahora funciona... -,-"