找不到openshift php文件(localhost中的语法相同)

我使用的openshift是一个带有nginx + php 5.5.8 + phalcon 1.2.4的DIY catridge </ p>

我的目录结构如下所示</ p>

  website 
public
index.php
app
config
config.php

loader.php
routes.php
services.php
</ code> </ pre>

问题出在我的 public / index.php </ code> i中 执行</ p>

 尝试{
/ **
*读取配置
  • /
    if(file_exists(__ DIR__。“/ ... / app / config / config) .php“))
    {
    $ config = include DIR。 “/../app/config/config.php”;

    }其他{
    抛出新的异常(“无法包含'config.php'”);
    }
    </ code> </ pre>

    它失败了</ p>

     无法包含'config.php'
    #0 {main}
    </ code> </ pre>

    这与openshift有关吗? 因为我在我的localhost中做的正确(虽然它是在localhost的apache中)脚本应该加载config.php </ p>

    (从is_file更改为file_exist,因为它更有意义) </ p>
    </ div>

展开原文

原文

The openshift I'm using is a DIY catridge with nginx + php 5.5.8 + phalcon 1.2.4

I have a directory structure as below

website
    public
       index.php
    app
       config
           config.php
           loader.php
           routes.php
           services.php

the problem is in my public/index.php i do

try {
    /**
     * Read the configuration
     */
    if (file_exists(__DIR__ . "/../app/config/config.php"))
    {
        $config = include __DIR__ . "/../app/config/config.php"; 
    }else{
        throw new Exception("Failed to include 'config.php'");
    }

and it failed

Failed to include 'config.php'
#0 {main}

Is this something to do with openshift? cause I'm doing it correct in my localhost(although it is in apache for localhost) The script should load the config.php

(changed from is_file to file_exist as it make more sense)

douxinghuai3150
douxinghuai3150 好吧我想我用gitbashsshed进入openshift后发现了问题,config文件夹确实存在但是里面没有config.php。奇怪,因为我在我当地的回购中。
6 年多之前 回复
doudula1974
doudula1974 然而,你可以做一件事,那就是由一些SSH客户端自己探索整个目录结构。我使用winpcapforwindows7“。工作很棒。但是你需要一个公共私钥集
6 年多之前 回复
douxiongye5779
douxiongye5779 toolong
6 年多之前 回复
dq201401
dq201401 toolong
6 年多之前 回复
douchujian8124
douchujian8124 toolong
6 年多之前 回复
dongzhuo3059
dongzhuo3059 如果我们回应它,DIR会返回什么。
6 年多之前 回复
dqbhdsec59405
dqbhdsec59405 而不是尝试捕获让实际的异常泡沫。例如,将file_exists()返回的值存储在变量中,然后回显该值。会给你一个更好的主意。
6 年多之前 回复
duankuai6991
duankuai6991 它返回错误。只需git推送它进行双重确认
6 年多之前 回复
dongyan4157
dongyan4157 toolong
6 年多之前 回复
doz59484
doz59484 更改为文件存在更有意义。问题是文件确实存在,对我来说没有意义。
6 年多之前 回复
douhui1957
douhui1957 尝试类似file_exists(DIR。“/../app/config/config.php);如果它返回true,我们可以优化语法,否则我们将尝试修复的目录结构可能存在问题
6 年多之前 回复

3个回答



openshift不会拒绝使用config.php文件名,请确保已将其添加到git存储库中并且它是 任何.gitignore文件都不会忽略。</ p>
</ div>

展开原文

原文

openshift does not deny the usage of the config.php file name, make sure you have added it into your git repository and that it is not ignored by any .gitignore files.



您确定文件存在吗? 另外,检查父目录是否有“+ x”。 引自PHP手册( http://php.net/is_file ):</ p>

< blockquote>

请注意,如果父目录没有为您设置

  • x,则is_file()将返回false; 这是有道理的,但其他函数,如readdir()似乎没有这个限制。 最终的结果是你可以遍历目录的文件,但是is_file()总是会失败。</ p> </ blockquote> </ div>

展开原文

原文

Are you sure the file exists? Also, check out if the parent directory has "+x". Quoted from PHP manual (http://php.net/is_file):

Note that is_file() returns false if the parent directory doesn't have +x set for you; this make sense, but other functions such as readdir() don't seem to have this limitation. The end result is that you can loop through a directory's files but is_file() will always fail.

dongyan7172
dongyan7172 已经尝试过文件但是oso失败了
6 年多之前 回复
duanlisha2335
duanlisha2335 在这种情况下也可以使用file_exists()。
6 年多之前 回复

Just found the problem that althought my local repo has above file but not config.php .

Probability 1: Probably because openshift deny the usage of config.php file name

Probability 2: Something bug happened when doing git push

Now dueling with another bug however this bug has been settled

duandgfh0506
duandgfh0506 如果这是正确的话,我把这个评论转到下面的答案。
6 年多之前 回复
dtiopy6088
dtiopy6088 我的gitignore文件是真的!
6 年多之前 回复
douhao1956
douhao1956 too long
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问