为现有php项目添加laravel子项目

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

想要对已有的项目做二次开发,又不想在已有项目的基础上继续写,这不仅要熟悉已有代码,还得熟悉对方的业务逻辑。因为基本上是开发新的页面,那何不直接新建一个项目整合到一起呢?
于是就有了标题所述的需求。
对于一个刚接触php一周多的人而言,这是我目前所能想到的解决方案。基于在网上都找不到全面的答案,是不是有更好的替代方案呢?还是说这是常识?(萌新瑟瑟发抖)希望路过的大佬不吝赐教。


一、Apache方案

主要修改两个地方,首先是在虚拟主机的配置文件中,为laravel项目增加一个别名。
在这里插入图片描述
然后是修改主项目下的.htaccess文件,添加如下配置。
在这里插入图片描述
马赛克的部分即上一步中自己设定的路径别名。
代码如下:

Alias /member xxx/xxx/xxx/xxx/public

  <Directory xxx/xxx/xxx/xxx/public>
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
	  DirectoryIndex index.php index.html
  </Directory>

 #.htaccess文件
 <IfModule mod_rewrite.c>
     #Options -MultiViews
     RewriteEngine On
     #重写规则基于别名目录,而不是根目录
     RewriteBase /abc/

     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ /abc/index.php?/$1 [L]
 </IfModule>

二、nginx方案

直接修改nginx的配置文件:
在这里插入图片描述
试了许多种location的配置方式,只有以上是成功跑通的。以下是源码,因为服务器使用的宝塔,所以以下是宝塔上的具体修改内容。

    #PHP-INFO-START  PHP引用配置,可以注释或修改,默认是没有注释的,但要运行laravel,所以要注释的
    #include enable-php-73.conf;
    #PHP-INFO-END
    
    #因为注释掉了include enable-php-73.conf,所以要增加以下两个location,确保nginx 将php文件传递给PHP-FPM处理。
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass  unix:/tmp/php-cgi-73.sock;
    }
    #以下是设置路径别名,使得在主项目下运行laravel子项目
    location /abc {
      alias /www/xxx/xxx/xxx/public;
      try_files $uri $uri/ @abc;
      
      location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass  unix:/tmp/php-cgi-73.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME     /www/xxx/xxx/xxx/public/index.php;
      }
    }
    
    location @abc {
      rewrite /abc/(.*)$ /abc/index.php?/$1 last;
    }


  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值