亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php is_writable 對于可寫掛載總是返回 false

php is_writable 對于可寫掛載總是返回 false

PHP
絕地無雙 2022-12-23 13:43:06
為了將我的應用程序轉換為 laravel,我嘗試創建一個新應用程序。我正在使用網絡掛載來訪問 linux 服務器上的文件。沒有ssh訪問。我的機器是Windows。服務器可作為網絡安裝訪問。在安裝的驅動器上創建 laravel-6 應用程序時出現此錯誤:Generating optimized autoload files> Illuminate\Foundation\ComposerScripts::postAutoloadDump> @php artisan package:discover --ansiIn PackageManifest.php line 179:  The R:\path\to\laravel\bootstrap\cache directory must be present and writable.Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1在我可以讀寫的所有目錄中。經過一些測試后,我發現is_writable對于驅動器上的文件(在 Windows 上)總是返回 false。這很愚蠢,因為我可以在驅動器上創建和修改文件(包括緩存目錄)。我也在 cygwin 中嘗試過它。同樣的結果。phpfileperms方法返回 formatted: 40777。所以我想它應該是可讀可寫的。PHP版本:7.3.9如何配置我的 windows php 環境以將文件視為可寫?
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

當您訪問網絡(smb 或 samba)文件時,這似乎是 php 中一個已知的錯誤。

已經問過類似的問題:is_writable 為 NFS-share 返回 false,即使它對用戶 www-data 是可寫的

閱讀此內容以獲取有關該錯誤的更多信息:https ://bugs.php.net/bug.php?id=68926

不幸的是,這個問題的唯一解決方案(據我所知)是編寫您自己的自定義is_writeable函數,如下所示:

<?php

namespace Same\As\One\You\Use\Them\In;

function is_readable($file)

{

    if(file_exists($file) && is_file($file))

    {

        $f = @fopen($file, 'rb');

        if(fclose($f))

        {

            return true;

        }

    }


    return false;

}


function is_writable($file)

{

    $result = false;

    if(file_exists($file) && is_file($file))

    {

        $f = @fopen($file, 'ab');

        if(fclose($f))

        {

            return true;

        }

    }


    return false;

}

?>


查看完整回答
反對 回復 2022-12-23
  • 1 回答
  • 0 關注
  • 158 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號