2016-09-19 3 views
4

Есть ли какое-либо специальное разрешение или настройка для выполнения скрипта python, который создает новый файл или изображение? Это мой код:Выполнять скрипт python с выходом из php

<? 
function py(){ 
    exec('python my_script.py'); 
    echo "ok"; 
} 

py(); 
?> 

И это мой питон скрипт (пример):

#!/usr/bin/python 
import sys 

f = open('out.txt', 'w') 
print >> f, 'thats all' 
f.close() 

Запуск PHP я получаю «ОК» сообщение, но файл не создается. Что я делаю не так?

+0

PHP должен быть выполнен пользователем 'www-user'. Таким образом, скрипт Python будет смотреться от одного и того же пользователя. Имеет ли 'www-user' необходимые разрешения для выполнения скрипта Python и доступа к файловой системе для создания файлов? – albert

+0

Как я могу проверить это? @albert – slash89mf

+0

Я никогда не делал этого, так как я не являюсь пользователем PHP, поэтому все, о чем я говорю, просто основано на мышлении. Сначала вы должны узнать, какой пользователь является владельцем папки и сценария, к которому вы хотите получить доступ. Если это не «www-user», вы можете либо изменить пользователя на «www-user», либо передать нужное имя пользователя команде 'exec', как показано [здесь] (http://stackoverflow.com/questions/6913403/running-command-line-application-from-php-as-specific-user) – albert

ответ

1

Настройка права доступа к файлам и папкам сделал трюк.

enter image description here

В Mac OS: Alt + клик на "+", а затем искать _www и добавьте World Wide Web Server для пользователей, дающих чтение и запись. То же самое для корневой папки.

0

Вам нужно позвонить shell_exec() не exec(), если вы хотите, чтобы иметь возможность перехватывать вывод:

Refernce: PHP Manual

+0

Это больше способ отладки, так что это должен быть комментарий, если я правильно понимаю. – Goose

+0

Мне не нужно записывать вывод, я хочу, чтобы скрипт python выполнял и создавал файлы. Фактически использование shell_exec() не влияет – slash89mf

Смежные вопросы