尝试了一下,把对应的root改成实际的情况,把原来的try_files的/index.php?$query_string改成/public/index.php?$query_string,重启nginx后一切正常(debian环境).所以这个强行把root指向到public上一级是可行的.
但是,如果是生产环境,强烈不建议你这么做.因为root指向的是public上一级的话,几乎所有的文件都是可请求的,虽然很多会报错,但是这绝对违背了laravel的初衷.而且,是非常非常不安全的行为.比如http://xxx.com/.env 如果你的nginx不做特殊处理,用户将可以下载到你的.env文件,危害你懂的.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…