E assim chegamos ao final dessa jornada, após essa montoeira de comandos digitados. O cara fortalece os dedos digitando, são os ossos do ofício.
systemd
Com o aparecimento de computadores com múltiplas CPUs e com espera de rede se tornando um problema, foi inventado um sistema de paralelizar a execução dos scripts de inicialização, o que trouxe consigo a enorme complexidade de ter que estabelecer dependências entre os scripts para garantir que sejam executados em paralelo.
O systemd é criação de Lennart Poettering, que é funcionário da Red Hat e contribuidor do Fedora. Uma das primeiras funcionalidades trazidas pelo Systemd, foi exatamente o uso de Control Groups. Cada serviço iniciado pelo systemd fica dentro de um
cgroup próprio, o que significa, por exemplo, que todos os processos criados por um serviço podem ser terminados com certeza quando o serviço for parado. Também significa que, apesar de o Apache estar consumindo muita CPU ou memória, o servidor SSH ainda tem tempo suficiente da CPU para aceitar a conexão e tratar do problema, pois o
Linux tenta ser justo com os diferentes
cgroups.
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-lua=shared :: Este módulo permite que o servidor entenda scripts escritos na linguagem de programação Lua.
- --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:
- --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.
- --with-fpm-systemd :: integra o PHP ao Systemd.
- --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).
Maiores informações:
No Apache e no PHP:
./configure --help
Ou:
E:
Para aprender a criar usuários no Postgres:
Referências