真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

execphp執(zhí)行不了的解決方法

本文將為大家詳細介紹“exec php執(zhí)行不了的解決方法”,內(nèi)容步驟清晰詳細,細節(jié)處理妥當,而小編每天都會更新不同的知識點,希望這篇“exec php執(zhí)行不了的解決方法”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識吧。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、做網(wǎng)站、分宜網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、分宜網(wǎng)絡(luò)營銷、分宜企業(yè)策劃、分宜品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供分宜建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

php有什么用

php是一個嵌套的縮寫名稱,是英文超級文本預(yù)處理語言,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因為php是開源的,從而使得php經(jīng)久不衰。

exec php執(zhí)行不了的解決辦法:1、修改yii文件首行,直接指明php解釋器;2、修改exec調(diào)用方法,直接指明php解釋器。

php exec 為何執(zhí)行不了?

緣起

有一個定時任務(wù),想在 OSS 后臺管理頁面可以點擊啟動,可是試了幾種方法都不行;無論 system 還是 exec(手工在 shell command line 執(zhí)行沒問題);最初懷疑 Web Server nginx 用戶的權(quán)限問題,后來發(fā)現(xiàn)是環(huán)境變量找不到 php 可執(zhí)行文件(因為 nginx 用戶是受限用戶);

問題定位
exec("/home/app/example/api/app/yii demand/virtual {$id}", $output);
print_r($output);

以上腳本執(zhí)行后僅輸出 Array(),顯然是沒有執(zhí)行到業(yè)務(wù)代碼(業(yè)務(wù)代碼的第一行就有輸出);

// http://oss.example.com/index.php?r=demand/demand-ip/msg&id=1929 點擊后執(zhí)行
exec("/home/app/example/api/app/yii demand/virtual {$id} 2>&1", $output);
print_r($output);

以上腳本執(zhí)行后有錯誤輸出:Array ( [0] => /usr/bin/env: php: No such file or directory );

/usr/bin/env: php 這句話出自 yii 文件的首行 #!/usr/bin/env php,本意是用于指明執(zhí)行 yii 文件的 php 腳本解釋器在哪里;可是錯誤輸出/usr/bin/env: php: No such file or directory 說明找不到 php 在哪里;

解決方案
  • 方案一:修改 yii 文件首行,直接指明 php 解釋器;
    由 #!/usr/bin/env php 修改為#!/usr/local/bin/php,即直接指明 php 解釋器所在位置(在代碼發(fā)布時修改也可以);

  • 方案二:修改 exec 調(diào)用方法,直接指明 php 解釋器

exec("/usr/local/bin/php /home/app/example/api/app/yii demand/virtual {$id} 2>&1", $output);
print_r($output);
  • 注意:在實際執(zhí)行中,exec 命令還有點問題,見下文 “504 錯誤”;

504 錯誤
  • 當 exec 時間執(zhí)行過長時(如超過 60 秒),頁面上會出現(xiàn) 504 錯誤(Gateway Timeout);

  • 需要將標準輸出、標準錯誤重定向,然后就會在 后臺進程執(zhí)行命令,頁面上會輸出處理進程號;

$cmd = '/usr/local/bin/php /home/app/example/yapp/yii demand/finish 2057';
$pid_file = 'msgrepeat.pid';
$exec_cmd = sprintf("%s > /dev/null 2>&1 & echo $! > %s & cat %s", $cmd, $pid_file, $pid_file);
exec($exec_cmd);
關(guān)于 /usr/bin/env(可移植性高?)
  • Why is it better to use “#!/usr/bin/env NAME” instead of “#!/path/to/NAME” as my shebang?

  • How does /usr/bin/env know which program to use?

nginx 用戶

為安全起見,通常設(shè)置 nginx 用戶的 shell 為 /sbin/nologin

定時任務(wù)和 Web 操作的關(guān)系?

定時任務(wù)和 OSS 后臺管理頁面上的點擊操作之間的關(guān)系處理的一直不太好;

  1. yii 框架 console 和 web 的兩種處理方式;
    如何提升 crontab 可測試性的問題;
    如何改善 crontab 使用體驗的問題;
    如何合理復(fù)用 crontab 任務(wù)和 API(Controller/Action)代碼的問題;

  2. 前臺和后臺共享 Controller/Action 的方式;
    或者說多項目之間方便共享代碼庫的問題;

啟示
  • php-fpm does not work exec, system, shell_exec, only CLI;

  • PHP exec() does not run all commands;

如果你能讀到這里,小編希望你對“exec php執(zhí)行不了的解決方法”這一關(guān)鍵問題有了從實踐層面最深刻的體會,具體使用情況還需要大家自己動手實踐使用過才能領(lǐng)會,如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章題目:execphp執(zhí)行不了的解決方法
當前網(wǎng)址:http://weahome.cn/article/giehgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部