PHP y Apache · 3 min read · Jan 01, 2026

Usando PHP5-FPM Con Apache2 En OpenSUSE 12.1 - Página 2

6 Configurando Apache

Para hacer que Apache funcione con PHP-FPM, necesitamos la siguiente configuración:

| AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization |

(Para aprender más sobre la directiva FastCgiExternalServer, echa un vistazo a http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer.)

Puedes ponerlo en la configuración global de Apache (así estará habilitado para todos los vhosts), por ejemplo en /etc/apache2/conf.d/mod_fastcgi.conf, o puedes colocarlo en cada vhost que deba usar PHP-FPM. Quiero usar PHP-FPM con todos los vhosts, así que abro /etc/apache2/conf.d/mod_fastcgi.conf…

vi /etc/apache2/conf.d/mod_fastcgi.conf

… y coloco la siguiente sección al final:

| [...] AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization |

El directorio /usr/lib/cgi-bin/ debe existir, así que lo creamos de la siguiente manera:

mkdir /usr/lib/cgi-bin/

Reinicia Apache después:

systemctl restart apache2.service

Ahora crea el siguiente archivo PHP en la raíz del documento /srv/www/htdocs del vhost predeterminado de Apache:

vi /srv/www/htdocs/info.php

| |

Ahora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.0.100/info.php):

Como ves, PHP5 está funcionando, y está funcionando a través de FPM/FastCGI, como se muestra en la línea de API del servidor. Si desplazas hacia abajo, verás todos los módulos que ya están habilitados en PHP5. MySQL no está listado allí, lo que significa que aún no tenemos soporte para MySQL en PHP5.

7 Obteniendo Soporte para MySQL En PHP5

Para obtener soporte para MySQL en PHP, podemos instalar el paquete php5-mysql. Es una buena idea instalar algunos otros módulos de PHP5 también, ya que podrías necesitarlos para tus aplicaciones:

yast2 -i php5-mysql php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm

Ahora recarga PHP-FPM:

systemctl reload php-fpm.service

Ahora recarga http://192.168.0.100/info.php en tu navegador y desplázate hacia abajo a la sección de módulos nuevamente. Ahora deberías encontrar muchos nuevos módulos allí, incluido el módulo de MySQL:

8 phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puedes gestionar tus bases de datos MySQL.

phpMyAdmin se puede instalar de la siguiente manera:

yast2 -i phpMyAdmin

Para asegurarnos de que podemos acceder a phpMyAdmin desde todos los sitios web creados a través de ISPConfig más adelante usando /phpmyadmin (por ejemplo, http://www.example.com/phpmyadmin) y /phpMyAdmin (por ejemplo, http://www.example.com/phpMyAdmin), abre /etc/apache2/conf.d/phpMyAdmin.conf…

vi /etc/apache2/conf.d/phpMyAdmin.conf

… y agrega los siguientes dos alias justo al principio:

| Alias /phpMyAdmin /srv/www/htdocs/phpMyAdmin Alias /phpmyadmin /srv/www/htdocs/phpMyAdmin [...] |

Reinicia Apache y recarga PHP-FPM:

systemctl restart apache2.service  
systemctl reload php-fpm.service

Después, puedes acceder a phpMyAdmin en http://192.168.0.100/phpMyAdmin/:

9 Haciendo que PHP-FPM Use un Socket Unix

Por defecto, PHP-FPM está escuchando en el puerto 9000 en 127.0.0.1. También es posible hacer que PHP-FPM use un socket Unix, lo que evita la sobrecarga de TCP. Para hacer esto, abre /etc/php5/fpm/php-fpm.conf…

vi /etc/php5/fpm/php-fpm.conf

… y haz que la línea listen se vea como sigue:

| [...] ;listen = 127.0.0.1:9000 listen = /tmp/php5-fpm.sock [...] |

También establece el propietario, grupo y permisos del socket de la siguiente manera:

| [...] ; Set permissions for unix socket, if one is used. In Linux, read/write ; permissions must be set in order to allow connections from a web server. Many ; BSD-derived systems allow connections regardless of permissions. ; Default Values: user and group are set as the running user ; mode is set to 0666 listen.owner = nobody listen.group = nobody listen.mode = 0666 [...] |

Luego recarga PHP-FPM:

systemctl reload php-fpm.service

A continuación, revisa tu configuración de Apache y todos tus vhosts y cambia la línea FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization a FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization, por ejemplo, así:

vi /etc/apache2/conf.d/mod_fastcgi.conf

| [...] AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization |

Finalmente, recarga Apache:

systemctl reload apache2.service

10 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.