Unable to install certain PHP programs


#1

Hi,

I was wondering if anyone could help me pin-point what might be causing the problem I am having when trying to install certain PHP programs. In particular, Expression Engine ( http://www.pmachine.com/expressionengine/ ). It should have a very straight-forward install, but the very first step of the process goes wrong.

I am supposed to input the name I have given EE’s ‘system’ directory, and when I do this, I get the error message that it can’t locate the submitted directory. Naturally, I have made sure it is actually there and named what it should be. Also, in the input box, it echoes back what I put in there, adding ‘system_dir=’ so that it says ‘system_dir=’.

I have even had one of the support people for EE trying to install it, with no luck, and another script she tried to install also failed, and the error messages seemed to show similar ‘echoing’ back of the input, for example:

Warning: select_lang_config(./lang/english.inc.phplang_config=english.inc.php): failed to open stream: No such file or directory in /home/sites/westeros.org/www/html/Scripts/e/include/functions.inc.php on line 76

I am very new to php (I pretty much only know how to follow the directions in a script to install it, provided all goes well), so I have no clue what the problem might be. And so far, neither does my host. She has PHP programs installed on other accounts on the server (for example, PHP-Nuke), so we’re both at a loss for why it wouldn’t work on our account. But given that more than one script is failing, it seems to be an error with PHP on the server rather than with the scripts.

If anyone has any ideas where to look for the problem, I’d be very grateful. :)


#2

The error message is what needs to be checked.

Apparently you have a function called select_lang_config() which is passed a parameter ./lang/english.inc.phplang_config=english.inc.php (among other things, it should probably be quoted as well)… Anyway, this function is trying to open a file /home/sites/westeros.org/www/html/Scripts/e/include/functions.inc.php (the actual command, of which can be found on or around line 76 of the page/file that contains the function) The acutual error message is that it cannot open a connection to the specific file /home/sites/westeros.org/www/html/Scripts/e/include/functions.inc.php .


#3

So does it seem like a likely conclusion that PHP isn’t able to access files and folders under my account?

In the first example, with Expression Engine itself, the script is unable to locate a specified folder (which I confirmed was located in its proper place), and the support for EE has verified that nothing is wrong with the build I was attempting to install.

In the second example, which was one of the support people attempting to install something called ‘eskuel’, the install again failed and the error I quoted in my first post was one of those which the support forwarded to me. Again, it looks like PHP is unable to locate a file which had been verified as being present in the appropriate place.

Basically, what I am mainly trying to do is to troubleshoot how PHP works (or not works) on my account rather than troubleshooting the scripts, which seem to install just fine for a lot of other people. The goal is to find something to point my host to so that she knows where to begin looking for the problem.

How would I use stream_get_wrappers to determine registered streams? Place it in a file, upload it and view it in a browser, or?


#4

You need to make sure that the web server has permissions to access the file. Just because you can navigate it’s location on your system does not mean that the webserver can do the same. Typically they run onder different users. For example, on my system (Linux) My webserver runs as user APACHE, where as my user name is paul. If I create a file, It gets a certain set of default permissions, however, the only ones that apply to my webserver (at this point) or those permissions that EVERYONE has. Very often that is None or read only.

You can call the function stream_get_wrappers() which returns an array, however, it’s only for PHP 5 or up

I suspect, that it’s more a permissions issue though.


#5

A permissions issue was the first thing that popped into my head.

However, when I suggested this to my host, she said that PHP runs as the web server, and that if the web server can access the files, PHP should be able to. And I imagine that since I was able to access the install.php file for Expression Engine through my browser, that the webserver can access the files. Or am I misunderstanding how this works?

To illustrate better, the setup is this:

/Scripts/ExpressionEngine/install.php – the install wizard, which I can access and start just fine from my browser. The CHMOD for this file is 644, and the user is westeros (my username).

/Scripts/ExpressionEngine/system/ – the folder which EE wants to know the name of during stage two of the install, and which EE can’t find even though it is in the proper place and named the proper thing. The CHMOD for this folder is 755, and the user is westeros.


#6

ok maybe I am misunderstanding something, but when you say the location is :
/Scripts/ExpressionEngine/system/
That is an ABSOLUTE path but your error message gave the path of:
/home/sites/westeros.org/www/html/Scripts/e/include/

Couple points to note… Again both those paths are absolute, so this might be worth looking at. Should it be absolute or should the first one be
./Scripts/ExpressionEngine/system/ (note the preceeding period)

Next, I see one is looking at include and one is looking at system (the last level of the directory) Is this correct? I am also assuming that you just wrote e in your origianl post as opposed to spelling out ExpressionEngine, however if not… You need to look at that too.


#7

Sorry, my message was confusing.

This error message:

Warning: select_lang_config(./lang/english.inc.phplang_config=english.inc.php): failed to open stream: No such file or directory in /home/sites/westeros.org/www/html/Scripts/e/include/functions.inc.php on line 76

comes from the second script (called eskuel according to the support people, and they put it into a folder named ‘e’) which wouldn’t install. This was the script that the Expression Engine support people tried to install to test something. They quoted that back to me to confirm that Expression Engine wasn’t the only script to mess up.

However, this path:

/Scripts/ExpressionEngine/system/ (or to give the full path, home/sites/westeros.org/www/html/Scripts/ExpressionEngine/system/)

is the location of the ‘system’ folder that the Expression Engine couldn’t locate when I tried to install that.

So I have had two separate scripts mess up in what I consider similar ways. One can’t find a folder (Expression Engine) and the other (eskuel) can’t seem to find a specified file. Solving how to install the eskuel script isn’t really of any interest to me, but I brought up the error messages from this script since Expression Engine itself uses a web-based installation wizard which doesn’t produce PHP error messages, only the error messages built into the script.

Sorry for the confusion. :)


#8

It seems the problem was caused by this PHP bug:

http://bugs.php.net/bug.php?id=18648

In case someone else runs into the same. :)