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

Usando PHP5-FPM Com Apache2 No OpenSUSE 12.1 - Página 2

6 Configurando o Apache

Para fazer o Apache funcionar com PHP-FPM, precisamos da seguinte configuração:

| 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 saber mais sobre a diretiva FastCgiExternalServer, dê uma olhada em http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer.)

Você pode colocá-la na configuração global do Apache (então estará habilitada para todos os vhosts), por exemplo em /etc/apache2/conf.d/mod_fastcgi.conf, ou pode colocá-la em cada vhost que deve usar PHP-FPM. Eu quero usar PHP-FPM com todos os vhosts, então abro /etc/apache2/conf.d/mod_fastcgi.conf…

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

… e coloco a seguinte seção no 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 |

O diretório /usr/lib/cgi-bin/ deve existir, então o criamos da seguinte forma:

mkdir /usr/lib/cgi-bin/

Reinicie o Apache em seguida:

systemctl restart apache2.service

Agora crie o seguinte arquivo PHP na raiz do documento /srv/www/htdocs do vhost padrão do Apache:

vi /srv/www/htdocs/info.php

| |

Agora chamamos esse arquivo em um navegador (por exemplo, http://192.168.0.100/info.php):

Como você pode ver, o PHP5 está funcionando, e está funcionando através do FPM/FastCGI, como mostrado na linha Server API. Se você rolar mais para baixo, verá todos os módulos que já estão habilitados no PHP5. O MySQL não está listado lá, o que significa que ainda não temos suporte ao MySQL no PHP5.

7 Obtendo Suporte ao MySQL No PHP5

Para obter suporte ao MySQL no PHP, podemos instalar o pacote php5-mysql. É uma boa ideia instalar alguns outros módulos do PHP5 também, pois você pode precisar deles para suas aplicações:

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

Agora recarregue o PHP-FPM:

systemctl reload php-fpm.service

Agora recarregue http://192.168.0.100/info.php em seu navegador e role para baixo até a seção de módulos novamente. Você deve agora encontrar muitos novos módulos lá, incluindo o módulo do MySQL:

8 phpMyAdmin

phpMyAdmin é uma interface web através da qual você pode gerenciar seus bancos de dados MySQL.

phpMyAdmin pode ser instalado da seguinte forma:

yast2 -i phpMyAdmin

Para garantir que possamos acessar o phpMyAdmin de todos os sites criados através do ISPConfig mais tarde usando /phpmyadmin (por exemplo, http://www.example.com/phpmyadmin) e /phpMyAdmin (por exemplo, http://www.example.com/phpMyAdmin), abra /etc/apache2/conf.d/phpMyAdmin.conf…

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

… e adicione os seguintes dois aliases logo no início:

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

Reinicie o Apache e recarregue o PHP-FPM:

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

Depois, você pode acessar o phpMyAdmin em http://192.168.0.100/phpMyAdmin/:

9 Fazendo o PHP-FPM Usar um Socket Unix

Por padrão, o PHP-FPM está escutando na porta 9000 em 127.0.0.1. Também é possível fazer o PHP-FPM usar um socket Unix, o que evita a sobrecarga do TCP. Para fazer isso, abra /etc/php5/fpm/php-fpm.conf…

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

… e faça a linha listen ficar assim:

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

Além disso, defina o proprietário, grupo e permissões do socket da seguinte forma:

| [...] ; Defina permissões para o socket unix, se um for usado. No Linux, permissões de leitura/escrita ; devem ser definidas para permitir conexões de um servidor web. Muitos ; sistemas derivados do BSD permitem conexões independentemente das permissões. ; Valores Padrão: usuário e grupo são definidos como o usuário em execução ; modo é definido como 0666 listen.owner = nobody listen.group = nobody listen.mode = 0666 [...] |

Então recarregue o PHP-FPM:

systemctl reload php-fpm.service

Em seguida, passe pela sua configuração do Apache e todos os seus vhosts e mude a linha FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization para FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization, por exemplo, assim:

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, recarregue o Apache:

systemctl reload apache2.service

10 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.