【发布时间】:2012-12-19 17:30:42
【问题描述】:
我正在使用 codeigniter 开发一个虚拟主机托管控制面板。 到目前为止,一切都很好。 :)
现在我正在研究创建虚拟主机的解决方案。 我创建虚拟主机的 shell 脚本有效,所以我的第一个想法是在 cronjob 中触发该脚本,假设每 15 分钟一次。应该可以的。
但不是每 15 分钟就不会创建一个新的虚拟主机。 所以,我认为每 15 分钟重新加载一次 apache 配置就太过分了。
顺便说一下,在 codeigniter 端,它只是使用新虚拟主机所属的值创建一个简单的文本文件。
那么,有没有实时保存的解决方案? 我的猜测是,这是实时使用 shell_exec() 的唯一方法,但这不是一种保存方法。
我必须说我的 shell scipting 非常新手,所以也许有一种方法可以触发 if 或 else 语句来选择创建虚拟主机或什么都不做。 但我该怎么做呢?那我就不需要实时了。
这是我的 shell 脚本:
#!/bin/bash
vhroot='/etc/apache2/sites-available/'
NEW_DOMAINS="/home/domain.txt"
cat ${NEW_DOMAINS} | \
while read domain user email
do
echo "<VirtualHost *:80>
ServerName "$domain"
ServerAlias www."$domain"
ServerAdmin "$email"
DocumentRoot /home/"$user"/domains/"$domain"/public_html
</VirtualHost>" > $vhroot/$domain
#mkdir /home/$user/domains/domain
#mkdir /home/$user/domains/$domain/public_html
#chown -R $user.$user /home/$user/domains/$domain
echo "111.21.111.111 $domain" >> host.txt
#a2ensite $hostname
done
echo "" > /home/domain.txt
# /etc/init.d/apache2 reload
我希望有人对这个问题有一个简单但有效的解决方案。
【问题讨论】:
标签: php apache bash shell virtual-hosts