Instalação do PAP (PostgreSL, Apache2 e PHP7) no Debian Jessie

Instalação manual (em sua maioria) do PostgreSQL, Apache2 e PHP7 no Debian Jessie 64 bits.

[ Hits: 9.883 ]

Por: Buckminster em 24/03/2016


Conclusão



Obviamente que essas instalações todas podem ser feitas utilizando diretamente os gerenciadores de pacotes (apt-get e aptitude, no Debian), o que, a princípio, parece uma economia de tempo, mas penso que é o contrário. Gasta-se um pouco mais de tempo durante a instalação, mas economiza-se tempo depois caso der algum problema, e a economia de tempo nesse caso é enorme. Portanto, instalar manualmente (da forma como foi realizada) representa economia de tempo.

Poderia ser feita também instalando-se manualmente as dependências, mas daí sim representa uma perda de tempo, pois teria que procurar um a um os pacotes, baixá-los um a um e instalá-los um a um com o dpkg (no Debian).

Apesar de não ser muito fã de Gerenciadores de Pacotes, devo reconhecer que no caso da instalação de dependências representa agilidade e uma certa segurança.

Parâmetros de configuração do Apache 2:
  • --enable-file-cache :: habilita o arquivo de cache suportado pelo módulo mod_file_cache.
  • --enable-cache :: habilita o cache.
  • --enable-cache-disk :: habilita o cache de disco.
  • --enable-so :: habilita o módulo mod_so que permite que os módulos possam ser compilados como Dynamic Shared Objects (DSOs).
  • --enable-isapi :: habilita o módulo mod_isapi que dá suporte à API de extensões Internet Server extension.
  • --enable-session :: habilita o módulo mod_session. Os módulos de sessão fazem uso de cookies HTTP e como tal podem ser vítimas de ataques Cross Site Scripting. Esteja avisado dos riscos antes de ativar a funcionalidade de sessão no servidor.
  • --enable-ssl :: habilita o suporte ao SSL.
  • --enable-imagemap :: habilita o módulo de processamento aos arquivos .map. Mapas de imagem podem fornecer uma interface gráfica para um web site. Quando for clicado com o mouse em uma imagem de mapa, as coordenadas desse clique são enviadas para o servidor. O servidor pode decidir que página retornar com base na localização do clique.
  • --enable-rewrite :: O módulo mod_rewrite usa um motor de reescrita baseado em regras com base em parser de expressão regular PCRE para reescrever as URLs solicitadas. Por padrão o mod_rewrite mapeia uma URL para um caminho do sistema de arquivos. No entanto, também pode ser utilizado para redirecionar uma URL para outra URL ou para invocar um proxy interno.
  • --enable-alias :: As diretrizes contidas neste módulo permitem a manipulação e o controle das URLs assim como os pedidos que chegam ao servidor. As diretivas Alias e ScriptAlias são utilizadas para mapear URLs e caminhos de arquivos. Isso permite que o conteúdo que não está diretamente sob o DocumentRoot sirva como parte da árvore de documentos web. A diretiva ScriptAlias tem o efeito adicional de marcar o diretório de destino como contendo apenas scripts CGI.
  • --enable-cgi :: O CGI é um recurso que fornece uma interface de portabilidade entre linguagens diversas que fornecem conteúdo para a web de forma simples e transparente. Sua simplicidade torna o desenvolvimento mais fácil, pois não existe a necessidade de aprender uma nova linguagem de programação. É possivel até criar um programa em C++, compila-lo e utilizar sua saída para fornecer seus dados para a internet.
  • --enable-suexec=shared :: O recurso suEXEC fornece aos usuários do Apache a capacidade de executar programas CGI e SSI sob IDs de usuário diferentes da ID de usuário do servidor. Normalmente quando um programa CGI ou SSI é executado, ele é executado como o mesmo usuário do servidor web.
  • --with-suexec-caller=apache :: hablita o módulo chamador do suexec.
  • --enable-mods-shared=all :: Define uma lista de módulos dinâmicos compartilhados. Esses módulos tem que ser carregado dinamicamente usando a diretiva LoadModule.
  • --enable-auth-basic :: Este módulo permite o uso de autenticação básica HTTP para restringir o acesso dos usuários nos provedores de dados. Autenticação Digest HTTP é fornecida pelo mod_auth_digest. Este módulo deverá normalmente ser combinado com pelo menos um módulo de autenticação, tal como mod_authn_file e um módulo de autorização, tal como mod_authz_user.
  • --enable-authn-file :: Este módulo fornece autenticação front-end tais como mod_auth_digest e mod_auth_basic para autenticar usuários com senhas em texto puro. Funcionalidade semelhante é fornecida pelo mod_authn_dbm.
  • --enable-authnz-fcgi :: Este módulo permite que os aplicativos FastCGI autentiquem usuários e autorizem o acesso aos recursos. Ele suporta FastCGI genérico que participa de uma única fase para autenticação e autorização, bem como suporta autenticadores e autorizadores que participam em uma ou ambas as fases específicas do httpd.
  • --enable-mpms-shared=all :: O Multi-Processing Module (MPM) é projetado para permitir mais requisições simultâneas do servidor e permite que ele passe alguns trabalhos de processamento que suportam threads, liberando os principais tópicos para novos pedidos. Implementa multi-processos do servidor multi-threaded híbrido.
  • --enable-pie :: habilita o suporte à "Position Independent Executables". Arquivos executáveis podem ser carregados em locais não-fixos, tornando-os mais difíceis de serem explorados.
  • --disable-include :: Desativa o módulo fornecido pelo mod_include.
  • --enable-deflate :: O módulo mod_deflate fornece o filtro de saída que permite a compressão dos arquivos antes de serem enviados ao cliente através da rede.
  • --enable-headers :: Este módulo fornece diretrizes para controlar e modificar os cabeçalhos de resposta das solicitações HTTP. Os cabeçalhos podem ser mesclados, substituídos ou removidos.
  • --enable-expires :: Este módulo controla a configuração de expiração dos cabeçalhos HTTP e a diretiva máxima de vencimento do cabeçalho HTTP nas respostas do servidor. A data de vencimento pode definir-se em relação a um ou outro momento em que o arquivo de origem foi modificado pela última vez ou com o tempo de acesso do cliente.
  • --with-mpm=event :: vide: --enable-mpms-shared=all.
  • --enable-fcgid :: vide: --enable-authnz-fcgi.
  • --with-included-apr :: O projeto Apache Portable Runtime (APR) cria e mantém bibliotecas de software que fornecem uma interface previsível e consistente para implementações específicas da plataforma subjacente. O objetivo principal é fornecer uma API para que desenvolvedores de software possam codificar independentemente da plataforma em que seu software foi construído, aliviando-os da necessidade de codificar as condições especiais para contornar deficiências ou recursos específicos da plataforma.
  • --with-z=/usr/src/http-2.4.10/srclib/zlib-1.2.8 :: habilita a biblioteca de compressão ZLIB.

Parâmetros de configuração do PHP 5:
  • --enable-maintainer-zts :: habilita o suporte às threads
  • --with-apxs2=/opt/apache2/bin/apxs :: o apxs é uma ferramenta para a construção e instalação de módulos de extensão para o servidor HyperText Transfer Protocol (HTTP). É feita a construção de um objeto dinâmico partilhado (DSO) de um ou mais arquivos de origem ou de objetos que depois podem ser carregados no servidor Apache através da diretiva LoadModule do mod_ssl.
  • --with-pgsql=/usr :: indica o caminho de suporte ao PostgreSQL.
  • --with-pdo-pgsql=/usr :: indica o caminho de suporte ao PDO do PostgreSQL.
  • --with-xsl=/usr :: adiciona o pacote de suporte ao XSL indicando o caminho das bibliotecas.
  • --with-jpeg-dir=/usr :: adiciona o pacote de suporte à JPEG indicando o caminho das bibliotecas.
  • --with-png-dir=/usr :: adiciona o pacote de suporte à PNG indicando o caminho das bibliotecas.
  • --with-zlib-dir=/usr :: zlib é uma biblioteca multiplataforma de compressão de dados como uma generalização do algoritmo DEFLATE usado em seu programa de compressão de dados gzip.
  • --enable-mbstring :: habilita o suporte ao mbstring (Unicode library Standard) do PHP.
  • --with-pcre-dir :: Perl Compatible Regular Expressions, também conhecida pela sigla PCRE, é uma biblioteca escrita para linguagem C que implementa expressões regulares inspirada na interface externa do Perl.
  • --with-pear :: PEAR é uma biblioteca que possui vários recursos. Um dos mais utilizados é o PEAR DB, que é utilizado para abstração de banco de dados. É uma plataforma e um sistema de distribuição para a codificação de componentes em PHP.
  • --with-tsrm-pthreads :: habilita as threads padrão POSIX.
  • --enable-ftp :: ativa o suporte à FTP.
  • --enable-exif :: habilita o suporte a exif. (Exchangeable Image File Format) é uma especificação seguida por fabricantes de câmeras digitais que gravam informações sobre as condições técnicas de captura da imagem junto ao arquivo da imagem propriamente dita na forma de metadados etiquetados.
  • --enable-intl :: habilita as funções de internacionalização do PHP.
  • --enable-opcache :: habilita as extensões de cache do PHP.
  • --enable-pdo :: habilita o suporte à biblioteca PDO (PHP Data Object).
  • --enable-dtrace :: habilita o rastreamento do comportamento do sistema operacional e execução de programas dos usuários. Ele pode exibir valores de argumentos e ser usado para inferir estatísticas de desempenho.

Maiores informações:

No Apache e no PHP:

./configure --help

Ou:

Adendo

Instalar Google Chrome no Debian


Instalando as dependências:

# aptitude install gconf-service libgconf-2-4 libnspr4 libnss3 libpango1.0-0 libappindicator1 libcurl3 libxss1 fonts-liberation

Acessar a página e fazer o download:
Instalando:

# dpkg -i google-chrome-stable_current_amd64.deb

Instalar Netbeans

Fazer o download do Netbeans com o JDK embarcado:
Instalar:

# chmod +x jdk-8u73-nb-8_1-linux-x64.sh
# ./jdk-8u73-nb-8_1-linux-x64.sh


Instalar Eclipse

# aptitude install eclipse

Escolha entre Netbeans ou Eclipse; ou instale os dois.

Deixo para download, como sugestão, o php.ini e o httpd.conf usados aqui no desenvolvimento. Somente tenha o cuidado de alterar os endereços IPs para os do teu servidor onde forem necessários e se for colocar em produção não esqueça de desabilitar no php.ini os erros mostrados para o usuário.

Lembre-se: os arquivos são somente sugestões; o upload, por exemplo, no php.ini está configurado para arquivos com 3 MB no máximo.

Deixo também o pg_hba.conf e o postgresql.conf utilizados no servidor para acesso remoto, aconselho a melhorar a segurança deles.

Referências


Página anterior    

Páginas do artigo
   1. Introdução
   2. PostgreSQL
   3. Apache
   4. PHP
   5. Conclusão
Outros artigos deste autor

kernel Linux otimizado - Compilação e teste

Manual do IPtables - Comentários e sugestões de regras

Montagem de Cluster

Compilando kernel no Debian Squeeze

Como um monte de letras de um código fonte transforma-se em voltagens?

Leitura recomendada

Configurando Servidor de Nomes - DNS (Debian)

Passo-a-passo: Instalação de uma placa Wireless

Rsync sem senha

Monitoração com Zabbix no Debian Squeeze

Como instalar o driver da placa de vídeo SiS 771/671 no Ubuntu 18.04

  
Comentários
[1] Comentário enviado por danniel-lara em 24/03/2016 - 16:46h

Parabéns pelo artigo , muito bom mesmo

[2] Comentário enviado por Buckminster em 24/03/2016 - 17:33h


[1] Comentário enviado por danniel-lara em 24/03/2016 - 16:46h

Parabéns pelo artigo , muito bom mesmo


Obrigado Daniel.

[3] Comentário enviado por robsonpatrick em 27/03/2016 - 23:30h

Este tutorial foi de uma valia inenarrável, para eu que estou migrando do Windows para Debian isto ai encurtou muito essa minha transição. Muito muito obrigado
Funcionou tudo,
única coisa que faltou, que pode fazer diferença para um mais cabaço que eu, é liberar a extensão do pgsql no php.ini
para mim falhou mas não fez diferença na instalação do postgres wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add
não sei pq, e também não sei para que serve.

como eu tinha tentado outras coisas antes, na primeira vez não deu certo, ai desinstalei o debian, instalei novamente, configurei o putty, mandei ver no ctrl+c e click direto

configurei um usuário para postgres
depois instalei samba, configurei acesso htdocs, joguei minhas loucuras lá e rodou
show de bola

[4] Comentário enviado por robsonpatrick em 27/03/2016 - 23:35h

um adendo para clarear a comunicação
o postgresql funcionou, o que não funcionou foi uma instalação de uma Key

[5] Comentário enviado por Buckminster em 28/03/2016 - 12:57h


[4] Comentário enviado por robsonpatrick em 27/03/2016 - 23:35h

um adendo para clarear a comunicação
o postgresql funcionou, o que não funcionou foi uma instalação de uma Key


Obrigado. Realmente faltou a parte das extensões, mas era para ter junto com o artigo 4 arquivos para download (hpptd.conf, php.ini, pg_hba.conf e postgresql.conf).

Em relação à instalação da key, houve uma falha, o comando certo é:

# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - <<< aqui no final tem um sinal "-", de menos, um tracinho, um hífen.

A instalação dessa key é importante para as atualizações do PostgreSQL através do apt-get ou do aptitude.

Execute o comando de novo.

As minhas extensões estão assim aqui (cloquei em 'quote' porque o negrito não funcionou, ou eu que não soube fazer):

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll

;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll ; Must be after mbstring as it depends on it

;extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
extension=php_shmop.dll

[6] Comentário enviado por robsonpatrick em 29/03/2016 - 18:25h

Valeu mais uma vez!
Sou fã de caras como você!
As extensões estão um pouco diferente das que eu configurei para mim, vou dar uma estudada na diferenças...

Vi no seu perfil pelos posts e artigos, que você é o bichão mesmo do linux...

Eu sei que aqui não é o local certo, mas você me parece a pessoa certa,
para me esclarecer um pensamento que acompanha os "janeleiros"
Pessoal do Windows salva seus instaladores...
Já no Linux dependemos de repositórios que ficam em servidores mundo a fora, a qual outras pessoas podem decidir não compartilhar mais o software,
gostaria de saber se há como eu salvar meus instaladores,
caso sim,
se você tiver um artigo para indicar eu agradeço (se não tiver não tem problema eu procuro, você já ajudou muito)

Valeu!

[7] Comentário enviado por Buckminster em 30/03/2016 - 17:05h

robsonpatrick;
bom, como tu usa Debian tu podes baixar os pacotes desejados e salvá-los na máquina para instalação posterior ou guardar os instaladores como tu quer, isso pode ser feito em qualquer distribuição.

https://www.debian.org/distrib/packages.pt.html

https://packages.debian.org/stable/

São pacotes .deb que depois tu instala com o dpkg.

E tu podes usar o parâmetro -d que ele somente baixa o pacote para instalação posterior. Com isso tu podes fazer uma pasta de backups.

# apt-get -d install pacote <<< -d de Download-only, apenas download.

Veja aqui a página do man do apt-get ou digite no terminal man apt-get:

http://linux.die.net/man/8/apt-get

Mas é difícil os repósitórios do Debian sairem do ar, somente se o Debian deixar de existir, daí não fará diferença.

[8] Comentário enviado por robsonpatrick em 31/03/2016 - 07:29h

Maneiro!
Muito obrigado mais uma vez Buckminster!



[9] Comentário enviado por Buckminster em 31/03/2016 - 16:57h


[8] Comentário enviado por robsonpatrick em 31/03/2016 - 07:29h

Maneiro!
Muito obrigado mais uma vez Buckminster!

De nada.


[10] Comentário enviado por robsonpatrick em 08/04/2016 - 12:39h

Pra fazer uns cortes automáticos em imagens no php é preciso instalar o php7.0-gd
que consegui fazendo estes passos:

Acrescente as seguintes linhas ao final do arquivo /etc/apt/sources.list:
# dotdeb PHP7 repositórios
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

Vamos à configuração da chave gpg…
wget https://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg

sudo apt-get update
sudo aptitude install php7.0-gd

instalou, e mesmo descomentando extension=php_gd2.dll
não funcionou :-P
os passo peguei desta fonte:
http://elias.praciano.com/2015/11/como-instalar-o-php-7-0-no-ubuntu-14-04-e-no-debian-8/

se vc quiser mais este desafio posso passar os codigos por email
o erro que vai aparecer é call to undefined function imagecreatefromjpeg()



[11] Comentário enviado por Buckminster em 08/04/2016 - 22:36h

Faça um teste, use imagecreatetruecolor em vez de imagecreatefromjpeg e poste aqui se acontecer algum erro.
Não esqueça de reiniciar o Apache.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts