簡體   English   中英

在正在運行的php腳本中執行php腳本

[英]Execute a php script within a running php script

我正在嘗試從php文件執行php腳本,但是看來我無法獲取php.exe的正確bin路徑。 據我所知,它什么也沒做。 假設service-oauth.php是一個簡單的回顯。

EDIT3:我使用php-cli而不是php或php bin路徑修復了它,我必須承認我以前曾嘗試過此方法,但是當我嘗試此操作時(我嘗試過的第一件事)似乎還有些關閉。 Keith在“ 無法使用PHP exec執行PHP腳本”中提供的答案,因此最終以重復的:S結尾,感謝評論者的幫助。

EDIT2:我嘗試按照@Dagon的建議直接從服務器控制台調用腳本,並且使用php env變量和bin的php路徑都可以正常工作,它的路徑正確無誤,但是有些東西渴望獲得輸出或使用php exec()函數運行腳本

service-oauth.php

<?php echo "Hello there"; ?>

這是我的腳本:

   $basePath =  plugin_dir_path( __FILE__ ); # Wordpress function, asume it works.
   $fileToExc = $basePath . 'service-oauth.php';
   # PHP_BINDIR: /usr/local/bin
   # PHP_BINARY: /usr/bin/php
   # exec("which php") /usr/bin/php
   $phpPath = exec("which php");
   $output = exec("$phpPath $fileToExc");
   print_r($output);

在stackoverflow上有很多答案,推薦了我在代碼中推薦的這3個選項中的任何一個,但是它們似乎都不起作用,不確定是路徑還是其他東西不起作用。 我已經在本地計算機(Windows)上測試了該腳本,並且該腳本可以正常工作(盡管由於我無法獲取正確的路徑,所以不得不使用硬編碼的路徑到bin),但是我正在生產服務器(Linux)上進行測試),並且無法正常工作。

注意:讓我清楚, 這不是重復的 ,我在這些帖子和其他帖子中嘗試了以下答案,但對我來說不起作用:

如何獲取PHP二進制文件所在的服務器上的路徑

無法使用PHP exec執行PHP腳本

PHP exec運行文件

如何從另一個Shell腳本調用Shell腳本?

從另一個PHP腳本執行一個PHP腳本

我還嘗試在二進制文件(Windows localmachine)的末尾使用.exe,使用php-cli而不是php,並且我已經測試了excec函數,並且該函數有效,但在這種情況下不起作用。 還嘗試在調用腳本中使用shebang。 我可能不知道這很簡單,但是我花了很多時間進行搜索和測試,到目前為止卻一無所獲。 任何幫助表示贊賞。

編輯:

在bin文件夾上使用scandir顯示scandir(“ / usr / bin /”)

Array(
 ...
 [632] => php
 [633] => php-cgi
 [634] => php-cli
 ...
)

使用ini_get('safe_mode')測試了是否處於安全模式,但似乎不起作用。

我使用php-cli而不是php或php bin路徑修復了它,我必須承認我以前曾嘗試過此方法,但是當我嘗試此操作時(我嘗試過的第一件事),似乎還有其他問題。 Keith在“ 無法使用PHP exec執行PHP腳本”中提供的答案,因此最終以重復的:S結尾,感謝評論者的幫助。 –扎根

暫無
暫無

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

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