我正在开发一个带有codeigniter的虚拟主机控制面板。 目前为止这么好。 :)困境:实时创建虚拟主机还是使用crontab?
现在我正在研究创建虚拟主机的解决方案。 我的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
我希望有人有针对此问题一个简单而有效的解决方案。