|
|
WASFrom COREPHP1 - Sumário Espera-se com este documento auxiliar as pessoas a instalar um servidor Web Apache com suporte a PHP e banco de dados PostgreSQL de maneira simples e objetiva. Esta é a versão 1.0 deste documento e está sujeito a alterações, correções e atualizações conforme a necessidade for detectada. Introdução Software Necessário Instalando o Apache Instalando o PostgreSQL Instalando o PHP Finalizando 2 - Introdução Criar um servidor de aplicações web utilizando software livre é mais simples do que parece, além de ser um atividade divertida e instrutiva. Eu venho trabalhando com sistemas livres desde 1997, quando entrei na BRNet, provedor local de Brasília e nunca mais parei. Adoro muito tudo isso! (Dá-lhe Mc Donalds) O presente documento não se prende, porém, a uma distribuição ou outra, mas aos softwares utilizados nas mais diversas plataformas. Estaremos trabalhando aqui a partir dos códigos fontes, o que nos dá muito mais liberdade de escolhas e atualizações do que se utilizássemos os pacotes binários pré-compilados. Você verá que as opções indicadas aqui para a compilação são as mínimas exigidas para a integração dos softwares utilizados. Caso queira aprofundar-se mais, sugiro ler a documentação individual de cada software. 3 - Software Necessário Assim sendo, para seguir adiante, a única exigência é que você tenha uma instalação Unix funcionando. Qual? Você decide! Eu, pessoalmente, sou a favor do FreeBSD. Mas se quiser, utilize Linux (qualquer distribuição), Irix, HP-UX, Solaris, o que for! Você não está preso a nenhum sistema operacional, desde que ele seja Unix. Tudo o que você precisa ter é um compilador disponível em seu sistema, seja ele o GCC, CC ou o que for, uma conexão com a Internet para baixarmos os fontes dos programas, e ser o root (superusuário) da máquina. Embora o processo todo seja relativamente simples, pedimos apenas que se atenha à ordem em que os softwares são instalados. O PHP deve ser sempre o último, dado que ele requer bibliotecas dos outros dois pacotes para ser compilado. 4 - Instalando o Apache O Apache é o servidor Web padrão em sistemas livres e responsável pela maior fatia do mercado. Disponível nos mais diversos Unix, seu uso é aconselhado devido ao grande número de desenvolvedores envolvidos, e pelo grau de maturidade que o código novo conseguiu atingir com o passar dos anos. Para instalar o Apache, siga os passos abaixo: 1 - faça o download dos fontes em http://httpd.apache.org/download.cgi 2 - crie um diretório em /usr/src chamado was e copie o arquivo para lá 3 - descompacte o arquivo escolhido. Isso criará um diretório chamado httpdxxx onde xxx refere-se à versão que você copiou 4 - entre no diretório criado e execute o seguinte comando:
Isto configurará o Apache para ser compilado com a opção para habilitar a biblioteca de módulos, permitindo que softwares sejam adicionados ao Apache como módulos aumentando assim a performance quando do uso destes. 5 - caso você não tenha nenhuma mensagem de erro, execute agora:
Isto compilará e instalará o Apache em seu diretório padrão /usr/local/apache2. Em todos os softwares instalados daqui para baixo, você verá que utilizaremos sempre o local padrão. Por que isso? Por respeito às pessoas que desenvolveram o programa. Eles queriam que estivesse lá por algum motivo. O maior problema da diversidade de distribuições Linux existentes é justamente que os arquivos nunca estão onde deveriam estar. Vamos evitar isto respeitando os locais escolhidos pelos criadores. Se você tiver uma mensagem de erro, pare, leia-a atentamente, e corrija-a. Normalmente mensagens de erro neste estágio referem-se a alguma biblioteca requerida. 6 - edite o arquivo /etc/rc.local (se ele não existir, crie) e adicione as seguintes linhas: echo ? Iniciando o Apache ? /usr/local/apache2/bin/apachectl start O apachectl é o programa que já vem com o apache para controlar o servidor iniciando, reiniciando ou parando o serviço conforme solicitado. As páginas web que serão publicadas estarão no diretório /usr/local/apache2/htdocs. Se você só queria instalar um servidor web, pode parar de ler por aqui já, pois tudo o que você precisava foi instalado. Caso contrário, siga em frente. 5 - Instalando o PostgreSQL A Instalação do PostgreSQL segue o mesmo padrão da anterior no que se refere à compilação, mudando apenas na configuração do sistema. 1 - faça o download dos fontes em http://wwwmaster.postgresql.org/ftp/ (você provavelmente encontrará um diretório chamado vX.X.X onde X.X.X é uma série de números indicando a versão do PostgreSQL disponível). O fonte que queremos aqui é o postgresql-X.X.X.tar.bz2. Ignore os pacotes base, docs, opt e opt. O pacote indicado contém os fontes completos 2 - copie o arquivo para /usr/src/was (o diretório criado anteriormente) 3 - descompacte o arquivo escolhido. Isso criará um diretório chamado postgresql-X.X.X onde X.X.X refere-se à versão que você copiou 4 - entre no diretório criado e execute o seguinte comando:
5 - caso você não tenha nenhuma mensagem de erro, execute agora:
Temos agora o PostgreSQL compilado e instalado em seu diretório padrão, que é o /usr/local/pgsql. Mas compilar não significa instalar, e precisamos ainda realizar uma série de configurações para que o sistema funcione. 6 - Por motivos de segurança, o PostgreSQL é executado sob o perfil de um usuário sem grandes poderes, ou seja, o PostgreSQL é executado sob um usuário chamado postgres (na verdade, este item é configurável, mas me parece uma boa idéia mantermos o padrão aqui). Crie então um usuário, de acordo com o sistema operacional que você utiliza, chamado postgres. Cada Unix funciona de maneira um pouco diferente do outro, mas de maneira geral, utiliza-se um comando chamado adduser. 7 - Agora que temos o usuário criado, precisamos torná-lo o proprietário dos arquivos do PostgreSQL, ou ele não poderá executar o binário e nem poderá escrever os arquivos necessários. Para isso utilizamos outro comando do Unix, chamado chown. A sintaxe deve ser parecida em todos os Unix e segue abaixo:
A opção -R torna a chamada ao comando recursiva, afetando todos os diretórios abaixo deste. 8 - Agora, precisamos executar um binário do PostgreSQL chamado initdb. O initdb tem por objetivo inicializar o banco de dados principal do PostgreSQL. O único parâmetro a ser informado ao initdb é o local onde estará o banco de dados, através da opção ?D. Novamente nos prenderemos ao padrão do PostgreSQL e o instalaremos no /usr/local/pgsql/data. Este comando não pode ser executado como root, e para isso devemos entrar como o usuário postgres. Execute então a seqüência de comandos abaixo.
$ /usr/local/pgsql/bin/initdb ?D /usr/local/pgsql/data $ exit 9 - O toque final consiste em configurar o PostgreSQL para permitir conexões TCP/IP. Isso é feito através do arquivo /usr/local/pgsql/data/postgresql.conf. Na versão 7.x do Postgres, procure a linha referente à conexão TCP/IP, descomente-a e altere seu valor de false para true. Para a versão 8.x, é necessário editar o arquivo pg_hba.conf e adicionar permissão para acesso a partir das outras máquinas. Para localhost, não é necessário nenhuma alteração, mas caso você esteja trabalhando a partir de uma estação de trabalho, o IP dela deve estar liberado para acessar o servidor, ou será impossível trabalhar no banco remoto. Agora já temos o PostgreSQL instalado e configurado, precisando apenas que o iniciemos no boot da máquina. 10 - Dentro do diretório do código fonte do PostgreSQL, encontraremos um subdiretório chamado contrib. Este diretório contém uma série de contribuições da comunidade do PostgreSQL. Entrando lá, veremos que existe um outro diretório chamado start-scripts, que contém exemplos de scripts utilizados para inicializar e parar o serviço do PostgreSQL. Procure o arquivo do seu sistema operacional (se não encontrar, pule para o passo 11) e copie para o diretório /etc renomeando o arquivo para pgsql (para facilitar a identificação do mesmo depois). Ex:
Este arquivo possue uma série de variáveis configuráveis, as quais podem ser alteradas conforme a vontade do administrador do sistema. Não nos aprofundaremos nelas pois não faz parte do escopo deste documento. Após ter copiado o arquivo, precisamos alterar a forma de acesso ao mesmo e torná-lo um executável. Para isso usamos o comando chmod com as opções 700 que dão ao arquivo permissão de execução pelo proprietário (no caso o root), mas negam qualquer acesso a qualquer outro usuário do sistema. Para que o PostgreSQL seja iniciado no boot da máquina, iremos novamente apelar para o nosso amigo /etc/rc.local e acrescentaremos as seguintes linhas ao mesmo echo "Iniciando o PostgreSQL" /etc/pgsql start 11 - Vamos supor porém que você não encontrou um script para seu sistema operacional, como você fará para iniciar o sistema? Acrescente apenas as seguintes linhas ao /etc/rc.local: echo "Iniciando o PostgreSQL" /usr/local/pgsql/bin/postmaster ?D /usr/local/pgsql/data Experimente reiniciar a máquina e veja se não há nenhuma mensagem de erro. Se houver pare e corrija antes de prosseguir. 6 - Instalando o PHP A instalação do PHP não é em nada diferente das outras, mudando apenas que você precisará acrescentar uma ou duas linhas na configuração do Apache para que ele utilize o PHP. 1 - faça o download dos fontes em http://www.php.net/downloads.php. Selecione sempre o Complete Source Code da última versão disponível. 2 - copie o arquivo para /usr/src/was (o diretório criado anteriormente) 3 - descompacte o arquivo escolhido. Isso criará um diretório chamado php-X.X.X onde X.X.X refere-se à versão que você copiou 4 - entre no diretório criado e execute o seguinte comando:
-?with-pgsql 5 - caso você não tenha nenhuma mensagem de erro, execute agora:
6 - verifique se foi criado um aquivo chamado libphpX.so (onde X é o número da versão) no diretório /usr/local/apache2/modules. Caso não tenha sido criado, alguma coisa saiu errado na compilação do Apache e você terá que reiniciar todo o processo (com exceção do PostgreSQL), removendo o diretório /usr/local/apache2 e limpando o código-fonte com o comando make distclean. Caso o arquivo exista, você está a apenas 4 passos de ter um servidor Apache com PHP com suporte ao PostgreSQL. 7 - Copie o arquivo php.ini-dist para o diretório /usr/local/lib renomando-o para php.ini.
8 - Edite o arquivo /usr/local/apache2/conf/httpd.conf acrescentando as seguintes linhas: LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .phtml Antes de adicionar a primeira linha verifique se ela já não existe, pois o PHP costuma adicionar pelo menos uma das duas linhas acima citadas. Além de adicionar as linhas acima, altere a linha referente ao DirectoryIndex e adicione o arquivo index.php como índice padrão do Apache. 9 - Vá agora ao diretório /usr/local/apache2/htdocs e remova todos os arquivos contidos lá (páginas de exemplo do Apache) com o comando
Crie agora um arquivo chamado index.php neste diretório e acrescente a seguinte linha ao mesmo: <?php phpinfo() ?> O comando phpinfo() imprime uma série de informações sobre o servidor e é perfeito para vermos se o PHP está bem instalado e se possui suporte a todas as funcionalidades necessárias. 10 - Agora tudo que precisamos fazer é reiniciar o Apache e verificar com o browser se nosso servidor está funcionando corretamente. Para reiniciar o Apache utilizaremos o apachectl localizado em /usr/local/apache2/bin/ com a opção restart
Caso você tenha algum erro, reveja todos os passos acima ou tente solucionar de acordo com a msg de erro recebida. |