Получение PHP для запуска скрипта Python

Я пытаюсь запустить программу Python с помощью PHP. Вот код

$command = '/usr/local/bin/python script.py file'; $temp = exec($command, $output); 

Это работает через командную строку, но не во время ее запуска через браузер. Я использую Apache, поэтому, возможно, ему нужны правильные привилегии? Я довольно новичок в Linux и понятия не имею, как это сделать.

Любая помощь будет оценена!

Изменить 1:

Пытался использовать proc_open но ничего не происходит. Я дал полный путь к скрипту. Сделал скрипт исполняемым, но не повезло. Любые другие вещи, которые я могу попробовать на сервере? (Это CentOS 5)

Solutions Collecting From Web of "Получение PHP для запуска скрипта Python"

Вам необходимо передать полный путь к скрипту, и вам также необходимо убедиться, что сценарий читается пользователем, работающим на веб-сервере (что означает, что каждый каталог в пути должен быть + x для пользователя сети).

Понял, что случилось:

  1. Домен был настроен как виртуальный хост, и включен режим safe_mode PHP. proc_open, exec, system, passthru и т. д. не работают под safe_mode.

  2. Поместите скрипт в каталог, доступный для vhost. Apache не смог получить доступ к каталогам вне корня документа vhost.

Спасибо за помощь!

Несколько контрольно-пропускных пунктов

  • script.py должен пройти полный путь, например, /home/abhinav/script.py
  • script.py должен быть исполняемым, chmod +x script.py

Чтобы получить помощника CodeIgniter для запуска скрипта python, мне пришлось поставить #! / Usr / bin / python в первую строку моего сценария python и НЕ вызывать python из exec.

+1 для выполнения chmod + x

Мой помощник выглядит так:

 <?php function scrape($site, $key, $user_id) { $cmd = str_replace('system/','',BASEPATH).APPPATH."python/spider.py -u $site -k $key -i $user_id"; $resp = exec($cmd, $out); return $out; } ?>