php + sh
Добавлено: 2010-07-18 2:42:45
Запускаю php скриптом bash скрипт, который создает файл с виртуалхостом для апача
При запуске php-скрипт через консоль все нормально отрабатывает.
Проблема в том что при запуске через браузер файл с виртуалхостом не создается. Также ничего не пишет в $LOG при проверке существования файла.
mkdir -p при это отрабатывает нормально.
Почему?
Код: Выделить всё
<?
exec("sh addvhost.sh test3.ru>/dev/null");
?>Код: Выделить всё
#!/bin/bash
CONF_PATH="/usr/local/etc/apache/conf/"
LOG="/www/error_log"
if [ "$1" ]; then # DOMAIN
DOMAIN=$1
USERNAME=admin
[b]touch $CONF_PATH$DOMAIN.conf &>/dev/null[/b]
if [ -e $CONF_PATH$DOMAIN.conf ]; then
echo "file $DOMAIN.conf exist">>$LOG
else
echo "file $DOMAIN.conf NOT exist">>$LOG
fi
echo \<VirtualHost *:80\>>$CONF_PATH$DOMAIN.conf
echo ServerAdmin webmaster@$DOMAIN>>$CONF_PATH$DOMAIN.conf
echo DocumentRoot \/www\/$USERNAME\/$DOMAIN\/>>$CONF_PATH$DOMAIN.conf
echo DirectoryIndex index.php index.html index.htm>>$CONF_PATH$DOMAIN.conf
echo ServerName $DOMAIN>>$CONF_PATH$DOMAIN.conf
echo ErrorLog \/www\/$USERNAME\/$DOMAIN\/error_log>>$CONF_PATH$DOMAIN.conf
echo TransferLog \/www\/$USERNAME\/$DOMAIN\/access_log>>$CONF_PATH$DOMAIN.conf
echo \<\/VirtualHost\>>>$CONF_PATH$DOMAIN.conf
[b] mkdir -p[/b] /www/$USERNAME/$DOMAIN
echo Create log files #
touch /www/$USERNAME/$DOMAIN/error_log
touch /www/$USERNAME/$DOMAIN/access_log
ls -la /www/$USERNAME/$DOMAIN/error_log
ls -la /www/$USERNAME/$DOMAIN/access_log
echo Domain $DOMAIN added>/www/$USERNAME/$DOMAIN/index.html
chown -R www:www /www/$USERNAME
# Apache restart
/usr/local/etc/rc.d/apache restart # &>/dev/null
else
echo No actual parametrs
fiПроблема в том что при запуске через браузер файл с виртуалхостом не создается. Также ничего не пишет в $LOG при проверке существования файла.
mkdir -p при это отрабатывает нормально.
Почему?
Код: Выделить всё
# ls -la
-rwxr-xr-x 1 root wheel 1475 Jul 17 23:36 addvhost.sh
-rwxrwxrwx 1 root wheel 69 Jul 17 23:33 v.php