Laravel 5.5 如何将项目根目录设为一个二级目录?

问答 6091 ⋅ 于 1周前 ⋅ 最后回复由 fationyyk 1周前 ⋅ 321 阅读

想把项目根目录设为一个二级目录:http://sample.test/test/
尝试修改 .env 文件中的 APP_URL=http://sample.test/test,但是发现无效,项目依然只能通过 http://sample.test/ 访问。
想请问一下大家如何设置项目根目录的 URL 到一个指定的目录下?

成为第一个点赞的人吧 :bowtie:
回复数量: 6
  • overtrue MOD https://github.com/overtrue
    1周前

    不是太理解为啥会有这样的需求?你可以考虑使用 web 服务器的虚拟目录来搞定

  • 6091
    1周前

    @overtrue 服务器环境不允许,不能配置二级域名,因此只能在服务器 Web 根目录下面的二级目录里部署应用。

  • overtrue MOD https://github.com/overtrue
    1周前

    @6091 那很为难了

  • Summer MOD A Life-long learner.
    1周前
    location / {
            index index.php index.html;
        try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
    
        if ($request_uri ~ ^/laravel-tutorial(?:/(.*))?$) {
                root /data/www/laravel-tutorial/public;
            }
    
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_index index.php;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            #fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
  • 6091
    1周前

    @Summer 谢谢,不过现在还是出现了问题。
    现在测试的情况是:

    • Laravel 项目 laravel-tutorial 放在 Web 根目录下,即 .../www/laravel-tutorial/
    • 已按照上面在 /etc/nginx/sites-available 下面的配置文件中配置了 Nginx。

    尝试访问 http://mydomain.com/laravel-tutorial,返回 403。

    尝试访问 http://mydomain.com/laravel-tutorial/public,输出 No input file specified.

  • fationyyk
    1周前

    看看文件目录权限,是不是没有访问权限,感觉summer的配置应该没有问题。

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter