#php #python
#php #python
Вопрос:
Я загрузил файл изображения и скопировал его из временной папки в папку внутри /var/www/. Затем попытался выполнить команду python через php, где команда exec() имеет следующий формат.
exec('python file.py $_FILES["file"]["name"]');
и даже выполнение следующего не работает,
exec('python file.py' $_FILES["file"]["name"]);
На стороне python я пытаюсь прочитать имя файла, выполнить некоторую обработку и сохранить изображение.
source = cv2.imread(sys.argv[1])
#some processing
cv2.imwrite("upload/result.png", resultimage)
Примечание: загруженные изображения отображаются как принадлежащие www-data group после загрузки. Я добавил своего пользователя в группу www-data и также выполнил следующее.
sudo chown -R tilaprimera:www-data upload
sudo chmod -R g s upload
где здесь загружается моя папка, в которой хранятся загруженные изображения. Я также сделал исполняемый файл скрипта python,
sudo chmod x script.py
а также script.py отлично работает нормально, так как
./script.py
Почему скрипт python не выполняется через php?
Ответ №1:
В файле скрипта python изменение каталога было выполнено как
os.chdir('/var/www/upload')
и на стороне php я указал полный путь для запуска скрипта python
exec('python /var/www/upload/script.py ' . $_FILES["file"]["name"]);
Таким образом, проблема была решена.