Este é o primeiro de uma séria de cinco, onde você aprenderá como montar um servidor de Internet completo, com serviços de HTTP e HTTPs (Apache), BD (PostgreSQL), PHP, IMAP e POP3 (Postfix), antivírus (ClamAV), FTP seguro (Pure-FTPd), Gateway (OpenBSD) e DNS (Bind). Aqui será vista a instalação e configuração do Apache com SSL, PostgreSQL e PHP.
Antes de instalar o PHP, é necessário que você conheça as extensões que ele suporta. Para isso, digite o comando:
# ./configure --help
Após conhecer as opções, configure a instalação de acordo com aquilo que você deseja habilitar. Para uma instalação simples, sem extensões, basta inserir o comando:
--with-apxs2=/usr/sbin/apxs2 -> Ativa o suporte no Apache 2. Caso sua instalação do Apache seja versão 1, escolha a opção --with-apxs.
--with-pgsql -> Ativa o Suporte ao PostgreSQL.
--with-config-file-path=/var/www/conf -> Indica o caminho do local onde irão ficar os arquivos de configuração.
Pronto! Basta compilar e instalar!
# make && make install
Configuração
No diretório onde se encontram os códigos-fonte do PHP, geralmente /usr/local/src/php-4.3.9rc2/, você deve copiar o arquivo php.ini-dist, caso queira utilizar o PHP da forma original ou php.ini-recommended caso queira utilizar na forma recomendada. No nosso caso utilizaremos a forma recomendada.
# cp php.ini-recommended /var/www/conf/php.ini
Lembre-se: É sempre bom dar uma boa leitura nos comentários dos arquivos de configuração.
Devemos configurar o Apache para ler páginas index.php como páginas principais. Para isto procure pela linha DirectoryIndex no arquivo httpd.conf. Dica: Para achar uma palavra no VI basta digitar / (Barra) e a palavra à procurar.
# vi /var/www/conf/httpd.conf
:/DirectoryIndex
Agora deixe a linha desta maneira:
DirectoryIndex .php .html .phtml .php3
É preciso, também, ativar as extensões (.php) no httpd.conf do Apache. Para isso edite o arquivo e adicione a seguinte linha no meio do arquivo.
# vi /var/www/conf/httpd.conf
:/AddType
Agora que você achou a parte onde se adicionam os tipos, adicione esta linha:
Incluindo a extensão .inc você poderá aumentar a segurança do servidor com relação à disposição de código. Caso você utilize códigos em php de terceiros, às vezes o código vem com extensão .inc e é muito trabalhoso mudar a extensão no código todo... Assim você protege o código fazendo com que o servidor interprete também as extensões .inc.
Pronto! Seu servidor está pronto para receber suas páginas. Para testá-lo, crie uma página em PHP com este conteúdo:
<?
phpinfo();
?>
Salve-o no diretório /var/www/htdocs como index.php. Abra o browser e digite http://IP.DO.SERVIDOR. Se tudo correu certo irá aparecer uma página de informações do PHP.
[1] Comentário enviado por m4sk4r4 em 01/10/2004 - 10:21h
Olá Carlos,
Gostei muito do artigo, Parabéns, e já tou ancioso
para ler as outras séries do artigo.
Mais aproveito também este espaço, para fazer umas perguntas .
No caso do postgre, ele tem um superusuário para iniciar
o serviço, esse mesmo usuário que deverá ser usado
para criar os banco de dados, tabelas?
Um novo database a ser criado, deve ser em /var/pgsql/data ?
Última pergunta, o comando chroot poderia ser usado no caso do postgre.
[3] Comentário enviado por dudu_away em 01/10/2004 - 10:29h
Caro m4sk4r4, o superusuario deve ser utilizado para executar os qualquer comando que venha pelas linhas de comando do linux.
Para criar banco de dados:
# su postgres -c 'createdb banco_de_dados'
No caso de criar as tabelas, vc utiliza o comando
# psql -Upostgres banco_de_dados
e será aberto o shell do postgresql. Daí vc pode executar qualquer comando SQL tipo CREATE TABLE. Existem outras formas de criar como importando um arquivo. O comando ficaria assim:
# psql -Upostgres banco_de_dados -c '\i arquivo'
No caso do chroot não é possível utilizá-lo se vc pretende rodar o postgresql com o Apache, pq o arquivo .pid não seria visto pelo mesmo daí daria erro no PHP...
[5] Comentário enviado por dudu_away em 02/10/2004 - 22:16h
Ai m4sk4r4, dei uma olhada na sua pergunta e vi q tava mal respondida.... hehehe...
O novo database deve ser criado no local onde vc pos pra ser o home do usuario postgres (que no sistema é considerado usuário comum) ou o usuário postgres deve ser o dono do diretório q vc utilizar pra ser o database..... E podem ser criados vários databases em um msm diretorio.... o diretorio q citei /var/pgsql/data e o diretorio utilizado para guardar os dados e arquivos de configuração do postgresql. Blz? Espero ter ajudado...
[7] Comentário enviado por engos em 05/10/2004 - 09:21h
Beleza de artigo, espero que a série continue tão boa quanto esse primeiro artigo.
Só uma observação que não gostei, quando você fala sobre a instalação do PHP, em "--prefix=/usr/local -> Explicado anteriormente". Caso a pessoa já tivesse o Apache e PostgreSQL instalado e estivesse interessado em instalar apenas o PHP teria que lêr todo o artigo para saber onde foi explicado e o que significa?
É só um detalhe, mas acho importante.
Parabéns pelo artigo, já estou na espera pela seqüência.
[10] Comentário enviado por reimassupilami em 27/01/2005 - 08:32h
ótimo artigo hein... Estou mesmo montando um servidor usando apache+php+postgre, mas é difícil encontrar material assim... geralmente econtramos com mysql apenas...
[11] Comentário enviado por reimassupilami em 31/03/2005 - 08:34h
olá dudu_away... cara, eu usei seu artigo, está bom mesmo, foi ideal pra mim... agora estou precisando instalar o php5... vc sabe se os parâmetros para configuração e compilação são os mesmos?
[12] Comentário enviado por Antoniaze em 01/04/2005 - 21:47h
Salve Comunidade que continue sempre assim...
Caro DUDU valeu mesmo ....
Este foi pelo qual estou ligado no linux...
ESPERAVA ESTE ARTIGO A MUITO TEMPO....
Valeu velho ....Parabens...
[14] Comentário enviado por reimassupilami em 07/11/2005 - 15:36h
olha só, tive o seguinte problema: se eu configurar o socket em outro diretorio diferente de /tmp ele inicia normalmente, porem comandos como o createuser, por exemplo continuam buscando o socket em /tmp, e dae nao funcionam... existe mais algum arquivo de configuração q pode estar fazendo referencia a esse diretorio? a solução por enquanto foi deixar o diretorio do socket em /tmp mesmo
outra coisa, como defino a senha do superusuario, quando é feita a instalação?
[15] Comentário enviado por cmeisterhofer em 28/06/2006 - 11:07h
Ola!
Ainda engatinhando em linux, e bota engatinhado.
Usuario de Access, migrando de MSXP para linux slackware 10.2.
Segui a risca a receita e configurei o postgres.
Nao deu nenhuma messagem de erro.
Me desculpe a minha ignorancia, como faco para ele rodar em modo grafico, ou ele so roda em modo texto.
Como fazer para rodar entre um e outro, outros aplicativos como Opera por exemplo instala o icone la em internet.