Есть ли альтернативы shell_exec и proc_open в PHP?

Похоже, я не могу использовать shell_exec или proc_open на моем общем сервере.

Сообщение, которое я получаю, когда пытаюсь его использовать:

Предупреждение: shell_exec () отключен из соображений безопасности в /home/georgee/public_html/admin/email.php в строке 4

Существуют ли альтернативы этим функциям?

Я предполагаю, что вы хотите использовать это для асинхронной обработки, например, для отправки eMails в отдельный процесс (отсюда и ошибка в email.php). Если да, проверьте, разрешено ли cURL . Вы можете запускать свои скрипты через HTTP-запрос, не дожидаясь ответа.

Дальнейшее чтение:

  • Асинхронные / параллельные HTTP-запросы с использованием PHP multi_curl
  • Как использовать curl_multi () без блокировки
  • Как сделать асинхронный запрос GET в PHP?

Если cURL недоступен, попробуйте использовать с неблокирующими потоками:

Для дополнительной безопасности рассмотрите использование самоопределяемого ключа API, поэтому URL-адрес отправки электронной почты не может быть запущен без разрешения. Передайте это как GET или POST. Вы также можете проверить, был ли запрос отправлен с того же сервера.

Единственная альтернатива – не использовать общий хостинг. Они не хотят, чтобы вы делали это по причине.

Попробуйте использовать оператор backtick

Кажется, что эти ответы говорят о том, что вы мало что можете сделать.

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