Запуск linux сценария оболочки с PHP - PullRequest
0 голосов
/ 17 марта 2020

Я создал сценарий оболочки:

#!/bin/bash
file="/home/upload/ftp/$1.ifc"
if [ -f "$file" ]
then
    echo "Found."
else
    echo "Not found."
fi
IfcConvert --use-element-guids /home/upload/ftp/${1}.ifc /home/upload/ftp/${1}.dae

Когда я go на linux терминал и выполнить его оттуда с

./script.sh drevodomek

все работает нормально .. Я получил "Нашел." сообщение, а также конвертер выполняет

Но когда я создал помощника. php

<?php
if (file_exists("/home/upload/ftp/drevodomek.ifc"))  
{ 
    echo "The file exists"; 
} 
else 
{ 
    echo "The file does not exists"; 
}

$cmd = "./script.sh drevodomek";
$results = shell_exec($cmd);
echo $results
?>

Я получаю ответы:

"Файл существует." от PHP,

«Найдено». из скрипта. sh

IfcConvert: входной файл "/home/upload/ftp/drevodomek.ifc" не существует. из скрипта. sh

Я новичок в linux, кто-нибудь есть идеи, в чем отличие запуска скрипта из терминала и с shell_exe c ()? Спасибо!

1 Ответ

0 голосов
/ 17 марта 2020

Проблема была с правами, похоже, что терминал запускался как root, но php выполнял скрипт как обычный пользователь. Всегда проверяйте свой 777!

...