php + sh

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Ly
рядовой
Сообщения: 17
Зарегистрирован: 2010-07-05 20:31:27

php + sh

Непрочитанное сообщение Ly » 2010-07-18 2:42:45

Запускаю php скриптом bash скрипт, который создает файл с виртуалхостом для апача

Код: Выделить всё

<?
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
При запуске php-скрипт через консоль все нормально отрабатывает.
Проблема в том что при запуске через браузер файл с виртуалхостом не создается. Также ничего не пишет в $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

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Ly
рядовой
Сообщения: 17
Зарегистрирован: 2010-07-05 20:31:27

Re: php + sh

Непрочитанное сообщение Ly » 2010-07-18 12:10:34

Отставить! Прав на запись в диру с конфигами не хватало :)