簡體   English   中英

無法從PHP運行Python腳本並將打印輸出到瀏覽器

[英]Unable to run Python Script from PHP and print output to browser

我見過很多其他人遇到類似的問題,他們無法從PHP運行Python腳本。 我遇到的情況也一樣,但是我嘗試了人們推薦的所有解決方案,但還是沒有運氣。 我也有全新的系統安裝,並且使腳本盡可能簡單。 無論我做什么,shell_exec()都會返回NULL。

所以這是如何復制我的問題:

  1. 在Amazon AWS上啟動t2.micro EC2服務器
  2. 將其配置為Web服務器( 此處說明
  3. 使用以下代碼將index.php文件上傳到/ var / www / html:

<?php 
$command = escapeshellcmd('sudo /usr/bin/python '.__DIR__.'/script.py');
$output = shell_exec($command);
exit(var_dump($output));
  1. 使用以下代碼將script.py文件上傳到同一目錄:

#!/usr/bin/python

print('Hello!')
  1. 轉到AWS公共URL。 您將獲得的響應為“ NULL”

因此,為嘗試解決此問題,我還將.py文件的用戶組更改為“ apache”,並在.py文件上運行了chmod + x。 我確認ec2-user和apache在sudo組中。 還是沒有運氣! 所以我沒有嘗試過什么? 我缺少什么,或者在哪里可以找到錯誤日志?

使用文件常量__FILE__來確定pyhton腳本的路徑僅在將dirname函數應用於該路徑的情況下才有效-否則,您會得到類似/var/www/html/script.php/script.py ,但是您實際上想要僅/var/www/html/script.py

有兩種簡單的解決方案。 使用dirname或直接使用__DIR__常量。

$command = escapeshellcmd('sudo /usr/bin/python ' . __DIR__ . '/script.py');

要么

$command = escapeshellcmd('sudo /usr/bin/python ' . dirname(__FILE__) . '/script.py');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM