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

问答 6091 ⋅ 于 6个月前 ⋅ 最后回复由 fationyyk 6个月前 ⋅ 1105 阅读

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

本文章首发在 Laravel China 社区
成为第一个点赞的人吧 :bowtie:
回复数量: 6
  • overtrue MOD https://github.com/overtrue
    6个月前

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

  • 6091
    6个月前

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

  • overtrue MOD https://github.com/overtrue
    6个月前

    @6091 那很为难了

  • Summer MOD A Life-long learner. 1
    6个月前
    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
    6个月前

    @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
    6个月前

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

暂无评论~~
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 100 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档