我正在开发一个带有 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
我希望有人对这个问题有一个简单但有效的解决方案。