Aplicativos em PHP/Instalação e configurações do ambiente/Via Xampp

O que é o Xampp?

O Xampp é um utilitário que instala o Apache, PHP (PEAR e PECL), MySQL, Perl, phpMyAdmin, proFtpd e outros. Atualmente se encontra na versão XAMPP 1.6.2 para o windows e já vem configurado com:

  • MySQL 5.0.41
  • PHP 5.2.2
  • PHP 4.4.7
  • phpMyAdmin 2.10.1
  • e muito mais

Sistemas Operacionais Suportados

Tem versões para Linux, Windows e outros SOs.


Utilitários

Traz ainda em sua index (http://127.0.0.1) um menu com a relação dos seus utilitários e alguns exemplos em php e perl. Este menu é facilmente incrementado ao se editar os arquivos .inc em:

C:\Arquivos de programas\xampp\HTDOCS\xampp.

Instalação

Faça o download do site oficial de acordo com o seu sistema (http://xampp.sf.net) ou se preferir em português do Brasil: http://www.apachefriends.org/pt_br/xampp.html

No Windows

Execute o instalador

Diretório web default = C:\Arquivos de programas\xampp\HTDOCS

php.ini - C:\Arquivos de programas\xampp\apache\bin

httpd.conf - C:\Arquivos de programas\xampp\apache\conf


No Linux

Descompacte em /opt com

tar zxpvf xampp.*.tar.gz -C /opt


Diretório web - /opt/lampp/htdocs

php.ini e httpd.conf - /opt/lampp/etc

ATENÇÃO: Não esqueça de, após instalar o xampp, mudar as senhas default do apache, mysql e do próprio xampp. Ignorando este aviso, o xampp ficaria perigosamente exposto à invasões ou afins. (para mais informações de como proceder para mudar as senhas, vide a seção abaixo - Tornando o xampp mais seguro)

Usando o Xampp

No windows o executável abre um menu onde podemos executar os serviços separadamente. Após executar um ícone fica na barra de tarefas, o que facilita o gerenciamento.


No Linux – execute o arquivo "/opt/lampp/lampp serviço ação", onde:

serviço – um dos serviços disponíveis (httpd, mysql, etc)

ação – start, stop, status

/opt/lampp/lampp start (inicia todos os serviços disponíveis)

Configurando o Servidor de FTP (proFtpd)

editar /opt/lampp/etc/proftpd.conf e alterar usuário, senha e diretório a gosto

O diretório default é o /opt/lampp/htdocs

Sugestão: criar dentro do htdocs um sub com nome ftp.


A senha do proftpd não pode ser trocada manualmente, pois é criptografada.

Para trocar devemos usar o security:

/opt/lampp/lampp security


Dica: Se você não quiser ter que digitar o caminho completo (/opt/lampp/lampp start) sempre que quiser lançar o servidor xampp, você pode criar um link para o executável no "path" do seu sistema com um simples:

$ sudo ln -s /opt/lampp/lampp /usr/local/bin/lampp

Com isso, um

$ sudo lampp start

bastará para lançar o servidor.

Testando PHP

Tanto no windows quanto no linux, startar o apache e abrir o browser apontando para http://localhost ou http://127.0.0.1

Se tudo correu bem verá a index do Xampp com todos os seus recursos,onde poderá inclusive optar pelo idioma Português do Brasil.


Instalar PostgreSQL e integrar com PHP

Download do site oficial (http://www.postgresql.org), escolhendo pelo sistema operacional.


Instalação

Windows – execute o instalador

Linux – Para distribuições com instalação de binários fica mais fácil

Instalar dos fontes. Apenas descompacte e leia o arquivo INSTALL, onde encontrará passos resumidos para a instalação.


Configuração

Para configurar que máquinas terão acesso ao postgresql edite o arquivo pg_hba.conf, que fica no subdiretório data do postgresql.

Configure acesso via TCP/IP no arquivo postgresql.conf que fica no mesmo diretório do pg_hba.conf (em algumas distribuições fica no /etc/postgresql).


Integrando com PHP

No Windows descomente a linha com “extension=php_pgsql.dll” no php.ini e restarte o apache. No Linux o suporte já vem habilitado por default.


Tornando o Xampp mais Seguro

Usando o Security do Xampp

No Linux - Abra a interface web (127.0.0.1)

- Clique no link Segurança à esquerda e leia as instruções

- Para ativar a segurança execute como super usuário:


/opt/lampp/lampp security


E ative tudo que desejar.

Após isso, para acessar o phpMyAdmin de forma mais confortável, edite o arquivo:

/opt/lampp/lib/xampp.users e alterar o nome do user default de "lamp" para o seu.


Então ao acessar entre com seu usuário e senha (a que cadastrou ao adicionar a segurança no Xampp para acessar o sistema de arquivos) e logo em seguida entre com root e senha (do banco).


No Windows

Ao abrir o Xampp no Windows e clicar no link Segurança ele não abre reclamando de um arquivo.

Então copie o seguinte arquivo:

c:\arquivos de programas\xampp\htdocs\xampp\lang\pt_br.php

Copie para:

c:\arquivos de programas\xampp\security\htdocs\lang

Pronto. Agora o link funciona.

Adicionando senha ao MySQL e phpMyAdmin

Caso pretendamos apenas adicionar senha ao MySQL e deixar o Xampp e PHP como estão...

O MYSQL inicia sem senha para o usuário "root". No PHP você pode conectar ao MYSQL através do comando: mysql_connect("localhost","root",""); Se você quiser atribuir uma senha para o usuário "root" no MYSQL, por favor, use o comando "mysqladmin" no console. Por exemplo:

\...\xampp\mysql\bin\mysqladmin -u root password secret

Atenção: Depois de alterar a senha do usuário "root", não esqueça de configurar o PHPMyAdmin. Procure o arquivo "config.inc.php" em \...\xampp\phpmyadmin\ e edite as seguintes linhas:

$cfg['Servers'][$i]['user'] = 'root'; // MySQL SuperUser $cfg['Servers'][$i]['auth_type'] = 'http'; // HTTP MySQL authentification

Agora a senha correta para o usuário "root" é requisitada, antes do PHPMyAdmin iniciar.

Obs.: Apenas copiei e colei da ótima FAQ do Xampp em pt-br (http://www.apachefriends.org/pt_br/xampp-windows.html).


Mudando o DocumentRoot

Em algumas vezes é mais cômodo ou então mais seguro alterar o diretório default do DocumentRoot do Apache. Neste caso, para o Linux proceder da seguinte forma:

Mude o caminho para /home/ribafs:

- Acesse o terminal

- sudo gedit /opt/lampp/etc/httpd.conf

- Tecle Ctrl+F para localizar "htdocs"

- Troque as duas ocorrências com htdocs para "/home/ribafs/htdocs"

- Crie a pasta: md /home/ribafs/htdocs


- Então no terminal novamente execute:

sudo cp -Ra /opt/lampp/htdocs /home/ribafs/htdocs

- Mude as permissões para o usuário "ribafs" assim:

sudo chown -R ribafs:ribafs /home/ribafs/htdocs

sudo chmod -R 705 /home/ribafs/htdocs


Então

cd /home/ribafs/htdocs/xampp

chmod 777 lang.tmp


Adicionando Domínio Virtual no Apache com Xampp

Mesmo estando usando o PHP localmente podemos ter um outro domínio ou subdomínio. Quando instalamos o PHP via Xampp localmente, nós temos o IP 127.0.0.1 ou o nome localhost, de forma que abrimos no navegador com http://127.0.0.1 ou http://localhost. Podemos também ter localmente um site que abre em outro endereço como, por exemplo, http://ribafs.localhost. Como realizar isso?

Os passos seguintes são um resumo do turotial:

Preparando o terreno para o desenvolvimento em php com o Xampp no Ubuntu


- Edite o seu /etc/hosts e adicione a linha:

-- 127.0.0.1 ribafs.localhost


- Edite o /opt/lampp/etc/httpd.conf e descomente a linha:

-- Include etc/extra/httpd-vhosts.conf


- Edite o /opt/lampp/etc/extra/httpd-vhosts.conf e insira o trecho de código:

<VirtualHost *:80>
DocumentRoot /home/ribafs/htdocs/ribafssite
ServerName ribafs.localhost
ErrorLog logs/ribafs.localhost-error_log
CustomLog logs/ribafs.localhost-access_log common
</VirtualHost>

Lembre de preservar o trecho do localhost:

<VirtualHost *:80>
ServerAdmin ribafs@yahoo.com
DocumentRoot /home/ribafs/htdocs
ServerName localhost
ErrorLog logs/localhost-error_log
CustomLog logs/localhost-access_log common
</VirtualHost>

Então reinicie o Apache.

Agora você tem um domínio virtual chamado ribafs.localhost, que inclusive atende via ping ribafs.localhost e pode ser chamado pelo navegador:

http://ribafs.localhost

No diretório indicado em DocumentRoot /home/ribafs/htdocs/ribafssite podemos adicionar o conteúdo de outro site.


Configurando o Servidor de FTP (FileZilla) no Xampp (Windows)


Configurações Iniciais

editar

- Executar o xampp-control.exe

- Clicar no botão Svc à esquerda (para ativar como serviço)

- Clicar em Sim para Install Service

- Clicar em Sim para Autostart Service e Start Service

- À esquerda do botão Stop clicar no botão Admin

- Em termos de segurança é recomendado alterar a porta default

- Adicione uma senha para Administração

- Marque "Always connect to this server"


- Abre então o painel de administração do FileZilla


Vamos criar um grupo e um usuário com acesso a um determinado diretório:


Criar um Grupo

- Clique no ícone com as duas carinhas (group dialog)

- Com a Page General selecionada, em Groups clique em Add e entre com o nome do nosso grupo (restrito)

- Selecione agora a Page Shared Folder a abaixo clique em Add e selecione o diretório (d:\xampp\htdocs) que este grupo terá acesso

(Por precaução faça agora um backup de todo o conteúdo deste diretório)

- Observe que temos opções para controlar as permissões dos arquivos e diretórios em Files e Directories (Devemos dar as devidas permissões)

- Ao final clique no botão "Set as home dir" para que este diretório seja o diretório default quando o usuário se conectar

- Clique em OK


Criar um Usuário

- Clique no ícone com uma carinha (Accounts dialog)

- Com a Page General selecionada à direita clique em Add em Users

- Entre com o login do usuário e abaixo selecione o grupo "restrito" que criamos

- Clique no botão Password e entre com uma senha para o usuário

- Podemos controlar a quantidade de conexões deste usuário e também as conexões por IP

- Selecione a Page Shared Folder e selecione o diretório que este usuário terá acesso

- De forma semelhante selecione as devidas permissões e clique em "Set as home dir" para tornar o diretório default deste usuário

- Ao final clique em OK

- Após estar tudo configurado é recomendado desativar todos os usuários não usados, inclusive o anônimo


Cliente de FTP

Para acesso com um cliente, existe o próprio FileZilla:

http://downloads.sourceforge.net/filezilla/FileZilla_3.0.3_win32-setup.exe

Apache 2 comentado

httpd.conf todo comentado e com muitas boas dicas. Vale a pena conferir, quer tenha instalado com Xampp ou manualmente.

http://www.vivaolinux.com.br/conf/verConf.php?codigo=426


Suporte ao conjunto de caracteres da ISO-8859-1 direto no Apache (httpd.conf)

Gostaria de destacar o suporte ao nosso idioma como default nas linhas:

Basta adicionar estas linhas ao final do httpd.conf e reiniciar o apache. Ressalte-se que abaixo tem bem mais que apenas o suporte ao nosso conjunto de caracteres.

# Adicione essa linha para não ter problemas com acentuação
# mordecai 
AddDefaultCharset ISO-8859-1

AddCharset ISO-8859-1  .iso8859-1  .latin1
AddCharset ISO-8859-2  .iso8859-2  .latin2 .cen
AddCharset ISO-8859-3  .iso8859-3  .latin3
AddCharset ISO-8859-4  .iso8859-4  .latin4
AddCharset ISO-8859-5  .iso8859-5  .latin5 .cyr .iso-ru
AddCharset ISO-8859-6  .iso8859-6  .latin6 .arb
AddCharset ISO-8859-7  .iso8859-7  .latin7 .grk
AddCharset ISO-8859-8  .iso8859-8  .latin8 .heb
AddCharset ISO-8859-9  .iso8859-9  .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5        .Big5       .big5
AddCharset WINDOWS-1251 .cp-1251   .win-1251
AddCharset CP866       .cp866
AddCharset KOI8-r      .koi8-r .koi8-ru
AddCharset KOI8-ru     .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8       .utf8

AddCharset GB2312      .gb2312 .gb
AddCharset utf-7       .utf7
AddCharset utf-8       .utf8
AddCharset big5        .big5 .b5
AddCharset EUC-TW      .euc-tw
AddCharset EUC-JP      .euc-jp
AddCharset EUC-KR      .euc-kr
AddCharset shift_jis   .sjis

AddType application/x-tar .tgz
AddType application/x-httpd-php .php

AddHandler imap-file map

AddHandler type-map var

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully


Suporte ao conjunto de caracteres da ISO-8859-1 direto nos scripts

Caso não tenha acesso ao servidor ou queira dar suporte apenas a determinados scripts, utilize uma das linhas abaixo, dependendo da sua linguagem):

Dica encontrada em: http://forum.imasters.com.br/index.php?showtopic=173603

PHP - <?php header("Content-Type: text/html; charset=ISO-8859-1",true) ?>

ASP - <% Response.Charset="ISO-8859-1" %>

JSP - <%@ page contentType="text/html; charset=ISO-8859-1" %>

HTML/XML - <?xml version="1.0" encoding="UTF-8"?>