今天重新弄了下自助建站的虚拟主机管理程序,服务器ubuntu 10.04 server 64位,安装apache+php+mysql
写了个脚本,给php调用,在新建用户账号、修改或绑定域名时起执行的,运用了apache 的reload,添加虚拟主机免重启方案!
然后就是用visudo给apache的用户www-data授权,允许用root身份执行这个脚本及/etc/init.d/apache2 二条命令。
这样web就可以执行新建及修改虚拟主机的操作了,但是目前还是不太安全的,www-data有关闭和启动apache的权限,下次找个时间,重新写个apache2的reload专用脚本。不使用/etc/init.d/apache2脚本。!
Ruby代码
- #!/bin/sh
- FILENAME=/etc/apache2/sites-enabled/$1
- if [ $1 = "diyweb" ] ; then
- echo ‘error ,diyweb is system user!’;
- elif [ $1 = ‘000-default’ ] ; then
- echo ‘error ,000-default is sysytem user’;
- else
- if [ -f $FILENAME ]; then
- echo ‘Del old file’;
- rm -rf $FILENAME
- echo ‘Update user’
- else
- echo ‘Add user’
- fi
- echo "<VirtualHost *:80>\nServerName $1.ye55.net \nServerAlias $1.armos.cn $2 \nDocumentRoot \"/home/web/diyweb/company/$1\"\n</VirtualHost>" >> $FILENAME
- sed ‘s/@/ /g’ $FILENAME -i
- echo ‘Success’
- /etc/init.d/apache2 reload
- fi