我在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
答案 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。