Alvin Mahmudov
Alvin Mahmudov

Reputation: 103

IBM HTTP Server (Apache2) error

I have configured IBM HTTP Server as follow:

<IfModule mod_fastcgi.c> 
Options Indexes MultiViews ExecCGI 
FastCGIServer "c:/php7.1/php-cgi.exe"
SetHandler fastcgi-script
</IfModule>

<Directory "C:/IBM/HTTPServer85/htdocs/public">


AddHandler fastcgi-script .php
    Options FollowSymLinks Indexes MultiViews ExecCGI  

    AllowOverride None
    Order allow,deny
    Allow from all

</Directory>

I get the following errors:

[Mon Jan 29 12:17:22 2018] [notice] Child 8328: Starting 600 worker threads.
[Mon Jan 29 12:17:22 2018] [notice] FastCGI: process manager initialized
[Mon Jan 29 12:17:22 2018] [warn] FastCGI: server "C:/php7.1/php-cgi.exe" started (pid 4636)
[Mon Jan 29 12:17:22 2018] [notice] Child 8328: Listening on port 443.
[Mon Jan 29 12:17:22 2018] [notice] Child 8328: Listening on port 8443.
[Mon Jan 29 12:17:24 2018] [error] [client 192.168.107.169] (OS 2)The system cannot find the file specified.  : FastCGI: stat() of "C:/IBM/HTTPServer85/htdocs/public/login/" failed
[Mon Jan 29 12:17:24 2018] [crit] (OS 193)%1 is not a valid Win32 application.  : FastCGI: can't start (dynamic) server "C:/IBM/HTTPServer85/htdocs/error/500/index.php": spawn_fs_process() failed
[Mon Jan 29 12:17:24 2018] [crit] [Mon Jan 29 12:17:24 2018] file G:\\blddir\\IHS85\\apache\\modules\\fastcgi\\fcgi_pm.c, line 1787, assertion "s->procs[i].pid < 0" failed

What is wrong with my http.conf?

Upvotes: 0

Views: 183

Answers (1)

covener
covener

Reputation: 17886

It looks like you have a hybrid/partial config of multiple ways to configure fastcgi.

In the era of mod_fastcgi (IHS 8.5.5 and earlier), you'd typically see the "Action" directive here which results in a request for foo.php to be passed to the PHP interpreter as an argument.

Since you don't have action, and your SetHandler does not limit to any particular extension, mod_fastcgi tries to invoke your php script directly as an executable. On Windows, this association of what intepreter to use is the global one of the OS.

If you stick with mod_fastcgi, I'd suggest using the boilerplate examples with Action you see everywhere. But there's no reason to torture yourself with this when even IHS 9 has mod_proxy_fcgi and you could instead configure that and php-fpm instead.

Upvotes: 1

Related Questions