Попробовал.
Не получается запускать скрипт из проекта. Подробно что делаю.
1. В корне создаю директорию "shared", далее права доступа
Код: Выделить всё
chmod 0755 ./shared
chown www-data:www-data ./shared
2. Файл скрипта "import.sh"
Код: Выделить всё
#! /bin/sh
#===Скрипт: Монтирование каталогов импорта===
SYNC_LOG="/mnt/mylog/import_mpult.log"
# Монтирование файла записи логов
[ -e "$SYNC_LOG" ] || touch $SYNC_LOG
SHARE_S="/mnt/mywww/slift0/shared"
[ -e "$SHARE_S" ] || mkdir -p $SHARE_S
if mount -t cifs -o rw,iocharset=utf8,user=,pass= //192.168.1.21/MPultPro $SHARE_S
then
echo $(date +%Y.%m.%d' '%T)' mount success://192.168.1.20/EXPORT->'$SHARE_S #>> $SYNC_LOG
echo $(date +%Y.%m.%d' '%T)' BEGIN import files FROM '$SHARE_S #>> $SYNC_LOG
else
echo $(date +%Y/%m/%d' '%T)' mount error: '$SHARE_S #>> $SYNC_LOG
fi
#umount -a -t cifs
exit 0
кладу в корень, права доступа и владелец делаю также.
3. Далее в проекте
Код: Выделить всё
$filename=Yii::getPathOfAlias('webroot').'/import.sh';
if (file_exists($filename)) {
$conn=exec($filename,$output);
var_dump($output);
}
Вывод:
array(1) { [0]=> string(57) "2013/12/10 10:38:09 mount error: /mnt/mywww/slift0/shared" }
Что не так?
А вот из терминала под рутом скрипт отрабатывает без проблем.
Правила существуют не только для того, чтобы их нарушать.