簡體   English   中英

PHP腳本在終端中有效,但在瀏覽器中無效

[英]PHP Script works in the terminal but not the browser

我正在嘗試執行exec命令,但遇到了問題。 當我運行以下代碼時,通過瀏覽器運行它不起作用。 但是如果我將$str copy的輸出粘貼到終端中,它就可以正常工作。 是什么原因造成的,我該如何解決? 目前,我正在localhost運行。

$php_location = "/usr/bin/php";
$data = str_replace("\"", "\\\"", json_encode($_POST));
$cwd = __DIR__;

shell_exec($str = "$php_locataion $cwd/phpExcel.php \"$data\" > /home/ryannaddy/Desktop/phpExcel.txt &");

echo $str;

這是shell_exec正在調用的文件:

<?php
set_time_limit(0);
$args = $argv[1];

$data = json_decode(str_replace("\\\"", "\"", $args), true);
echo "hello!";

當您通過瀏覽器運行它時,它會以沒有正確權限的Web服務器用戶身份執行。 在終端中運行它時,它將以您登錄時所使用的任何用戶身份執行。 檢查apache(假設您正在使用apache)用戶對腳本/目錄具有正確的權限。

該問題可能與權限有關。

當您從外殼程序運行某些程序時,它將在您的用戶帳戶下運行。 Web服務器將以不同的方式運行,通常對任何事物的權限都很少。 為Web服務器的帳戶授予適當的權限,或者以其他帳戶運行服務器(不建議!)。

暫無
暫無

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

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