apache / php多个用户映射到多个版本的应用程序

时间:2015-01-05 15:13:14

标签: php mysql apache .htaccess

(更新文件结构)

我遇到了这种情况:

  • 具有多个用户的一般数据库(unique_name,database_name,user,password,version)
  • 包含不同版本应用的发布文件夹。 (发布/版本/...)
  • 每个用户都有自己的数据库,从中可以在常规数据库中找到信息。

如果用户导航到“http://www.app.com/unique_name/”,我希望服务器:

  • 从通用数据库加载正确的用户信息
  • 加载正确版本的应用(以及正确的资源)
  • 在应用中使用正确的用户数据库。

用户只能在其浏览器中看到“http://www.app.com/unique_name/”,并且会对“http://www.app.com/unique_name/api/ ...”进行API调用。

文件结构:

/
  data/
    unique_name/   (files for unique_name)
    unique_name2/  (files for unique_name2)
    ...
  releases/
    v1.5/
      index.php
      api/
    v2.0/
      index.php
      api/

使用apache和php解决这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

你的问题需要你身边的更多详细信息,但我能理解的是,在这种情况下,你必须对项目结构非常具有决定性,

让网址看起来像 - > www.app.com/index.php?/unique_name

  1. 创建一个处理所有请求(登陆)的bootstrap文件并将unique_name作为参数传递,你可以使用.htaccess文件

  2. 解析url并获取第一个段,根据参数和缓存从常规数据库中获取数据库和版本详细信息,或将其存储在会话(用户数据+版本文件夹映射)中。

  3. 使用php加载正确版本的文件系统(可能需要编写路由器类)

  4. www.app.com/api/index.php?/unique_name


    src\
        api\
            index.php
        releases\
             xxx.xxx\
             xxx.xxx\
    
        index.php
    

    就api代码而言,我建议将所有与api相关的代码放在最顶层。 你需要编写一些路由器(mapper)来制作资产或文件的绝对路径,可以用来加载。