Configurando sites, um para cada porta no apache2

Para que seja possivel um DOcumentRoot para cada sistema, utilizar servidores virtuais configurados no ports.conf:

Temos dois sistemas em portas diferentes:

Listen 80
Listen 4563
Listen 3000 

NameVirtualHost *:80
NameVirtualHost *:4563
NameVirtualHost *:3000

<VirtualHost *:4563>
    ServerName http://www.example80.com
    DocumentRoot /home/xyz/php/ra
</VirtualHost> <

VirtualHost *:3000>
    ServerName http://www.example80.com    
DocumentRoot /home/xyz/php/ra2
</VirtualHost>

XAMPP no Windows – PHP, Apache, MySQL

Para instalar facilmente o ambiente de programação PHP, basta instalar o XAMPP.

Depois configurar o arquivo httpd.conf, ajustando o parâmetro DocumentRoot para C:/Fontes/aplicacao e tambem o Directory para C:/Fontes/aplicacao.

Depois de instalar o Oracle, ativar no php.ini, a diretiva extension=php_oci8.dll.

Pronto.

Ajustando NLS_LANG para formato de Data no PHP-Apache-Oracle

Para que a data fique na forma personalizada do Brasil, ajustar a variavel NLS_LANG no script que inicializa o apache.

vi /etc/init.d/apache2
export NLS_LANG=”BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1″

Dependendo da versão do apache pode ser necessário alterar o envvars
vi /etc/apache2/envvars
export NLS_LANG=”BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1″

No windows o NLS_LANG fica dentro do “regedit”, ou tambem pode ser colocado nas varáveis de ambiente.

Protegendo servidor Apache

Referencia: Dicas de TI

O objetivo deste post é mostrar como proteger as informações confidenciais (ex: login/senha) das aplicações WEB que rodam na sua intranet. Não é necessário comprar um Certificado (ex: verisign.com ou godaddy.com), basta instruir os usuários de como proceder na primeira conexão.

Pré-requisitos:

Sistema Operacional Linux (não testei em outros sistemas), Apache 2 com mod_ssl, OpenSSL e Mod Rewrite…

Passo1: Geração do certificado

Neste passo dois arquivos serão gerados (.key e o .csr).  Cuide MUITO BEM deste arquivo .key, ele é a chave privada da segurança do seu servidor. Coloque permissão somente leirura para o usuário root (chmod 400 dominio.com.key). Já o arquivo CSR (Certificate Signing Reques), contém as informações do certificado (Empresa, Estado, etc.) e, também, a chave pública do certificado.

# openssl req -nodes -newkey rsa:2048 -keyout dominio.com.key -out  dominio.com.csr

A partir dos arquivos gerados, será criado o arquivo do certificado dominio.com.crt:

# openssl x509 -in cdominio.com.csr -out dominio.com.crt -req -signkeydominio.com.key -days 365

Pronto, seu certificado está gerado!!!

Passo 2: Configuração do apache

É necessário configurar o certificado gerado para o domínio virtual em questão. Dentro do <VirtualHost *:443> (ou algo semelhante),  adicione a configuração do certificado:

SSLEngine  on
SSLCertificateFile /root/certificados/dominio.com.crt
SSLCertificateKeyFile /root/certificados/dominio.com.key

Verifique as configuracoes com o comando apache2ctl configtest e depois reinicie o servidor. Pronto, você já pode testar:

https://dominio.com

Passo 3: Obrigar conexão segura (HTTPS) para acessar algumas URIs

Muitas vezes você não quer que todo o site fique protegido. Para estes e outros casos, você pode utilizar o mod_rewrite do apache. Vamos para uma configuração simples do apache para as necessidades (por exemplo) do wordpress.

Neste caso, você quer que os usuários acessem o blog utilizando uma conexão normal (não criptografada), porém, ao acessar a área privada, o usuário é obrigado a acessar por via segura (https), protegendo seus dados.

Relembrando, a configuraçao do domínio virtual tem duas entradas, uma para a porta 80 (<VirtualHost *:80> e outra para a porta padrão doHTTPS, a 443 (<VirtualHost *:443>). Precisamos fazer duas configurações: A primeira, deve fazer com que sempre que um usuário acessar wp-admin ou wp-login seja remetido para uma conexão segura. Isso será feiro na porta 80. A segunda configuração, por sua vez, deve ser configurada na porta 443, onde obrigamos o usuário acesssar as páginas não-privadas utilizando uma conexão HTTP normal, não criptografada. Seguem as duas configurações:

<VirtualHost *:80>

ServerName dominio.com

rewriteEngine On
rewriteRule ^/(.*)(wp-admin|wp-login)(.*)$ https://dominio.com/$1$2$3 [R=301,L]
</VirtualHost>

<VirtualHost *:80>

ServerName dominio.com

SSLEngine  on
SSLCertificateFile /root/certificados/dominio.com.crt

SSLCertificateKeyFile /root/certificados/dominio.com.key

rewriteEngine On
rewriteCond %{REQUEST_URI} !^/(.*)(wp-admin|wp-login)(.*)|(.*\.js.*)|(.*\.css.*)$
rewriteRule ^/(.*)$ http://dominio.com/$1 [R=301,L]
</VirtualHost>

Pronto, seu servidor está configurado para aceitar conexoes seguras e forçar com que os usuários utilizem o HTTPS somente nos locais que você definir.

Configurando Apache2

Toda configuração está no diretorio /etc/apache2.

Para ativar o PHP, linkar o /etc/apache2/mods-available/php5 no mods-enabled usando o comando ln -s.

Para criar novo diretorio disponivel copiar o default no sites-available e usar o comando a2dissite para remover o default do sistes-enabled e o comando a2ensite para criar o link para o novo site. Ou alterar o default mesmo.

Para php5 com erro usar o aptitude purge em todos os pacotes que o dpkg -l |egrep ^php5 mostrar. Tambem usar o sudo aptitude purge apache2.2-common.

Para diretorio que não consegue acesso usar o chmod 755 no diretorio.

Usar o default do sites-available para criar novos sites.