ispCP - Board - Support
rewrite to *.php carring out the whole php file instead of executing it - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega Support Area (/forum-30.html)
+--- Forum: Usage (/forum-34.html)
+--- Thread: rewrite to *.php carring out the whole php file instead of executing it (/thread-6154.html)



rewrite to *.php carring out the whole php file instead of executing it - iRaS - 03-23-2009 12:14 AM

i had a index.php that starts my portal system and a .htaccess file that rewrites all access to the site not matches file or directory to index.php:
Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule [a-z]{2,2}.*$ index.php

(it has to beginn with a 2 letter language flag e. g. de)

but i only got the index.php to download. the index.php file should run through php-parser...

this is the way i did it all the times (also on my server running vhcs2). it have to work.

also ForceType? application/x-httpd-php does not work.

i think this is a problem of fastcgi. im using fcgid - formerly i used apache2-mod-php...

is there a configuration possibility for apache with fcgid or how to do this logic with fcgid?

anyways: i think using rewriterules to point a non .php url to a .php file is not that unusal...

Quote:Not an ispCP Bug. Please use the forum.
of course it is an bug of ispcp if i had to change the httpd.conf to handle php files with fcgid. and apache have to handle all .php files with fcgid whatever the url is. if the returned file is a application/x-httpd-php it has to go through php-parser.

I added this line to /etc/ispcp/apache/parts/dmn_php2_entry.tpl
AddHandler fcgid-script .php

(also i added this line to all vhosts instead of creating the config file new and restarted apache)

now all .php files will be parsed by php. also if they are accessed by a rewrite rule...
now i had a site where i used the ForceType directive to tell apache that this file have to be parsed with php:

Code:
<File de>
  ForceType application/x-httd-php
</File>

but with the fcgid handler only .php files - and not all files of type application/x-httpd-php - will be parsed by php. so i have to use the SetHandler directive to tell apache that this file have to be parsed with php:

Code:
<File de>
  SetHandler fcgid-script
</File>

but this only returns an internal server error (500). the directory /var/www/virtual/[...]/htdocs has AllowOverride all so that this could not be the problem.

any ideas?

my suexec.log shows this two lines with every new access:
Code:
[2009-03-22 15:25:29]: uid: (2001/vu2001) gid: (2001/vu2001) cmd: de
[2009-03-22 15:25:29]: (8)Exec format error: exec failed (de)



RE: rewrite to *.php carring out the whole php file instead of executing it - joximu - 03-23-2009 06:08 PM

obviously fcgid cannot find the command "de".

I did not have any problems with rewriting - it has to do with fcgi (or fastcgi) - did you already try fastcgi instead?

Please change your post so that line feeds are shown (put
PHP Code:
[code]...[/code
around it).

/J


RE: rewrite to *.php carring out the whole php file instead of executing it - iRaS - 03-23-2009 07:42 PM

(03-23-2009 06:08 PM)joximu Wrote:  obviously fcgid cannot find the command "de".

of course it can not find the command "de". it should run the php5-fcgid-starter not "de". "de" is an php file. i told apache that this is an application/x-httpd-php but without success. fcgid still wants to execute it.

i have searched on the web for fcgid configuration and found that fcgid-php don't support extensionless files. so the customers can't do this on webservices with fcgid or fastcgi (its the same) but on webservices with mod-php they can.

right, this is not a bug of ispCP.. its just not satisfing me. a php newbie normally downloading WAMP and programming his website on his pc. WAMP works with mod-php and they can programm some code that won't work on the server even if he has the same php version...

(03-23-2009 06:08 PM)joximu Wrote:  I did not have any problems with rewriting - it has to do with fcgi (or fastcgi) - did you already try fastcgi instead?

no, i have not yet tried fastcgi instead of fcgid. but it works now with the line
Code:
AddHandler fcgid-script .php

this line should only be added if php is available for this vhost. so it have to be in the template for vhosts (*_php2_entry.tpl).

i don't know why it works for you without this line but on every site i found the entry looks like this:

Code:
[...]
AddHandler fcgid-script .php
FCGIWrapper /usr/bin/php5-fcgi-starter .php
[...]



RE: rewrite to *.php carring out the whole php file instead of executing it - joximu - 03-24-2009 09:06 AM

hm

I used your .htaccess directives from above (in a folder "t2") and it seems to work:
when typing .../t2/de or /t2/xx i'm getting the result of .../t2/index.php

I'm using fastcgi - the config is from RC-very old - I updated ispcp very often...

/J


RE: rewrite to *.php carring out the whole php file instead of executing it - iRaS - 03-24-2009 04:35 PM

may be it works with fastcgi - don't know. with fcgid it does not (or maybe just on my server not).

Sorry, but i think it should be repaired if it is not working with fcgid. also if it works with fastcgi. or remove fcgid option in installation progress...

i just don't know why you are telling me it works with fastcgi instead of testing it with fcgid. because fcgid should also work according to documentation.

of course the developers should not have extra work just for one man blaming it don't work. thats why you should test it with the same components i used to check if its a bug or misconfiguration on my side.


RE: rewrite to *.php carring out the whole php file instead of executing it - joximu - 03-24-2009 07:09 PM

Hi iRaS
I don't have to much time to make a fresh installation with fcgi - I have some productive servers around with ispcp and fastcgi (a year ago there was only fastcgi). I can do some tests like the above and give you the chance to evaluate if it's maybe easier to migrate to fastcgi. But I also can ignore this thread totally if you wish.
You could prepare some information how to reproduce the error.
Quote:- .htaccess with rewrite rules (ok - is there)
- an index.php which tells if it's working or not
- some paths/URLs to check and what results are expected
So, there are maybe more people here willing *and able* to help. It's a comunity project.

Cheers
J