Problems when compiling PHP 5.3.8 with fpm and fastcgi (php-cgi)

Written by - 0 comments

Published on - Listed in PHP Linux


I'm currently working on a benchmarking project to compare different web server configurations and PHP integrations. After having tested several Apache2+mod_php configurations, I wanted to do the same with Apache2+fastcgi+php(+fpm) but already at the compilation of PHP it failed. What happened?

According to the PHP configuration documentation, both cli and cgi versions of the php binary should be created at the end of make:

./configure --help | egrep '(cgi|cli)'
  --disable-cli           Disable building CLI version of PHP
  --disable-cgi           Disable building CGI version of PHP

This means I don't need to explicitly configure with something like '--enable-fastcgi' which
1) is mentioned on a lot of websites and
2) doesn't exist anymore (!).
So go figure, cli (php) and cgi (php-cgi) binaries should be created.
Note the word 'should'... because nothing happened.

My goal was to configure PHP with both the cgi and the new fpm binary (called php-fpm) with the following configure syntax:

./configure --prefix=/usr \
--with-libdir=lib64 \
--with-apxs2=/usr/bin/apxs2 \
...
--enable-fpm

But I got the following error message:

configure: error:
+--------------------------------------------------------------------+
|                        *** ATTENTION ***                           |
|                                                                    |
| You've configured multiple SAPIs to be build. You can build only   |
| one SAPI module and CLI binary at the same time.                   |
+--------------------------------------------------------------------+

After reading the bug report PHP #52419, it seems that '--enable-fpm' doesn't work together with '--with-apxs2' so the latter one needs to be removed from the configure command.

Once I did that, configure and make ran without problems. But then the next downer: After a quick check in sapi/cgi, I couldn't find the php-cgi binary - actually it wasn't created at all while the php cli binary (in sapi/cli) was created just fine.
After a lot of testing yesterday night and tonight I finally found out why: The php-cgi binary is not created if PHP is compiled with '--enable-fpm'. As stupid as it sounds but if you want to use PHP as FastCGI module and with the FPM daemon you must compile PHP several times until you get all the binaries you need.

Conclusion:
- php-cgi binary is not created when PHP is compiled with '--enable-fpm'
- '--enable-fpm' doesn't work when PHP is compiled with '--with-apxs2' (configure error)


Add a comment

Show form to leave a comment

Comments (newest first)

No comments yet.

RSS feed

Blog Tags:

  AWS   Android   Ansible   Apache   Apple   Atlassian   BSD   Backup   Bash   Bluecoat   CMS   Chef   Cloud   Coding   Consul   Containers   CouchDB   DB   DNS   Database   Databases   Docker   ELK   Elasticsearch   Filebeat   FreeBSD   Galera   Git   GlusterFS   Grafana   Graphics   HAProxy   HTML   Hacks   Hardware   Icinga   Influx   Internet   Java   KVM   Kibana   Kodi   Kubernetes   LVM   LXC   Linux   Logstash   Mac   Macintosh   Mail   MariaDB   Minio   MongoDB   Monitoring   Multimedia   MySQL   NFS   Nagios   Network   Nginx   OSSEC   OTRS   Office   PGSQL   PHP   Perl   Personal   PostgreSQL   Postgres   PowerDNS   Proxmox   Proxy   Python   Rancher   Rant   Redis   Roundcube   SSL   Samba   Seafile   Security   Shell   SmartOS   Solaris   Surveillance   Systemd   TLS   Tomcat   Ubuntu   Unix   VMWare   VMware   Varnish   Virtualization   Windows   Wireless   Wordpress   Wyse   ZFS   Zoneminder