我有兴趣同时提供 hosted and SaaS version of my application .现在,SOers 建议我 map the URLs to MySQL databases .我能想到的是这样的
- companya.mysoft.com 将拥有以名称 companya* 开头的 MySQL 数据库。即,compana_mydb
- companyb.mysoft.com 将拥有以名称 companyb* 开头的 MySQL 数据库,即 companyb_mydb
- 等等。
这样可以更轻松地创建新公司帐户和进行维护。
现在,是否可以在 Apache 配置文件、MySQL ini 和 PHP ini 文件内部调整所有这些设置? (我正在使用 Apache、MySQL 和 PHP)。最好我不更改我的应用程序。
编辑: MySQL 不支持 user-specified database-specific directories .更改问题以反射(reflect)这一点。
Edit2:有人建议我编辑 PHP 应用程序以检查子域并选择正确的数据库。但这将意味着调整托管代码以满足 SaaS 版本。 所以基本上我们会有两个代码版本,一个用于托管,另一个用于 SaaS,这不是我想要的。如果一切都通过配置文件完成会更好,这样我就只有一个版本的代码。
最佳答案
如果您正确设置了 PHP 应用程序(可能使用某种类型的 MVC 设计模式或框架),您可以在一个地方指定该请求中所有后续 mysql 函数要使用的数据库名称。然后只需检查请求 header 、获取(并验证)公司/数据库名称前缀,然后在 mysql_select_db
函数中使用它即可。
关于php - 将 URL 映射到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/498057/