PHP system () help - PullRequest
       32

PHP system () help

2 голосов
/ 10 мая 2010

У меня есть этот сценарий оболочки

    #!/bin/sh

#############################################################
# Example startup script for the SecureTrading Xpay4 client #
# Install Xpay4 into /usr/local/xpay4                       #
# To run this script automatically at startup, place the    #
# following line at the end of the bootup script.           #
# eg. for RedHat linux: /etc/rc.d/rc.local                  #
#                                                           #
# /usr/local/xpay4/xpay4.sh                                 #
#############################################################

# Configuration options

# Path to java executable
JAVAPATH=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home

########## Do not alter anything below this line ##########
echo "Starting Xpay4. Please ensure the Xpay4 client is not already running"
$JAVAPATH/java -jar /usr/local/xpay4/Xpay4.jar /usr/local/xpay4/xpay4.ini &

И я пытаюсь запустить его,

system("/x/sh/shell.sh");

Я делаю это, когда пользователь переходит на определенную страницу на моем сайте, однако я получаю только белый пустой экран, есть ли способ проверки на ошибку с помощью system (), в настоящее время я использую

error_reporting(E_ALL | E_STRCIT)

и то, что применяется для всего сайта

Ответы [ 4 ]

0 голосов
/ 10 мая 2010

Я обнаружил, что когда я получаю пустую страницу, это обычно синтаксическая ошибка. Запустите ваш php-скрипт из командной строки с опцией -l (в нижнем регистре L), например php -l myscript.php. Это проверит код на наличие любых синтаксических ошибок. Затем вы можете продолжить устранение неполадок, если это необходимо.

0 голосов
/ 10 мая 2010

Вы также можете попробовать отобразить вывод из вашего скрипта в случае, если есть какая-то проблема с вызовом его с php:

system("/x/sh/shell.sh", $output); echo $output;

Надеюсь, это даст вам более интересный вывод.

0 голосов
/ 10 мая 2010

может быть

chmod +x /x/sh/shell.sh

и попробуйте

var_dump(system("/x/sh/shell.sh"));

system () возвращает false при ошибке

0 голосов
/ 10 мая 2010

Включен ли безопасный режим? Как руководство говорит:

Когда включен безопасный режим, вы можете запускать файлы только в пределах safe_mode_exec_dir. По практическим соображениям в настоящее время запрещено иметь .. компоненты в пути к исполняемому файлу.

Вы можете проверить safe_mode с помощью этого скрипта:

<?php
    $safe = ini_get("safe_mode");
    var_dump($safe);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...