Servidores-Apache

Esta seção contém notas e dicas específicas para instalações do PHP em Apache , tanto para versões Unix quanto para Windows .

Detalhes ao instalar o PHP com Apache no Unix

Você pode selecionar argumentos para adicionar ao configure na linha 10 abaixo através da Lista completa de opções do configure . Os números de versões foram omitidos aqui , para assegurar que as instruções não estejam incorretas . Você deverá trocar o ' xxx ' aqui com os valores corretos dos seus arquivos .

Exemplo 3-5 . Instruções de Instalação ( Apache Versão de Módulo Compartilhado ) para PHP 4

 
1

 
.

 
gunzip

 
apache_xxx.tar.gz

 
2

 
.

 
tar

 
-xvf

 
apache_xxx.tar

 
3

 
.

 
gunzip

 
php-xxx.tar.gz

 
4

 
.

 
tar

 
-xvf

 
php-xxx.tar

 
5

 
.

 
cd

 
apache_xxx

 
6

 
.

 
.

 
/

 
configure

 
--prefix=

 
/

 
www

 
--enable-module=so

 
7

 
.

 
make

 
8

 
.

 
make

 
install

 
9

 
.

 
cd

 
.

 
.

 
/

 
php-xxx

 
10

 
.

 
.

 
/

 
configure

 
--with-mysql

 
--with-apxs=

 
/

 
www

 
/

 
bin

 
/

 
apxs

 
11

 
.

 
make

 
12

 
.

 
make

 
install

 
Se

 
você

 
decidir

 
mudar

 
as

 
opções

 
de

 
seu

 
configure

 
depois

 
da

 
instalação

 
você

 
precisará

 
somente

 
repetir

 
os

 
últimos

 
tres

 
passos

 
.




 
Você

 
somente

 
precisará

 
reiniciar

 
o

 
apache

 
para

 
o

 
novo

 
módulo

 
funcionar

 
.




 
Não

 
será

 
necessário

 
recompilar

 
o

 
Apache

 
.




 
13

 
.

 
cp

 
php.ini-dist

 
/

 
usr

 
/

 
local

 
/

 
lib

 
/

 
php.ini

 
Você

 
pode

 
editar

 
o

 
seu

 
arquivo

 
.ini

 
para

 
configurar

 
as

 
opções

 
do

 
PHP

 
.




 
Se

 
você

 
preferir

 
que

 
este

 
arquivo

 
fique

 
em

 
outro

 
lugar

 
,

 
use

 
a

 
opção

 
--with-config-file-path=

 
/

 
caminho

 
no

 
passo

 
10

 
.








 
Edite

 
o

 
seu

 
arquivo

 
httpd.conf

 
ou

 
srm.conf

 
e

 
verifique

 
que

 
estas

 
linas

 
estejam

 
presentes

 
e

 
não

 
estejam

 
comentadas

 
:




 
AddType

 
application

 
/

 
x-httpd-php

 
.php

 
LoadModule

 
php4_module

 
libexec

 
/

 
libphp4.so

 
Você

 
pode

 
escolher

 
qualquer

 
extensão

 
aqui

 
.

 
.php

 
é

 
simplesmente

 
uma

 
sugestão

 
que

 
nós

 
damos

 
.




 
Você

 
também

 
pode

 
incluir

 
.html

 
,

 
e

 
.php3

 
pode

 
ser

 
adicionado

 
para

 
compatibilidade

 
com

 
versões

 
antigas

 
.




 
O

 
caminho

 
no

 
lado

 
direito

 
do

 
comando

 
LoadModule

 
deve

 
apontar

 
para

 
para

 
o

 
caminho

 
do

 
módulo

 
PHP

 
do

 
seu

 
sistema

 
.




 
O

 
comando

 
acima

 
está

 
correto

 
para

 
os

 
passos

 
mostrados

 
acima

 
.








 
Use

 
seu

 
procedimento

 
normal

 
para

 
iniciar

 
o

 
servidor

 
Apache

 
.

 
(

 
Você

 
deve

 
parar

 
e

 
reiniciar

 
o

 
servidor

 
,

 
não

 
somente

 
fazer

 
um

 
reinício

 
enviando

 
um

 
sinal

 
HUP

 
ou

 
USR1

 
.

 
)



Dependendo da sua instalação do Apache e das variações Unix , existem inúmeras maneiras possíveis de parar e reiniciar o servidor . Abaixo estão algumas linhas típicas usadas para reiniciar e o servidor , para instalações de versões de apache / unix . Você deve trocar / caminho / para / pelo caminho destas aplicações nos seus sistemas .





 
Inúmeras

 
variações

 
de

 
sistemas

 
Linux

 
:

 
/

 
etc

 
/

 
rc.d

 
/

 
init.d

 
/

 
httpd

 
restart

 
2

 
.




 
Usando

 
os

 
scripts

 
apachectl

 
:

 
/

 
caminho

 
/

 
para

 
/

 
apachectl

 
stop

 
/

 
caminho

 
/

 
para

 
/

 
apachectl

 
start

 
3

 
.

 
httpdctl

 
and

 
httpsdctl

 
(

 
Usando

 
OpenSSL

 
)

 
,

 
igual

 
ao

 
apachectl

 
:

 
/

 
caminho

 
/

 
para

 
/

 
httpsdctl

 
stop

 
/

 
caminho

 
/

 
para

 
/

 
httpsdctl

 
start

 
4

 
.




 
Usando

 
mod_ssl

 
,

 
ou

 
outro

 
servidor

 
SSL

 
,

 
você

 
pode

 
querer

 
iniciar

 
ou

 
reiniciar

 
manualmente

 
:

 
/

 
caminho

 
/

 
para

 
/

 
apachectl

 
stop

 
/

 
caminho

 
/

 
para

 
/

 
apachectl

 
startssl



As localizações dos binários apachectl e http(s)dctl geralmente variam. Se o seu sistema tem os comandos locate ou whereis ou which , estem podem lhe ajudar a encontrar os programas de controle do servidor.

Exemplos diferentes de compilação do PHP para apache estão a seguir :



Isto irá criar uma biblioteca compartilhada libphp4.so que é carregada com o Apache usando uma linha LoadModule no arquivo httpd.conf do Apache . O suporte ao PostgreSQL está embutido dentro da biblioteca compartilhada libphp4.so .



Isto irá criar uma biblioteca compartilhada libphp4.so para o Apache , mas isto também criará uma biblioteca compartilhada pgsql.so que é carregada com o PHP tanto ao usar a diretiva de extensão no arquivo php.ini ou então carregando ela explícitamente no script usando a função dl( ) .

 
.

 
/

 
configure

 
--with-apache=

 
/

 
caminho

 
/

 
para

 
/

 
apache_source

 
--with-pgsql





Isto irá criar uma biblioteca libmodphp4.a , o arquivo mod_php4.c e vários arquivos dependentes e copiará eles para o diretório src / modules / php4 na árvore de diretório do código fonte do Apache . Então você compilará o Apache usando a opção --activate-module=src / modules / php4 / libphp4.a e o sistema de compilação do Apache irá criar o arquivo libphp4.a e fará um link estático dentro do binário httpd . O suporte ao PostgreSQL estará incluído diretamente neste binário httpd , então o resultado final aqui será um único arquivo binário httpd que incluirá tudo do Apache e tudo do PHP .

 
.

 
/

 
configure

 
--with-apache=

 
/

 
caminho

 
/

 
para

 
/

 
apache_source

 
--with-pgsql=shared





Mesmo que o anterior , exceto em vez de incluir o suporte ao PostgreSQL diretamente no binário httpd você terá uma biblioteca compartilhada pgsql.so que você poderá carregar com o PHP tanto do arquivo php.ini ou diretamente usando a função dl( ) .

Quanto estiver decidindo compilar o PHP com maneiras diferentes , você deverá considerar as vantages e disvantagens de cada método . Complilando como uma biblioteca compartilhada significará que você poderá compilar o apache separadamente , e não terá que recompilar tudo quando quiser adicionar ou mudar o seu PHP . compilando o PHP dentro do apache ( método estático ) significará que o PHP irá carregar e rodar rapidamente . Para maiores informações , veja a página web do Apache que fala sobre Suporte a Objetos Dinâmicos Compartilhados .

Nota : O arquivo httpd.conf padrão do Apache atualmente contém uma seção que se parece com isso :

A menos que você mude isto para "Group nogroup" ou algo assim ("Group daemon" é também muito comum) o PHP não estará apto a abrir arquivos.

Nota : Tenha certeza de especificar a versão instalada do apxs quando usar a opção --with-apxs= / caminho / para / apxs . Você NÂO deverá usar a versão do apxs que está nos fontes do apache e sim a que está atualmente instalada no seu sistema .

Instalando o PHP em Windows com Apache 1.3.x

Existem duas maneiras de configurar o PHP para funcionar com o Apache 1.3.x em Windows . Uma é usando o binário CGI ( php.exe) , a outra é usando a bliblioteca compartilhada (DLL ) como módulo para o Apache (SAPI ) . Nos dois casos você precisará parar o Servidor Apache , e editar seu arquivo srm.conf ou httpd.conf para configurar o Apache para funcionar com o PHP .

Vale deixar claro aqui que agora o módulo SAPI tornou-se muito mais estável no windows , nós recomendamos o seu uso em vez do binário CGI , por ele ser mais transparente e seguro .

Embora possa ter algumas variações de configurar o PHP com Apache , elas são fáceis suficientemente para ser feitas por um usuário sem experiência . Por favor consulte os Documentos do Apache para maiores diretivas de configuração .

Se você descompactou o pacote do PHP para c:\php\ como descrito na seção Passos de Instalação Manual , você precisará inserir estas linhas no seu arquivo de configuração do Apache para configurar o binário CGI :

Note que a segunda linha na lista acima pode ser encontrada em versões atuais do arquivo httpd.conf , mas elas estão comentadas. Lembre-se também de trocar o caminho c:/php/ pelo caminho atual do PHP instalado em seu sistema.

Atenção

Usando a configuração do binário CGI , o seu servidor está aberto a vários tipos possívels de ataque . Por favor leia nossa seção Segurança em CGI para aprender como defender-se de ataques .

Se você preferir usar o PHP como um módulo no Apache , esteja certo de mover o arquivo php4ts.dll para o diretório windows / system ( em Windows 9x / Me ) ou winnt / system32 (para Windows NT / 2000 / XP ) , sobrescrevendo qualquer arquivo antigo . Então você deverá adiciomar as duas linhas a seguir em seu arquivo de configuração do Apache :



Após mudar o arquivo de configuração , lembre-se de reiniciar o servidor , por exemplo , NET STOP APACHE seguido por NET START APACHE , se você roda o Apache como um Serviço Windows , ou use os atalhos comuns no menu iniciar .

Nota : Você irá descobrir que após usar o windows installer para Apache que você deverá definir a diretriz AddModule para mod_php4.c no arquivo de configuração ( httpd.conf ) . Isto pode ser feito adicionando AddModule mod_php4.c para a lista AddModule , perto do começo do arquivo de configuração . Isto é especialmente importante se a diretriz ClearModuleList Isto é especialmente importante se a diretriz ClearModuleList estiver definida . Falhas ao configurar isto pode resultar em não definir o PHP como um módulo para Apache .

Existem duas maneiras para você poder usar a função de destaque de códigos fonte , contudo dependerá da maneira de sua instalação para esta função funcionar corretamente . Se você configurou o Apache para usar o PHP como um módulo SAPI , então adicionando a seguinte linha ao seu arquivo de configuração você poderá usar esta função :

Se você escolher configurar o Apache para usar o PHP como um binário CGI , você precisará usar a função show_source( ) . Para fazer isto simplesmente crie um arquivo de script PHP e adicione este código : ?php show_source ( "php_original_script.php") ; ? . Troque php_original_script.php pelo nome do arquivo que você quer que seja mostrado o código fonte .

Nota : No Apache em Windows todas as barras invertidas em uma definição de caminho como descrito aqui " c:\diretorio\arquivo.ext" , devem ser convertidas para barras normais , como descrito aqui "c : / diretorio / arquivo.ext " .