PHP警告:第0行的“未知”中没有此类文件或目录

时间:2015-03-06 06:34:27

标签: php apache .htaccess laravel

我在linux中使用托管,并在我的Apache2服务器网站中配置了子域。我正在使用laravel但默认情况下我没有使用apache2服务。我正在使用laravel artisan命令。

  

php artisan serve --host 0.0.0.0

它将侦听端口8000.因此,为了访问我的网站,我使用http://myipaddress:8000来访问它。

我试过“chmod 755或777公共文件夹”但仍然无法正常工作。 laravel / public文件夹中的.htaccess

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

2 个答案:

答案 0 :(得分:6)

我知道这是一个老问题,但我遇到了同样的问题,我通过将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';

答案 1 :(得分:4)

我有同样的问题,问题的真正原因是这个,在线的某个地方,内置服务器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"); }方法,像这样:

public void sortLinkedList(final String fieldToCompare){ Collections.sort(testList, new Comparator<LinkedListNode>() { @Override public int compare(LinkedListNode arg0, LinkedListNode arg1) { // TODO Auto-generated method stub Field[] fs = classtoLoad.getDeclaredFields(); for (Field field : fs){ field.setAccessible(true); Object fieldName = field.getName(); if(fieldToCompare.equalsIgnoreCase((String) fieldName)){ try { String value1 = (String) field.get(arg0.getValue()); String value2 = (String) field.get(arg1.getValue()); return value1.compareToIgnoreCase(value2); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return 0; } } return 0; } }); }

有关详细信息,请查看此stackoverflow post