簡體   English   中英

php shell_exec "文件 "/tmp/phpG4jVlp" 不存在。"

[英]Php shell_exec "File "/tmp/phpG4jVlp" does not exist."

我有一個php文件,上傳和處理excel需要11分鍾。

我想在后台使用 shell_exec 執行此操作,但出現這樣的錯誤。

文件“/tmp/phpG4jVlp”不存在。

我正在使用的命令如下。

/www/server/php/74/bin/php -f /background_processes/inventory_excel_upload.php 'eyJmaWxlIjp7Im5hbWUiOiJJbnZlbnRvcnkgMTkuMDcuMjAyMiAxMF8yM181OC54bHN4IiwidHlwZSI6ImFwcGxpY2F0aW9uXC92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIsInRtcF9uYW1lIjoiXC90bXBcL3BocEc0alZscCIsImVycm9yIjowLCJzaXplIjo0MjI4MDJ9fQ=='

參數輸出:

{
    "file":{
        "name":"Inventory 19.07.2022 10_23_58.xlsx",
        "type":"application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        "tmp_name":"\/tmp\/phpG4jVlp ",
        "error":0,"size":422802
     }
}

我已將文件路徑作為參數給出。 還有其他方法嗎?

如果您有自己的 Ubuntu 服務器正在運行,您可能會遇到 php 腳本中的最大文件大小上傳限制,默認設置為 2Mb。 為了改變這一點,我們首先看看實際的尺寸是多少。 在 /var/www(標准 www 目錄)中創建一個名為 info.php 的文件,其內容如下:

<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>

然后通過 localhost/info.php 瀏覽到這個文件(如果需要,用服務器名替換 localhost)並查找行 upload_max_filesize 2M

這將向您顯示實際的最大文件大小。 為了改變它打開一個到你的服務器的ssh連接並編輯文件/etc/php5/apache2/php.ini

須藤納米/etc/php5/apache2/php.ini

使用 Ctrl-W 搜索“upload_max_filesize”並將“2M”更改為“20M”。 使用 Ctrl-O 保存文件並使用 Ctrl-X 退出。 重啟apache服務器

須藤 /etc/init.d/apache2 重啟

實際上這就是問題所在。

到命令結束

/dev/null 2>&1 &

如果我添加它,我的代碼可以正常工作,但該過程不會在后台運行。

如果我不添加它,我會收到錯誤消息。

暫無
暫無

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

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