PHP Предупреждение: нет такого файла или каталога в Unknown в строке 0

Я использую хостинг в linux и настроенный субдомен на моем сайте на сервере Apache2. Я использую laravel, но по умолчанию я не использовал службу apache2. Я использую команды laravel artisan.

php artisan serve –host 0.0.0.0

Он будет слушать порт 8000. Поэтому, чтобы получить доступ к моему сайту, я использую http: // myipaddress: 8000 для доступа к нему.

Я попытался «chmod 755 или 777 общедоступной папки», но все еще не работал. Мой .htaccess в laravel / общедоступной папке

.htaccess

<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect Trailing Slashes... RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] 

Когда я обращаюсь к своему сайту с портом 8000, ниже приведены мои ошибки:

 PHP Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0 PHP Fatal error: Unknown: Failed opening required 'server.php' (include_path='.:/usr/share/php:/usr/share/php/PEAR') in Unknown on line 0 

Я знаю, что это старый вопрос, но у меня была такая же проблема, и я нашел решение, добавив файл server.php в корневую директорию проекта со следующим содержимым:

 <?php $uri = urldecode( parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ); // This file allows us to emulate Apache's "mod_rewrite" functionality from the // built-in PHP web server. This provides a convenient way to test a Laravel // application without having installed a "real" web server software here. if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { return false; } require_once __DIR__.'/public/index.php'; 

У меня была та же проблема, реальная причина проблемы в том, что где-то вдоль линии последний параметр для встроенного сервера php -S был изменен на флаг, поэтому вы должны называть его следующим образом:

php -S 127.0.0.1:8000 -t public -f serve.php

Перед php 7.0.26 вы можете опустить -f .

Это то, что происходит под капотом, когда вы вызываете php artisan serve .

Если вы хотите обслуживать его с помощью php artisan serve вам придется переопределить ServeCommand и добавить -f перед serve.php на последней строке метода fire() , например:

passthru('"'.PHP_BINARY.'"'." -S {$host}:{$port} -t \"{$public}\" -f server.php");

Для более подробной информации смотрите этот пост stackoverflow .