PHP: невозможно выполнить сценарий командной строки из Интернета

Я использую EC2 и вошел в систему с ec2-user. Я использую следующий скрипт для выполнения скрипта Python из Apache. ИТ-служба работает из командной строки, но не из Интернета, и вообще не выводит никаких результатов. Код ниже:

<?php

$command = escapeshellcmd('python3 /home/ec2-user/f1/f2/file.py');
$output = shell_exec($command);
echo $output;

?>

Тот же сценарий отлично работает из командной строки

Предположение №1: Обычно (системный) пользователь, который запускает веб-сервер и, таким образом, выполняет PHP в веб-контексте, отличается от пользователя, которого вы используете при подключении к серверу с использованием SSH. В этом случае python3 может быть недоступен в PATH.

feeela 11.04.2018 12:58

Предположение №2: на некоторых веб-серверах (я не знаю об услугах Amazon) некоторые функции PHP, такие как shell_exec, могут быть отключен в php.ini (установка disable_functions) по соображениям безопасности. Также обращайтесь по адресу: «Необходимо отключить опасные функции PHP»

feeela 11.04.2018 13:00

@feeela disable_functions вообще не имеет значения. Я также установил полный путь к Python3, но без вывода

Volatil3 11.04.2018 13:04

Владелец вашего файла Php и пользователь, под которым работает Apache, должны иметь разрешение на запуск скрипта python.

Nadir Latif 12.04.2018 09:39
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
148
1

Ответы 1

Ssh с сервером и выполните эту команду:

which python3

Он покажет вам путь, поэтому обновите свою команду следующим образом:

path/to/python3 /home/ec2-user/f1/f2/file.py

этот python3 /home/ec2-user/f1/f2/file.py работает нормально, когда вы выполняете его через командную строку "? Какой результат?

Danyal Sandeelo 11.04.2018 13:17

да он отлично работает из CLI. это дает желаемый результат. Из Интернета он ничего не выводит.

Volatil3 11.04.2018 13:33

Другие вопросы по теме