Cakephp3应用程序子域共享相同的应用程序代码但不同的数据库
我想用CakePHP 3构建多租户web应用程序,就像这样,它也是用CakePHP编写的 每个租户将有单独的子域和单独的数据库,只有应用程序源代码对于所有子域都是相同的。域将有自己的文件夹,如Cakephp3应用程序子域共享相同的应用程序代码但不同的数据库,php,cakephp,cakephp-3.0,multi-tenant,Php,Cakephp,Cakephp 3.0,Multi Tenant,我想用CakePHP 3构建多租户web应用程序,就像这样,它也是用CakePHP编写的 每个租户将有单独的子域和单独的数据库,只有应用程序源代码对于所有子域都是相同的。域将有自己的文件夹,如x.domain.com,y.domain.com映射到文件夹x,y,z 我不想在所有子域中都有重复的应用程序源代码。我希望对所有应用程序重复使用相同的应用程序代码 当请求中的每个子域时,如何使用相同的应用程序代码但不同的数据库?欢迎对任何类型的实现提出任何建议。您必须为此创建一个conf文件 您可以使用下
x.domain.com
,y.domain.com
映射到文件夹x,y,z
我不想在所有子域中都有重复的应用程序源代码。我希望对所有应用程序重复使用相同的应用程序代码
当请求中的每个子域时,如何使用相同的应用程序代码但不同的数据库?欢迎对任何类型的实现提出任何建议。您必须为此创建一个conf文件 您可以使用下面的sh文件自动创建
#!/bin/bash
if [ "x${1}" = "x" ]; then
echo "User is not specified"
exit 1
fi
if [ "x${2}" = "x" ]; then
echo "Domain is not specified"
exit 1
fi
if [ "x${3}" = "x" ]; then
echo "Domain is not specified"
exit 1
fi
/bin/echo ${1}${2} | /bin/egrep -q ';|`|\||>'
if [ $? -eq 0 ]; then
echo "Bad parameter"
exit 1
fi
/bin/cat > /etc/httpd/vhost.d/${1}.${2}.conf <<EOF
<VirtualHost *:80>
DocumentRoot /home/user/www.${2}/htdocs
ServerName ${1}.${2}
ServerAlias ${3}
ServerAdmin adminemail@example.com
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /home/user/www.${2}/htdocs
ServerName ${1}.${2}
ServerAlias ${3}
ServerAdmin adminemail@example.com
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/example.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/example.key
SSLCACertificateFile /etc/httpd/conf/ssl.crt/example.crt
</VirtualHost>
EOF
service httpd restart
echo "Vhost has been added"
exit 0
$real\u domain\u name是服务器别名,如果您想将任何实际域作为该子域的别名。本文可能会对您有所帮助
$subdomain_name = 'xyz';
$domain_name = 'domain.com';
$real_domain_name = 'xyz.domain.com';
exec ("/usr/local/bin/vhost_gen.sh ".$subdomain_name." ".
$domain_name." ".$real_domain_name);