【问题标题】:failed to open stream error message while trying to include phpseclib尝试包含 phpseclib 时无法打开流错误消息
【发布时间】:2012-07-22 02:26:41
【问题描述】:

我正在尝试按照说明安装 phpseclib。

我解压缩了所有内容并在/usr/share/pear 中创建了一个新的phpseclib 文件夹。所以我有以下结构:

/usr/share/pear/phpseclib/
                          Net
                          Crypt
                          File
                          Math

我通过检查get_include_path method 确定了/usr/share/pear 路径。

现在我正在尝试创建一个使用 phpsec 库的页面。

这是我正在玩的 php 页面:

<?php

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include('Net/SSH2.php');

页面爆炸并显示错误消息;

警告:include(Net/SSH2.php):无法打开流:第 4 行的 /var/www/test/sshtest.php 中没有这样的文件或目录。 警告 include(): 在第 4 行的 /var/www/test/sshtest.php 中打开 'Net/SSH2.php' 以包含 (include_path='.:/usr/share/pear:phpseclib') 失败。

/var/www/test 我的页面所在的网络文件夹。任何建议或指示将不胜感激。

【问题讨论】:

    标签: include-path php phpseclib


    【解决方案1】:

    我把代码改成了:

    <?php 
    
    set_include_path(get_include_path() . get_include_path().'/phpseclib');
    include('Net/SSH2.php');
    echo('if you are reading this, phpseclib has been included');
    

    这就解决了问题。

    【讨论】:

      【解决方案2】:

      你是不是忘了在设置路径后加一个斜杠/?

      所以,应该是这样的:

       <?php
                set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib/');
                include('Net/SSH2.php');
            ?> 
      

      <?php
                    set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib' . PATH_SEPARATOR);
                    include('Net/SSH2.php');
                ?> 
      

      【讨论】:

      • phpseclib.sourceforge.net 有安装说明...您会在此页面上看到与我完全相同的代码...
      • 好的。只需尝试大致设置绝对路径。例如,在您的文件夹“test”中创建文件夹“phpseclib”并执行 不要忘记将所有需要的文件放入其中。
      • 我将代码改为: 现在页面可以正常工作了。
      猜你喜欢
      • 2018-09-08
      • 2018-07-29
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多