Differences

This shows you the differences between two versions of the page.

Link to this comparison view

compilando_e_instalando_o_apache_v2.4.3_php_v5.4.6_debian_squeeze_pt_br [2017/09/05 12:18]
compilando_e_instalando_o_apache_v2.4.3_php_v5.4.6_debian_squeeze_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Compilando e Instalando o apache V 2.4.3 + PHP V 5.4.6 + Debian Squeeze ======
  
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialsqueeze_en para que não falte nenhum pacote ou configuração.
 +
 +Vamos mandar atualizar os repositórios e fazer um upgrade do sistema
 +<sxh bash>
 +
 +aptitude update && aptitude dist-upgrade -y
 +</​sxh>​
 +
 +Agora vamos instalar algumas depências para o nosso Apache.
 +<sxh bash>
 +
 +aptitude install libapr1 libapr1-dev libaprutil1 libaprutil1-dev -y
 +</​sxh>​
 +
 +Agora vamos obter o código fonte do Apache ​
 +<sxh bash>
 +
 +cd /usr/src
 +wget -c http://​wiki.douglasqsantos.com.br/​Downloads/​apache/​httpd-2.4.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos obter o código fonte do PHP
 +<sxh bash>
 +
 +wget -c http://​wiki.douglasqsantos.com.br/​Downloads/​apache/​php-5.4.6.tar.bz2
 +</​sxh>​
 +
 +Agora vamos descompactar o nosso Apache e vamos acessar o diretório com o código fonte.
 +<sxh bash>
 +
 +tar -xzvf httpd-2.4.3.tar.gz && cd httpd-2.4.3/​
 +</​sxh>​
 +
 +Vamos setar a configuração da compilação do nosso apache com alguns módulos padrões uma lista com os novos recursos do apache 2.4.1 pode ser vista no seguinte link http://​www.eu.apache.org/​dist/​httpd/​CHANGES_2.4
 +<sxh bash>
 +
 +./configure --prefix=/​usr/​local/​apache2 \
 +--enable-so --enable-cgi --enable-info \
 +--enable-rewrite --enable-speling --enable-usertrack \
 +--enable-deflate --enable-ssl --enable-mime-magic
 +</​sxh>​
 +
 +Aqui acima estamos setando aonde vai ficar o <​nowiki>​ServerRoot</​nowiki>​ do apache que vai ser /​usr/​local/​apache2,​ vamos habilitar os módulos to tipo share, vamos habilitar a execução de cgi que vamos precisar para o php e mais alguns módulos adicionais.
 +
 +Agora vamos compilar o nosso Apache
 +<sxh bash>
 +
 +make
 +</​sxh>​
 +
 +Agora vamos mandar instalar ele
 +<sxh bash>
 +
 +make install
 +</​sxh>​
 +
 +Agora vamos instalar as bibliotecas do mysql para que o nosso php tenha suporte pelo menos ao MySQL
 +<sxh bash>
 +
 +aptitude install libmysql++-dev libmysqlclient-dev libmysqld-dev -y 
 +</​sxh>​
 +
 +O nosso Apache já esta ok, agora vamos descompactar o nosso php e vamos acessar o diretório do código fonte
 +<sxh bash>
 +
 +cd /usr/src
 +tar -xjvf php-5.4.6.tar.bz2 && cd php-5.4.6
 +</​sxh>​
 +
 +Agora vamos instalar algumas dependências do nosso PHP
 +<sxh bash>
 +
 +aptitude install libxml2 libxml2-dev libxml2-utils -y
 +</​sxh>​
 +
 +Agora vamos setar a configuração para a compilação do nosso PHP.
 +<sxh bash>
 +
 +./configure --with-apxs2=/​usr/​local/​apache2/​bin/​apxs \
 +--prefix=/​usr/​local/​apache2/​php --with-config-file-path=/​usr/​local/​apache2/​php \
 +--with-zlib --with-gettext --with-mysql
 +</​sxh>​
 +
 +Acima estamos setando o arquivo de referência do Apache para a compilação do php, o diretório aonde vai ficar o nosso php, o diretório aonde vai ficar o arquivo de configuração do nosso php, e mais alguns módulos básicos.
 +
 +Agora que já configuramos o nosso PHP vamos mandar compilar ele.
 +<sxh bash>
 +
 +make
 +</​sxh>​
 +
 +Agora após a compilação do nosso PHP vamos mandar instalar ele.
 +<sxh bash>
 +
 +make install
 +</​sxh>​
 +
 +Agora vamos copiar o arquivo de configuração do php para o diretório definido no ./configure
 +<sxh bash>
 +
 +cp php.ini-production /​usr/​local/​apache2/​php/​php.ini
 +</​sxh>​
 +
 +Vamos criar o grupo e o usuário apache para que o apache seja executado com eles e não com o usuário root.
 +<sxh bash>
 +
 +groupadd apache
 +useradd -g apache apache
 +</​sxh>​
 +Agora vamos acertar a configuração do Apache para ele trabalhar com o usuário apache e reconhecer o php
 +<sxh apache>
 +
 +vim /​usr/​local/​apache2/​conf/​httpd.conf
 +[...]
 +#Usuário e grupo que o apache será executado
 +User apache
 +Group apache
 +[...]
 +#Email do WebMaster
 +ServerAdmin douglas@douglasqsantos.com.br
 +[...]
 +#Diretório aonde vai conter as páginas do site default
 +DocumentRoot "/​usr/​local/​apache2/​htdocs"​
 +[...]
 +AddType application/​x-compress .Z
 +AddType application/​x-gzip .gz .tgz
 +#Opções para o apache reconhecer o PHP
 +AddType application/​x-httpd-php-source phps
 +AddType text/html .php
 +[...]
 +#Mapeamento do tipo de extenção para o Apache
 +#AddHandler cgi-script .cgi
 +AddHandler php5-script .php
 +[...]
 +</​sxh>​
 +
 +Agora vamos iniciar o nosso apache
 +<sxh bash>
 +
 +/​usr/​local/​apache2/​bin/​apachectl start
 +</​sxh>​
 +
 +Agora vamos testar a configuração do nosso Apache
 +<sxh bash>
 +
 +/​usr/​local/​apache2/​bin/​apachectl -t
 +Syntax OK
 +</​sxh>​
 +
 +Agora vamos obter a versão do nosso Apache
 +<sxh bash>
 +
 +/​usr/​local/​apache2/​bin/​apachectl -v
 +Server version: Apache/​2.4.3 (Unix)
 +Server built: ​  ​Sep ​ 4 2012 13:07:38
 +</​sxh>​
 +
 +Agora vamos ver as opções de compilação do nosso Apache
 +<sxh bash>
 +
 +/​usr/​local/​apache2/​bin/​apachectl -V
 +Server version: Apache/​2.4.3 (Unix)
 +Server built: ​  ​Sep ​ 4 2012 13:07:38
 +Server'​s Module Magic Number: 20120211:6
 +Server loaded: ​ APR 1.4.2, APR-UTIL 1.3.9
 +Compiled using: APR 1.4.2, APR-UTIL 1.3.9
 +Architecture: ​  ​64-bit
 +Server MPM:     event
 +  threaded: ​    yes (fixed thread count)
 +    forked: ​    yes (variable process count)
 +Server compiled with....
 + -D APR_HAS_SENDFILE
 + -D APR_HAS_MMAP
 + -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 + -D APR_USE_SYSVSEM_SERIALIZE
 + -D APR_USE_PTHREAD_SERIALIZE
 + -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 + -D APR_HAS_OTHER_CHILD
 + -D AP_HAVE_RELIABLE_PIPED_LOGS
 + -D DYNAMIC_MODULE_LIMIT=256
 + -D HTTPD_ROOT="/​usr/​local/​apache2"​
 + -D SUEXEC_BIN="/​usr/​local/​apache2/​bin/​suexec"​
 + -D DEFAULT_PIDLOG="​logs/​httpd.pid"​
 + -D DEFAULT_SCOREBOARD="​logs/​apache_runtime_status"​
 + -D DEFAULT_ERRORLOG="​logs/​error_log"​
 + -D AP_TYPES_CONFIG_FILE="​conf/​mime.types"​
 + -D SERVER_CONFIG_FILE="​conf/​httpd.conf"​
 +</​sxh>​
 +
 +Agora vamos verificar os módulos estáticos do Apache
 +<sxh bash>
 +
 +/​usr/​local/​apache2/​bin/​apachectl -l
 +Compiled in modules:
 +  core.c
 +  mod_so.c
 +  http_core.c
 +  event.c
 +</​sxh>​
 +
 +Agora vamos visualizar os módulos disponíveis em nosso Apache
 +<sxh bash>
 +
 +/​usr/​local/​apache2/​bin/​apachectl -M
 +Loaded Modules:
 + ​core_module (static)
 + ​so_module (static)
 + ​http_module (static)
 + ​mpm_event_module (static)
 + ​authn_file_module (shared)
 + ​authn_core_module (shared)
 + ​authz_host_module (shared)
 + ​authz_groupfile_module (shared)
 + ​authz_user_module (shared)
 + ​authz_core_module (shared)
 + ​access_compat_module (shared)
 + ​auth_basic_module (shared)
 + ​reqtimeout_module (shared)
 + ​filter_module (shared)
 + ​mime_module (shared)
 + ​log_config_module (shared)
 + ​env_module (shared)
 + ​headers_module (shared)
 + ​setenvif_module (shared)
 + ​version_module (shared)
 + ​unixd_module (shared)
 + ​status_module (shared)
 + ​autoindex_module (shared)
 + ​dir_module (shared)
 + ​alias_module (shared)
 + ​php5_module (shared)
 +</​sxh>​
 +
 +Agora vamos testar o nosso Apache via telnet
 +<sxh bash>
 +
 +telnet localhost 80
 +Trying 127.0.0.1...
 +Connected to localhost.
 +Escape character is '​^]'​.
 +HEAD / HTTP/1.0
 +
 +HTTP/1.1 200 OK
 +Date: Tue, 04 Sep 2012 16:18:59 GMT
 +Server: Apache/​2.4.3 (Unix) PHP/5.4.6
 +Last-Modified:​ Mon, 11 Jun 2007 18:53:14 GMT
 +ETag: "​2d-432a5e4a73a80"​
 +Accept-Ranges:​ bytes
 +Content-Length:​ 45
 +Connection: close
 +Content-Type:​ text/html
 +
 +Connection closed by foreign host.
 +</​sxh>​
 +
 +Como pode ser notado o nosso Apache já esta reconhecendo a instalação do PHP na versão 5.4.0
 +
 +Agora vamos criar um arquivo para verificar a configuração do nosso php
 +<sxh php>
 +vim /​usr/​local/​apache2/​htdocs/​phpinfo.php
 +<?php
 +phpinfo();
 +?>
 +</​sxh>​
 +
 +Agora podemos acessar em http://​ip_servidor/​phpinfo.php
 +
 +Agora vamos copiar o arquivo que controla o serviço do apache para o /etc/init.d
 +<sxh bash>
 +
 +cp /​usr/​local/​apache2/​bin/​apachectl /​etc/​init.d/​apache
 +</​sxh>​
 +
 +Agora vamos acertar o script para inicializar o nosso apache junto com o SO, deixe o inicio do arquivo como abaixo.
 +<sxh bash>
 +
 +vim /​etc/​init.d/​apache
 +#!/bin/sh
 +### BEGIN INIT INFO
 +# Provides: ​            ​apache
 +# Required-Start: ​      ​$remote_fs $syslog
 +# Required-Stop: ​       $remote_fs $syslog
 +# Default-Start: ​       2 3 4 5
 +# Default-Stop: ​        
 +# Short-Description: ​   Apache
 +### END INIT INFO
 +[...]
 +</​sxh>​
 +
 +Agora vamos inserir o script na inicialização do sistema
 +<sxh bash>
 +insserv -f -v apache
 +</​sxh>​
 +
 +Para testar reinicie o servidor e verifique se o serviço foi inicializado.
 +
 +Agora vamos copiar os arquivos dos binários do apache e do php para o /​usr/​local/​bin
 +<sxh bash>
 +
 +cp -a /​usr/​local/​apache2/​php/​bin/​* /​usr/​local/​bin
 +cp -a /​usr/​local/​apache2/​bin/​* /​usr/​local/​bin
 +</​sxh>​
 +
 +Pronto o nosso Apache e PHP está instalado e funcionado vamos fazer um upgrade do pear para testar
 +<sxh bash>
 +
 +pear upgrade
 +</​sxh>​
 +
 +Agora é só acessar http://​ip_servidor/​phpinfo.php
 +
 +====== Referências ======
 +
 +  - http://​httpd.apache.org/​download.cgi#​apache24
 +  - http://​httpd.apache.org/​docs/​2.4/​
 +  - http://​br.php.net/​downloads.php
 +  - http://​br.php.net/​docs.php
 +  - http://​www.eu.apache.org/​dist/​httpd/​CHANGES_2.4
 +  - http://​httpd.apache.org/​docs/​2.4/​new_features_2_4.html