instalar laravel-5 vps

laravel 5 - instalar - laravel5: chdir(): ningún archivo o directorio(errno 2)



laravel linux (5)

Tengo un problema al implementar la compilación del sitio web en laravel 5 en el servidor VPS, pero en la máquina local funciona bien.

Mi página es http://easyway.vn/ pantalla de la página actual en blanco con error

Error al cargar el recurso: el servidor respondió con un estado de 500 (Error interno del servidor)

Cuando corro

servicio php artesanal --host = 0.0.0.0

Tengo un error

[ErrorException]
chdir (): ningún archivo o directorio (errno 2)



Información del servidor

Sistema operativo: Linux 2.6
Versión del servidor: Apache / 2.2.29 (Unix)
PHP 5.4.41 (cli) (built: 4 de junio de 2015, 13:27:02) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

¡Ayudame por favor!


  1. Paso uno en proveedor / laravel / framework / src / Illuminate / Foundation / Console / ServeCommand.php

`chdir($this->laravel->publicPath());`

change to

chdir(''/'');

2. Paso dos Cambia estas dos rutas en your_public_folder / index.php

require __DIR__.''/../your_app/bootstrap/autoload.php'';

$app = require_once __DIR__.''/../your_app/bootstrap/app.php'';

3. Paso tres Cambie la ruta pública en your_app / server.php

if ($uri !== ''/'' && file_exists(__DIR__.''/../public_html/''.$uri)) { return false; } require_once __DIR__.''/../public_html/index.php'';

Nota : Cambie estas rutas según la nueva estructura de carpetas de su aplicación.


Cambiar el nombre del nombre de la carpeta pública causa este problema.

Tocar archivos en el directorio de proveedores es algo que nunca debes hacer.

Aquí hay una forma alternativa de trabajo que he probado y usado en mi proyecto activo.

Cree archivos de la aplicación / consola / comandos / Serve.php y configure el contenido como sigue:

<?php namespace App/Console/Commands; use Exception; use Illuminate/Console/Command; use Symfony/Component/Console/Input/InputOption; use Symfony/Component/Process/PhpExecutableFinder; use Symfony/Component/Process/ProcessUtils; class Serve extends Command { /** * The console command name. * * @var string */ protected $name = ''serve''; /** * The console command description. * * @var string */ protected $description = ''Serve the application on the PHP development server''; /** * Execute the console command. * * @return void * * @throws /Exception */ public function fire() { chdir(''/''); $host = $this->input->getOption(''host''); $port = $this->input->getOption(''port''); $base = ProcessUtils::escapeArgument($this->laravel->basePath()); $binary = ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)); $this->info("Laravel development server started on http://{$host}:{$port}/"); if (defined(''HHVM_VERSION'')) { if (version_compare(HHVM_VERSION, ''3.8.0'') >= 0) { passthru("{$binary} -m server -v Server.Type=proxygen -v Server.SourceRoot={$base}/ -v Server.IP={$host} -v Server.Port={$port} -v Server.DefaultDocument=server.php -v Server.ErrorDocument404=server.php"); } else { throw new Exception("HHVM''s built-in server requires HHVM >= 3.8.0."); } } else { passthru("{$binary} -S {$host}:{$port} {$base}/server.php"); } } /** * Get the console command options. * * @return array */ protected function getOptions() { return [ [''host'', null, InputOption::VALUE_OPTIONAL, ''The host address to serve the application on.'', ''localhost''], [''port'', null, InputOption::VALUE_OPTIONAL, ''The port to serve the application on.'', 8000], ]; } }

Actualice la aplicación / Console / Kernel.php con este contenido:

<?php namespace App/Console; use Illuminate/Console/Scheduling/Schedule; use Illuminate/Foundation/Console/Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ Commands/Inspire::class, Commands/Serve::class, ]; /** * Define the application''s command schedule. * * @param /Illuminate/Console/Scheduling/Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { $schedule->command(''inspire'') ->hourly(); } }

¡Eso es todo!

Ahora ejecuta tu comando de servir:

$ php artisan serve

Servidor iniciado:

Laravel development server started on http://localhost:8000/


Por lo general, cuando se produce este tipo de error, significa que Laravel está buscando una carpeta pública y no se puede encontrar. Esto depende de cómo hayas configurado tu aplicación y el uso del servicio php artesanal --host=0.0.0.0 no funcionará en este caso. La mejor manera de manejar esto es colocar su aplicación en su servidor (htdocs) y acceder a ella en su url.

El directorio de proveedores contiene sus dependencias de Composer. Visite la documentación de Laravel para más detalles. Nunca edite nada en el proveedor porque puede causar un problema al hacer la actualización del compositor.


significa que su aplicación Laravel no puede encontrar la carpeta pública.

Lo tengo para trabajar cambiando

chdir($this->laravel->publicPath());

en el proveedor / laravel / framework / src / Illuminate / Foundation / Console / ServeCommand.php Para:

chdir(''/'');


vaya a server.php en la carpeta raíz y cambie el nombre de cualquier public a any name you have