WHM sumiu com meus ips adicionados anteriormente e ao tentar adicionar novamente aparece a mensagem is already…

Standard

Calma, sem problemas.
Se conseguir entre como root e rode o seguinte comando:

 

/etc/rc.d/init.d/ipaliases restart

Depois veja no whm se os ips voltaram, caso ainda assim não tenha retornado rode
chkconfig --list ipaliases

Verifique também (caso os comando acima não sanem seu problema) os arquivos:

/etc/ips e /etc/ipaddrpool

Abraços.

 

FIAT + FIORI – UMA PARCERIA DE BABACAS FOREVER ALONE

Standard

A concessionária Fiori, revendedora da linha Fiat em João Pessoa, comercializou em dezembro de 2011 um veículo ‘Novo Palio’, modelo 2012, de placas OFB-7139-PB, com falhas ao cliente José Fernando Santos de Carvalho.

De acordo com o comprador, dois dias após a aquisição do veículo, começaram os intermináveis problemas. Inicialmente, o veículo não deu partida, ou seja, quando a chave de ignição era acionada, o painel não acendia e o carro não ligava o motor.

Indignação
“Procurei a Fiori para solucionar o problema e ‘eles’ (Fiori) não detectaram nenhuma anomalia, informando que o carro estava em perfeitas condições de uso. No entanto, o problema persistiu e eu retornei diversas vezes na concessionária para relatar a mesma anomalia, além de outros tantos, como um alarme de velocidade excedida sem que o veículo estivesse em tal condição. Houve travamento de porta-malas, ponteiro pulando, computador de bordo todo sem regulagem, entre outros problemas”, disse José Fernando.

Medo
O consumidor prejudicado teme pela sua vida e da sua família. Ele revelou que por conta de sua vida profissional, necessita  viajar constantemente. “Eu não posso nem me arriscar, pois não confio mais no Palio que adquiri na Fiori. Vou procurar meus direitos e tenho fé que tudo será resolvido”, desabafou José Fernando.

O outro lado

A reportagem do Paraíba Já entrou em contato com a Fiori, pelo 3208-1512, porém, a ligação passou por diversos ramais e acabou sendo desligada.

Paraíba Já

 

 

=============

 

http://paraibaja.com.br/?p=noticia_int&id=19509

 

Defeito de fábrica em Novo Palio 2012 e o descaso da FIAT

Nos ultimos 3 meses e meio, tenho retornado à Concessionária Fiat varias vezes. O fato é que comprei um carro(NOVO PALIO 2012) com anomalias, que eles nao conseguem resolver. Eles alegam: “O carro está em perfeitas condicoes de uso”.

Pasmem, ja experimentei porta-malas eletrico travado(no dia que ia viajar para ser padrinho de casamento), computador de bordo informando problemas no motor, dificuldades pra ligar o carro, ponteiro do velocimetro “PULANDO”, cortes na ingestão de combustível enquanto em movimento, controle das portas não respondendo e outras falhas na entrega do produto(direção desalinhada, risco no painel, peças alteradas).

Eu ja não aguento mais relatar o problema a empresa ou ficar vários dias à pés, por deixar o carro na Concessionária. Passo por diversos transtornos e incovenientes.

Tenho um filho de 1 ano. Todo pai sabe que “é lei”, chegar em casa e dar uma voltar na rua com o bebe pra ele nao chorar.Ficar se o unico carro da familia é MUITO PROBLEMATICO.

Faço viagems constantes à refice-PE, devido ao meu mestrado na UFPE e tenho MEDO DA INTEGRIDADE FISICA DA MINHA FAMILIA.

Sugiro que NÃO COMPREM VEICULOS FIAT, É JOGAR DADOS COM A SORTE. se o carro sair bem, ok, senão, vc ESTARÁ NO PREJUIZO (FATO).

 

Lamp2: Ubuntu 10.04 APACHE 2 Mysql 5 PHP 5 phpmyadmin (lucid lynx)

Standard

Boa noite ALL, é com muita alegria que informo:

Meu PC está com o Lucid Lynx (Ubuntu 10.4).
Este How to que preparei hoje vai ensinar como montar um ambiente de desenvolvimento web para aplicações php que utilizam-se do container apache e do banco de dados mysql.
Um ambiente LAMP2 (apache 2 mysql 5 php 5 e phpmyadmin) é fundamental para quem desenvolve e deseja testar sua app antes de envia-la para web, sem mais, vamos aos passos:

1 – Clique em Aplicativos->Acessórios->Terminal
2 – rode o comando: sudo apt-get install apache2
Este comando serve para instalar o apache 2.
A saída deste comando deverá ser semelhante a esta:

Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
Os pacotes extra a seguir serão instalados:
apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
Pacotes sugeridos:
apache2-doc apache2-suexec apache2-suexec-custom
Os NOVOS pacotes a seguir serão instalados:
apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
0 pacotes atualizados, 9 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso baixar 3328kB de arquivos.
Depois desta operação, 10,1MB adicionais de espaço em disco serão usados.
Você quer continuar [S/n]? S
0% [Aguardando por cabeçalhos]
Obter:1 http://br.archive.ubuntu.com/ubuntu/ lucid/main libapr1 1.3.8-1build1 [116kB]
Obter:2 http://br.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1 1.3.9+dfsg-3build1 [85,4kB]
Obter:3 http://br.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1-dbd-sqlite3 1.3.9+dfsg-3build1 [27,1kB]
Obter:4 http://br.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1-ldap 1.3.9+dfsg-3build1 [25,1kB]
Obter:5 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2.2-bin 2.2.14-5ubuntu8 [2622kB]
Obter:6 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2-utils 2.2.14-5ubuntu8 [159kB]
Obter:7 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2.2-common 2.2.14-5ubuntu8 [290kB]
Obter:8 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2-mpm-worker 2.2.14-5ubuntu8 [2364B]
Obter:9 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2 2.2.14-5ubuntu8 [1482B]
Baixados 3328kB em 40s (81,4kB/s)
Selecionando pacote previamente não selecionado libapr1.
(Lendo banco de dados … 148327 arquivos e diretórios atualmente instalados).
Desempacotando libapr1 (de …/libapr1_1.3.8-1build1_i386.deb) …
Selecionando pacote previamente não selecionado libaprutil1.
Desempacotando libaprutil1 (de …/libaprutil1_1.3.9+dfsg-3build1_i386.deb) …
Selecionando pacote previamente não selecionado libaprutil1-dbd-sqlite3.
Desempacotando libaprutil1-dbd-sqlite3 (de …/libaprutil1-dbd-sqlite3_1.3.9+dfsg-3build1_i386.deb) …
Selecionando pacote previamente não selecionado libaprutil1-ldap.
Desempacotando libaprutil1-ldap (de …/libaprutil1-ldap_1.3.9+dfsg-3build1_i386.deb) …
Selecionando pacote previamente não selecionado apache2.2-bin.
Desempacotando apache2.2-bin (de …/apache2.2-bin_2.2.14-5ubuntu8_i386.deb) …
Selecionando pacote previamente não selecionado apache2-utils.
Desempacotando apache2-utils (de …/apache2-utils_2.2.14-5ubuntu8_i386.deb) …
Selecionando pacote previamente não selecionado apache2.2-common.
Desempacotando apache2.2-common (de …/apache2.2-common_2.2.14-5ubuntu8_i386.deb) …
Selecionando pacote previamente não selecionado apache2-mpm-worker.
Desempacotando apache2-mpm-worker (de …/apache2-mpm-worker_2.2.14-5ubuntu8_i386.deb) …
Selecionando pacote previamente não selecionado apache2.
Desempacotando apache2 (de …/apache2_2.2.14-5ubuntu8_i386.deb) …
Processando gatilhos para man-db …
Processando gatilhos para ufw …
Processando gatilhos para ureadahead …
ureadahead will be reprofiled on next reboot
Configurando libapr1 (1.3.8-1build1) …

Configurando libaprutil1 (1.3.9+dfsg-3build1) …

Configurando libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3build1) …
Configurando libaprutil1-ldap (1.3.9+dfsg-3build1) …
Configurando apache2.2-bin (2.2.14-5ubuntu8) …
Configurando apache2-utils (2.2.14-5ubuntu8) …
Configurando apache2.2-common (2.2.14-5ubuntu8) …
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module status.
Enabling module auth_basic.
Enabling module deflate.
Enabling module authz_default.
Enabling module authz_user.
Enabling module authz_groupfile.
Enabling module authn_file.
Enabling module authz_host.
Enabling module reqtimeout.

Configurando apache2-mpm-worker (2.2.14-5ubuntu8) …
* Starting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Configurando apache2 (2.2.14-5ubuntu8) …

Processando gatilhos para libc-bin …
ldconfig deferred processing now taking place

Ressalto que usei o gestor de pacotes e habilitei o suporte a pacotes instáveis e também o repositório partner (mais abaixo posto como fazer).

Ainda no console use o comando abaixo:

sudo apt-get install php5 libapache2-mod-php5
Isto servirá para instalar o php5 e ainda integra-lo como DSO no apache (como módulo).
A saída deste comando será semelhante a esta:

Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
Os pacotes extra a seguir serão instalados:
apache2-mpm-prefork php5-common
Pacotes sugeridos:
php-pear php5-suhosin
Os pacotes a seguir serão REMOVIDOS:
apache2-mpm-worker
Os NOVOS pacotes a seguir serão instalados:
apache2-mpm-prefork libapache2-mod-php5 php5 php5-common
0 pacotes atualizados, 4 pacotes novos instalados, 1 a serem removidos e 0 não atualizados.
É preciso baixar 3376kB de arquivos.
Depois desta operação, 8790kB adicionais de espaço em disco serão usados.
Você quer continuar [S/n]? S
Obter:1 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2-mpm-prefork 2.2.14-5ubuntu8 [2422B]
Obter:2 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main php5-common 5.3.2-1ubuntu4.1 [541kB]
Obter:3 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main libapache2-mod-php5 5.3.2-1ubuntu4.1 [2831kB]
Obter:4 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main php5 5.3.2-1ubuntu4.1 [1114B]
Baixados 3376kB em 8s (389kB/s)
dpkg: apache2-mpm-worker: problemas de dependência, mas removendo assim mesmo conforme pedido:
apache2 depende de apache2-mpm-worker (= 2.2.14-5ubuntu8) | apache2-mpm-prefork (= 2.2.14-5ubuntu8) | apache2-mpm-event (= 2.2.14-5ubuntu8) | apache2-mpm-itk (= 2.2.14-5ubuntu8); porém:
Pacote apache2-mpm-worker está para ser removido.
Pacote apache2-mpm-prefork não está instalado.
Pacote apache2-mpm-event não está instalado.
Pacote apache2-mpm-itk não está instalado.
(Lendo banco de dados … 148902 arquivos e diretórios atualmente instalados).
Removendo apache2-mpm-worker …
* Stopping web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
… waiting [ OK ]
Selecionando pacote previamente não selecionado apache2-mpm-prefork.
(Lendo banco de dados … 148895 arquivos e diretórios atualmente instalados).
Desempacotando apache2-mpm-prefork (de …/apache2-mpm-prefork_2.2.14-5ubuntu8_i386.deb) …
Selecionando pacote previamente não selecionado php5-common.
Desempacotando php5-common (de …/php5-common_5.3.2-1ubuntu4.1_i386.deb) …
Selecionando pacote previamente não selecionado libapache2-mod-php5.
Desempacotando libapache2-mod-php5 (de …/libapache2-mod-php5_5.3.2-1ubuntu4.1_i386.deb) …
Selecionando pacote previamente não selecionado php5.
Desempacotando php5 (de …/php5_5.3.2-1ubuntu4.1_all.deb) …
Configurando apache2-mpm-prefork (2.2.14-5ubuntu8) …
* Starting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Configurando php5-common (5.3.2-1ubuntu4.1) …
Configurando libapache2-mod-php5 (5.3.2-1ubuntu4.1) …

Creating config file /etc/php5/apache2/php.ini with new version
* Reloading web server config apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Configurando php5 (5.3.2-1ubuntu4.1) …

Já que estamos na metade do caminho o ideal seria dar um restart no apache para garantir que ele leu seu conf.
Use o comando:

sudo /etc/init.d/apache2 restart

A saída deverá ser parecida com:

* Restarting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
… waiting apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Para garantir que o apache está interpretando códigos php (fazendo uso do interpretador como módulo) podemos editar um arquivo e testa-lo. use o comando abaixo:

sudo vi /var/www/index.php

Dentro deste arquivo informe:

escreva : e depois escreva wq! e pressione enter, ficando algo como :wq! , você salvará o arquivo e sairá do vi.
Feito isto acesse o arquivo para ver se a mensagem nerdblog é 10 aparece, caso sim, sucesso total! Do contrário releia este manual!
Este teste pode ser feito em http://localhost/index.php

Para instalar o mysql como servidor de banco de dados devemos usar o seguinte comando:
sudo apt-get install mysql-server
A saída deste comando deverá assemelhar-se com:

Obter:1 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-common 5.1.41-3ubuntu12 [97,1kB]
Obter:2 http://br.archive.ubuntu.com/ubuntu/ lucid/main libnet-daemon-perl 0.43-1 [46,9kB]
Obter:3 http://br.archive.ubuntu.com/ubuntu/ lucid/main libplrpc-perl 0.2020-2 [36,0kB]
Obter:4 http://br.archive.ubuntu.com/ubuntu/ lucid/main libdbi-perl 1.609-1build1 [798kB]
Obter:5 http://br.archive.ubuntu.com/ubuntu/ lucid/main libmysqlclient16 5.1.41-3ubuntu12 [1931kB]
Obter:6 http://br.archive.ubuntu.com/ubuntu/ lucid/main libdbd-mysql-perl 4.012-1ubuntu1 [135kB]
Obter:7 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-client-core-5.1 5.1.41-3ubuntu12 [176kB]
Obter:8 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-client-5.1 5.1.41-3ubuntu12 [8136kB]
Obter:9 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-server-core-5.1 5.1.41-3ubuntu12 [4711kB]
Obter:10 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-server-5.1 5.1.41-3ubuntu12 [7007kB]
Obter:11 http://br.archive.ubuntu.com/ubuntu/ lucid/main libhtml-template-perl 2.9-1 [65,8kB]
Obter:12 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-server 5.1.41-3ubuntu12 [93,0kB]
Baixados 23,2MB em 1min 58s (196kB/s)
Pré-configurando pacotes …
Selecionando pacote previamente não selecionado mysql-common.
(Lendo banco de dados … 150463 arquivos e diretórios atualmente instalados).
Desempacotando mysql-common (de …/mysql-common_5.1.41-3ubuntu12_all.deb) …
Selecionando pacote previamente não selecionado libnet-daemon-perl.
Desempacotando libnet-daemon-perl (de …/libnet-daemon-perl_0.43-1_all.deb) …
Selecionando pacote previamente não selecionado libplrpc-perl.
Desempacotando libplrpc-perl (de …/libplrpc-perl_0.2020-2_all.deb) …
Selecionando pacote previamente não selecionado libdbi-perl.
Desempacotando libdbi-perl (de …/libdbi-perl_1.609-1build1_i386.deb) …
Selecionando pacote previamente não selecionado libmysqlclient16.
Desempacotando libmysqlclient16 (de …/libmysqlclient16_5.1.41-3ubuntu12_i386.deb) …
Selecionando pacote previamente não selecionado libdbd-mysql-perl.
Desempacotando libdbd-mysql-perl (de …/libdbd-mysql-perl_4.012-1ubuntu1_i386.deb) …
Selecionando pacote previamente não selecionado mysql-client-core-5.1.
Desempacotando mysql-client-core-5.1 (de …/mysql-client-core-5.1_5.1.41-3ubuntu12_i386.deb) …
Selecionando pacote previamente não selecionado mysql-client-5.1.
Desempacotando mysql-client-5.1 (de …/mysql-client-5.1_5.1.41-3ubuntu12_i386.deb) …
Selecionando pacote previamente não selecionado mysql-server-core-5.1.
Desempacotando mysql-server-core-5.1 (de …/mysql-server-core-5.1_5.1.41-3ubuntu12_i386.deb) …
Processando gatilhos para man-db …
Configurando mysql-common (5.1.41-3ubuntu12) …
Selecionando pacote previamente não selecionado mysql-server-5.1.
(Lendo banco de dados … 150828 arquivos e diretórios atualmente instalados).
Desempacotando mysql-server-5.1 (de …/mysql-server-5.1_5.1.41-3ubuntu12_i386.deb) …
Selecionando pacote previamente não selecionado libhtml-template-perl.
Desempacotando libhtml-template-perl (de …/libhtml-template-perl_2.9-1_all.deb) …
Selecionando pacote previamente não selecionado mysql-server.
Desempacotando mysql-server (de …/mysql-server_5.1.41-3ubuntu12_all.deb) …
Processando gatilhos para ureadahead …
Processando gatilhos para man-db …
Configurando libnet-daemon-perl (0.43-1) …
Configurando libplrpc-perl (0.2020-2) …
Configurando libdbi-perl (1.609-1build1) …
Configurando libmysqlclient16 (5.1.41-3ubuntu12) …

Configurando libdbd-mysql-perl (4.012-1ubuntu1) …
Configurando mysql-client-core-5.1 (5.1.41-3ubuntu12) …
Configurando mysql-client-5.1 (5.1.41-3ubuntu12) …
Configurando mysql-server-core-5.1 (5.1.41-3ubuntu12) …
Configurando mysql-server-5.1 (5.1.41-3ubuntu12) …
mysql start/running, process 4808

Configurando libhtml-template-perl (2.9-1) …
Configurando mysql-server (5.1.41-3ubuntu12) …
Processando gatilhos para libc-bin …
ldconfig deferred processing now taking place


No meio desse esquema todo serão exibidas janelas que solicitarão a senha de administrador do mysql, semelhantes as imagens abaixo:

Outra tela:

Estas telas pedem para que você dê uma senha para o usuário root do mysql, escolha uma senha ao seu gosto e depois repita a mesma.

Agora iremos integrar o php + apache + mysql + phpmyadmin, para isto precisaremos usar o comando:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

A saída deste comando deverá ser algo mais ou menos parecido com isto aqui:

Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
Os pacotes extra a seguir serão instalados:
dbconfig-common javascript-common libjs-mootools libmcrypt4 libt1-5 php5-gd php5-mcrypt wwwconfig-common
Pacotes sugeridos:
libmcrypt-dev mcrypt postgresql-client apache apache-ssl
Os NOVOS pacotes a seguir serão instalados:
dbconfig-common javascript-common libapache2-mod-auth-mysql libjs-mootools libmcrypt4 libt1-5 php5-gd php5-mcrypt php5-mysql phpmyadmin wwwconfig-common
0 pacotes atualizados, 11 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso baixar 5404kB de arquivos.
Depois desta operação, 21,9MB adicionais de espaço em disco serão usados.
Você quer continuar [S/n]? S
Obter:1 http://br.archive.ubuntu.com/ubuntu/ lucid/main dbconfig-common 1.8.44ubuntu1 [474kB]
Obter:2 http://br.archive.ubuntu.com/ubuntu/ lucid/universe wwwconfig-common 0.2.1 [22,8kB]
Obter:3 http://br.archive.ubuntu.com/ubuntu/ lucid/universe javascript-common 7 [3854B]
Obter:4 http://br.archive.ubuntu.com/ubuntu/ lucid/main libapache2-mod-auth-mysql 4.3.9-12ubuntu1 [25,6kB]
Obter:5 http://br.archive.ubuntu.com/ubuntu/ lucid/universe libjs-mootools 1.2.4.0~debian1-1 [248kB]
Obter:6 http://br.archive.ubuntu.com/ubuntu/ lucid/universe libmcrypt4 2.5.8-3.1 [76,1kB]
Obter:7 http://br.archive.ubuntu.com/ubuntu/ lucid/main libt1-5 5.1.2-3build1 [155kB]
Obter:8 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main php5-gd 5.3.2-1ubuntu4.1 [34,8kB]
Obter:9 http://br.archive.ubuntu.com/ubuntu/ lucid/universe php5-mcrypt 5.3.2-0ubuntu1 [15,2kB]
Obter:10 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main php5-mysql 5.3.2-1ubuntu4.1 [64,2kB]
Obter:11 http://br.archive.ubuntu.com/ubuntu/ lucid/universe phpmyadmin 4:3.3.2-1 [4285kB]
Baixados 5404kB em 45s (118kB/s)
Pré-configurando pacotes …
Selecionando pacote previamente não selecionado dbconfig-common.
(Lendo banco de dados … 150920 arquivos e diretórios atualmente instalados).
Desempacotando dbconfig-common (de …/dbconfig-common_1.8.44ubuntu1_all.deb) …
Selecionando pacote previamente não selecionado wwwconfig-common.
Desempacotando wwwconfig-common (de …/wwwconfig-common_0.2.1_all.deb) …
Selecionando pacote previamente não selecionado javascript-common.
Desempacotando javascript-common (de …/javascript-common_7_all.deb) …
Selecionando pacote previamente não selecionado libapache2-mod-auth-mysql.
Desempacotando libapache2-mod-auth-mysql (de …/libapache2-mod-auth-mysql_4.3.9-12ubuntu1_i386.deb) …
Selecionando pacote previamente não selecionado libjs-mootools.
Desempacotando libjs-mootools (de …/libjs-mootools_1.2.4.0~debian1-1_all.deb) …
Selecionando pacote previamente não selecionado libmcrypt4.
Desempacotando libmcrypt4 (de …/libmcrypt4_2.5.8-3.1_i386.deb) …
Selecionando pacote previamente não selecionado libt1-5.
Desempacotando libt1-5 (de …/libt1-5_5.1.2-3build1_i386.deb) …
Selecionando pacote previamente não selecionado php5-gd.
Desempacotando php5-gd (de …/php5-gd_5.3.2-1ubuntu4.1_i386.deb) …
Selecionando pacote previamente não selecionado php5-mcrypt.
Desempacotando php5-mcrypt (de …/php5-mcrypt_5.3.2-0ubuntu1_i386.deb) …
Selecionando pacote previamente não selecionado php5-mysql.
Desempacotando php5-mysql (de …/php5-mysql_5.3.2-1ubuntu4.1_i386.deb) …
Selecionando pacote previamente não selecionado phpmyadmin.
Desempacotando phpmyadmin (de …/phpmyadmin_4%3a3.3.2-1_all.deb) …
Processando gatilhos para man-db …
Processando gatilhos para libapache2-mod-php5 …
* Reloading web server config apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]
Processando gatilhos para doc-base …
Processing 26 changed 1 added doc-base file(s)…
Registering documents with scrollkeeper…
Configurando dbconfig-common (1.8.44ubuntu1) …

Creating config file /etc/dbconfig-common/config with new version

Configurando wwwconfig-common (0.2.1) …
Configurando javascript-common (7) …

Configurando libapache2-mod-auth-mysql (4.3.9-12ubuntu1) …
Configurando libjs-mootools (1.2.4.0~debian1-1) …
Configurando libmcrypt4 (2.5.8-3.1) …

Configurando libt1-5 (5.1.2-3build1) …

Configurando php5-gd (5.3.2-1ubuntu4.1) …
Configurando php5-mcrypt (5.3.2-0ubuntu1) …
Configurando php5-mysql (5.3.2-1ubuntu4.1) …
Configurando phpmyadmin (4:3.3.2-1) …
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf

Creating config file /etc/dbconfig-common/phpmyadmin.conf with new version

Creating config file /etc/phpmyadmin/config-db.php with new version
granting access to database phpmyadmin for phpmyadmin@localhost: success.
verifying access for phpmyadmin@localhost: success.
creating database phpmyadmin: success.
verifying database phpmyadmin exists: success.
populating database via sql… done.
dbconfig-common: flushing administrative password
* Reloading web server config apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Processando gatilhos para libc-bin …
ldconfig deferred processing now taking place

Neste meio tempo uma tela para escolher entre apache e lighttpd aparecerá, escolha apache. Veja:

Na primeira tela escolha OK e dê um tab para confirmar que aceita a opção.

A próxima tela pedirá uma senha de admin para o phpmyadmin, para isto defina algo seu. Veja a tela:

Costumo, após terminar uma instalação de integração como esta utilizar-me de lago, insira as seguintes linhas naquela página index.php usando sudo vim /var/www/index.php
Informe dentro dela o seguinte:

Acesse http://localhost/index.php

Se nada ocorrer tudo está 100%.

Quando terminar use o comando:
sudo /etc/init.d/apache2 restart

Isto vai fazer o apache reler todos os confs.

Para concluir precisamos levar o phpmyadmin para a pasta web afim de que possamos editar nossos bds. Para isto precisamos copiar o phpmyadmin para dentro do /var/www usando o comando:

cp -rp /usr/share/phpmyadmin /var/www

Sendo assim, para acessar somente precisamos de um http://localhost/phpmyadmin

A parte interessante no quesito repositório vem de um how to bem interessante, veja:
http://www.howtoforge.com/the-perfect-desktop-ubuntu-10.04-lucid-lynx

A web seria “mais um espaço”? Quake 2 + html 5 + google web kit – a nova era dos navegadores

Standard


Uma das coisas que acho mais loucas na web é o desenvolvimento dela em relação a disponibilização de novos recursos.
É impressionante o quanto a web vem crescendo e hoje gostaria de comentar rapidamente algo que nem acreditei quando vi.

HTML 5 nem chegou direito e junto com ele a Google já faz “estrago de peixe grande”.

Quake 2 rodando com30 fps via browser?
Isso pode?
Como assim?

Um game via browser? Primeira pessoa com 30 fps via browser?

A engine do Quake 2 + HTML 5 + Google Web Kit colaboram, vejam no link abaixo:

Sinceramente, o que vier de moderno não será tão imprevisto assim.
Web é sim a plataforma do presente e do futuro!

post_max_size uma informação a mais na hora de aumentar o UPLOAD no php.ini

Standard


Olá ALL,
As vezes erramos quando somente aumentamos diretivas do PHP visando upload, tais como:

max_execution_time,
upload_max_filesize,
e até mempory_limit.

Elas até que estão corretas, assim como max_execution_time, só que os forms que enviam dados (refiro-me a arquivos), fazem envio de arquivos pelo método post.
Sendo assim, se quisermos um upload de 96M em um servidor rodando php precisamos colocar no php.ini a informação de qual o tamanho máximo de envio de dados pelo POST.
A saída então seria:

post_max_size = 96M

Isto dentro do PHP.INI.

Pronto, após ajustes o apache deverá ser reiniciado.

Abraços galera!

Resolvendo problemas com iframe infectado

Standard

Um exemplo prático para resolver problemas com iframes lascados por spammers e crackers pode ser analisada da seguinte maneira:

find /home/*/public_html -name “*.php” -exec sed -i ‘s/<iframe src=\\”http:\/\/google-ana1yticz.com.*<\/\iframe>//g’ {} \; -print

Software livre: Necessidade ou Xiitismo?

Standard

É muito comum ver pessoas criticando o software livre ou mesmo elogiando sem entender seu impacto no mundo comercial.

Vamos falar um pouco da realidade do Software Livre em um foco totalmente comercial para que as pessoas entendam a real necessidade desta metodologia/visão de negócio e também possam aplicar em suas vidas esta estratégia. (mais à frente explicarei o porquê de estratégia)

Em primeiro passo devemos fixar em nossas mentes que Software Livre NÃO é software gratuito, isto mesmo, o fato de você ter usado uma ferramenta de código-fonte aberto e se beneficiado da gratuidade deste utilitário não quer dizer que as pessoas não tirem proveitos financeiros sobre tal metodologia/visão.

Abaixo vou citar alguns casos aonde se extrai muito dinheiro do software livre.

Dentro deste seguimento prestemos atenção em um dos mais populares fenômenos do Software Livre, o Gnu/Linux e seus sabores.

Temos no mercado corporativo do pingüim 3 distribuições em especial que se destacam pela sua aceitação de mercado, estabilidade e suporte de alta qualidade:

* Red Hat
* Suse Enterprise
* Mandriva

As três distribuições acima citadas COBRAM pelo suporte e acesso a repositórios comerciais.

Em algum instante você pode estar se perguntando:
Isto é maquiavélico, por que eles cobram por Gnu/Linux se ele é gratuito?

Mentira! Gnu/Linux é um sistema de código-fonte aberto, mas isto não quer dizer que todos têm sua disponibilidade ou licença gratuitos.

Explique-me como manter um suporte via fone, helpdesk e ter servidores ligados 24 horas, com alta disponibilidade de rede e software?
Quem pagará as contas de luz, água e internet?

Quem pagará os desenvolvedores?

Vejamos outro caso de sucesso – Ubuntu. Sistema amigável, Gnu/Linux, grátis para uso, porém, o suporte cobra para impor seu know how e ajustar sua plataforma, mas pergunto, isto é maquiavélico?

Não, muito pelo contrário, é uma forma de manter o negócio das pessoas bem estruturado e reter lucratividade para empresa. (isto resulta em contratações de desenvolvedores mais experientes e equipamentos mais sofisticados para que sejam testados os softwares com mais stress)

Saindo do globo do pingüim, voltemos à situação do software livre como alternativa as empresas, como sua empresa ou sua casa, até mesmo seu escritório poderiam beneficiar-se de uma metodologia tão forte, melhor dizendo, uma tendência tão evidente e aplicável a qualquer mercado?

Simples, vamos analisar um caso bastante comum nas empresas e entender o porquê do Software Livre ser tão necessário para uma implementação.

Há meses presto consultoria em uma empresa mineira, tendo a mesma uma utilização software proprietário (isto não quer dizer Microsoft, mas qualquer código fechado é de propriedade do desenvolvedor) em alta escala. Até aí as coisas transcorriam de vento em polpa, entretanto, como nem tudo tende a ser um mar de rosas sem espinhos, houve a necessidade de implementação de uma simples funcionalidade no software que a empresa usa para gestão de seus negócios, o que aconteceu?
Houve um investimento de R$ 1000 (mil reais) para implementação de um campo.
Havendo 2 programadores na empresa (um programando em VB e outro em PHP), por que tal campo não foi implementado sem custos?
A resposta é clara, AONDE estava o código-fonte? Ele estava aberto? Quem diabos o fechou?

Pois é amigo, nesta hora as coisas começam a fazer sentido, e para piorar, o software utiliza cliente como sendo pontos de acesso, fazendo consultas infinitas no banco de dados, com resultados pesadíssimos, o que gera gargalo na rede, mesmo sabendo que um front-end no servidor resolveria tudo, visto que somente ele processaria toda a demanda, e o melhor, somente ele precisaria de alta capacidade de armazenamento e processamento, assim como evitar que cada terminal cliente não estivesse obrigado a utilizar-se de um Sistema Operacional Windows, visto que o mesmo tem custos e as bibliotecas da ferramenta comercial só operam nele.

Em cálculos mais claros, vamos analisar custo de licença e vantagens comerciais:

Se cada licença Windows XP Profissional custa R$ 250 (duzentos e cinqüenta reais), preço este sob compra em maior escala, e se a instituição possui 14 computadores nós temos 14 x R$ 250 = R$ 3500 (três mil e quinhentos reais). Cada hardware deve suportar Windows XP e os requisitos mínimos do software que não utiliza conceitos de mercado de TI do século XXI, ou seja, se cada máquina custa R$ 590 (sem monitor, é claro) nós temos R$ 8260 (oito mil duzentos e sessenta reais), então concluímos que o total gasto pela empresa para rodar a aplicação e estar provida dos recursos que a mesma disponibilizava foi de R$ 11760 (onze mil setecentos e sessenta reais) + custo de desenvolvimento e implementação da plataforma proprietária.

Vamos levar este foco agora para o Software Livre e ver o quanto as coisas começam a ficar claras:

Como o software utiliza-se de browser (nem tudo, por que os desenvolvedores podem usar linguagens como C, C++ ou Java) podendo ter sido feito até mesmo em Java (Java desktop) nós cortaríamos gastos com o sistema operacional, visto que não depende de sistema operacional para trabalhar, ou seja, abateremos (pelo menos) R$ 3500 (três mil e quinhentos reais) e o processamento (em caso de browser) é centralizado no servidor, o que faria com que máquinas de baixo processamento fossem utilizadas (sabe aqueles k6-II- 500 mhz parados aí na sua empresa?).

No caso acima, compilando e devolvendo o fonte principal ao cliente, é claro.(em caso caso de linguagens que necessitam de compiladores)

De posse de simples afirmações citadas não tenha medo de focar-se em Gnu/Linux e em Software Livre, por que com SL nós temos a possibilidade de analisar o fonte e mudar as coisas ao nosso estilo, seguindo as necessidades triviais de nossa empresa sem qualquer falta de qualidade, escalabilidade ou dificuldade na manutenção.

Quanto a utilizar-se de Gnu/Linux em sua empresa, faça isto por amar sue negócio, use Gnu/Linux para economizar em seu negócio.

Se às pessoas vierem justificando a não utilização por falta de recursos como impressão, rede e etc, fique certo de que a plataforma Gnu/Linux tem suporte as mais variadas impressoras que o mercado disponibiliza, tem suporte pesado a redes (servidores de dns, logon, ldap – que te dão a mesma autonomia de unidades organizacionais do Windows Server, assim como suporte dhcp, compartilhamento de arquivos e bancos de dados).

Em outras palavras, utilizar-se de Windows para facilidades já não é um argumento válido. Programar soluções proprietárias é outra afirmação equivocada, quer saber por quê?

1 – Software de código-fonte aberto permite uma interação mútua no suporte, ocorrendo de maneira mais simples,

2 – Software aberto permite que qualquer pessoa, inclusive o dono da empresa saibam o que realmente o código faz no back-end, (em background)

3 – Software aberto permite manutenção mais abrangente e update de software com mais qualidade,

4 – Software aberto permite que o código seja visto por qualquer desenvolvedor, o que dá mais amplitude na aplicação de técnicas mais maduras e sofisticadas.

Então, ainda vai ficar no mundo “Redmond”?

Lá em cima afirmei como estratégia o software livre, pois bem, pergunte ao Obama o que ele acha disto, visto que tornou tal metodologia como sendo padrão no desenvolvimento de aplicações para o governo (escolas, hospitais e etc).

Abraços a todos.

Como impedir que sites tenham seus diretórios listados no cpanel how to turn off browser directory

Standard

Nada de pânico, se você quer desabilitar a listagem de diretórios em seu servidor siga os passos abaixo:

Service Configuration -> Apache Configuration -> Global Configuration -> LOCALIZE Directory ‘/’ Options e desmarque -> Indexes.

Para testar basta criar um diretório em um site e colocar nele um arquivo chamado eu.txt (por exemplo), abra o domínio simulando uma listagem, por exemplo:

www.libphp.net/lib/

Se estivesse dentro de lib (o txt) ele apresentaria erro na leitura (forbidden)

Deus abençoe você!

Tutorial de segurança em aplicações PHP (parte 1)

Standard

Estou anotando algumas dicas para aumentar a segurança em aplicações php (linguagem a qual programo).
Abaixo irei colocar algumas dicas sobre o que tenho aprendido, mas infelizmente de maneira resumida, definida como parte 1:

-alertas de erro -> Desabilitado (coisas como error_reporting(E_ALL);) – isto só pode ocorrer em um sistema no momento de testing.
-register_globals -> Desabilitado
-permissão ->dar o mínimo de privilégios possível no sistema, a nível
de bd e etc.
-variáveis ->setar vazios antes de atribuir strings.

Ex:

<?php

$busca = ”;

if (isset($_GET[‘busca’]))

{

$busca = $_GET[‘busca’];

}

?>
– usar ssl para dados importantes, evitando exposição de dados.
– Forçar a segurança de maneira que não pese ao usuário,
se possível transparente. Ex: solicitar autenticação por medida de segurança para um transação importante de um cliente já autenticado no sistema.

– tomar sempre cuidado no ato de detecção de ataques, isso pode impedir a usabilidade do sistema.
– cuidados com interações em sistemas remotos (rss, apis remotas – web services).
– filtrar bem os dados (todos) que entram, para não operar com dados
maliciosos.

Filtrar dados é ler o que se entra por $ _GET e $ _POST e observar o que está malicioso e distinguir isto. (bem fácil de filtrar, ruim é identificar a origem)

Todas entradas têm de vir de uma fonte remota, se você não conhece as entradas, não pode se defender delas.

Entradas como $_SERVER exigem muito mais trabalho na hora da filtragem.
– A pior forma de filtrar é tentar manipular ao invés de tratar que o que é limpo é limpo e o que é sujo é sujo, do contrário, tentar manipular as informações poderá criar brechas.
Trecho que reforça a segurança quando um atacante tenta retroceder 1 diretório (ou mais):

<?php

$nomefile = $_POST[‘nomefile’];

while (strpos($_POST[‘nomefile’], ‘..’) !== FALSE)
{
$nomefile = str_replace(‘..’, ‘.’, $nomefile);
}

?>

Evidentemente, o basename() função pode substituir toda esta técnica e é uma maneira segura de atingir o objectivo pretendido. O ponto importante é que qualquer tentativa de corrigir Dados inválidos podem conter um erro e permitir a passagem de dados inválidos. Inspeção é uma alternativa muito mais seguro.

INSPECIONAR É MELHOR QUE CORRIGIR, quando se tenta corrigir geralmente se abre uma falha, o que é a real necessidade do atacante.

Se você consegue identificar com precisão e fidelidade a entrada dos dados você já fez quase tudo.
Após, o passo seguinte é criar um filtro fiel para distinguir dados ruins de dados bons.

sempre que for tratar dados o bom é criar um array vazio e atribuir dados a ele, que você realmente sabe que estão limpos.

<?php
$limpo = array( );
switch($_POST[‘cor’]) {
case ‘vermelho’:
case ‘verde’:
case ‘azul’:
$limpo[‘cor’] = $_POST[‘cor’];
break;
}
?>

Estamos garantindo mais segurança por que a cor só pode ser uma das três e nada mais, neste caso!

você pode querer afirmar que um usuário só pode conter caracteres alfanuméricos:

<? php

$limpo = array ();

if (ctype_alnum ($ _POST [ ‘user’]))
(
$limpo[ ‘user’] = $ _POST [ ‘user’];
)

?>

Procure sempre usar funções nativas do php para segurança, isto pode lhe prevenir de problemas como erro de lógica, resultando assim em uma
brecha de segurança (o que um atacante necessita).

Para ajudar na segurança nos devemos:

Identificar saída,

Escapar saída,

Distinção entre escapara e não escapar dados .

É importante para escapar apenas dados filtrados. Embora escapar sozinho pode evitar muitas das vulnerabilidades de segurança, não deve nunca ser considerado como um substituto para a filtragem de entrada. Dados maliciosos devem ser filtrados primeiro e depois escapados.

Filtrar as entradas com htmlentities é melhor que htmlspecialchars, mas ambas são boas para converter o que vem da web, um exemplo legal é este aqui:

<?php
$htm = array( );
$htm[‘user’] = htmlentities($limpo[‘user’], ENT_QUOTES, ‘UTF-8’);
echo “<p>Olá, {$htm[‘user’]}.</p>”; ?>

Isso garante a entrada de dados do user, e de tabela quebra a forma em que os dados vêm de maneira a traduzir caracteres “malucos” em html.

Devemos escapar todos os dados SIM, isto ajuda na segurança de sua aplicação.
htmlentities não converte caracteres alfanuméricos, mas previne que dados estranhos operem em interação do usuário com o sistema.

Outra política, voltando-se ao famoso e muito utilizado mysql é usar funções nativas para escapar entradas de dados para o banco de dados.
Usamos a função mysql_real_escape_string ().
Podemos usar também addslashes para ajudar na relação com o mysql, mas em última instância.

<?php $mysql = array( );

$mysql[‘username’] = mysql_real_escape_string($clean[‘username’]);

$sql = “SELECT * FROM profile WHERE username = ‘{$mysql[‘username’]}'”; $result = mysql_query($sql); ?>

Fonte -> http://phpsecurity.org/

IDE online para PHP e outras linguagens!

Standard

Pois é meu amigo, a Mozilla tem o navegar mais seguro e agora tem o ide mais versátil que a web poderia disponibilizar. Estou falando do Bespin, uma ferramenta COLABORATIVA, grátis e online que serve para desenvolvimento.

Uma espécia de revolução mesmo, e afirmo, isto sim é que é cloud computing e não vendagem de vps.

Desenvolve-se em tempo real, se um amigo seu desenvolvedor estiver fazendo códigos você o vê em tempo real.

Um show!

https://bespin.mozilla.com/

Os caracteres especiais da tabela ISO 8859 Latin-1

Standard
&Aelig; Æ
&Aacute; Á
&Acirc; Â
&Agrave; À
&Aring; Å
&Atilde; Ã
&Auml; Ä
&Ccedil; Ç
&ETH; Ð
&Eacute; É
&Ecirc; Ê
&Egrave; È
&Iacute; Í
&Icirc; Î
&Igrave; Ì
&Iuml; Ï
&Ntilde; Ñ
&Oacute; Ó
&Ocirc; Ô
&Ograve; Ò
&Oslash; Ø
&Otilde; Õ
&Ouml; Ö
&THORN; Þ
&Uacute; Ú
&Ucirc; Û
&Ugrave; Ù
&Uuml; Ü
&Yacute; Ý
&aacute; á
&acirc; â
&aelig; æ
&agrave; à
&aring; å
&atilde; ã
&auml; ä
&ccedil; ç
&eacute; é
&ecirc; ê
&egrave; è
&eth; ð
&euml; ë
&iacute; í
&icirc; î
&igrave; ì
&iuml; ï
&ntilde; ñ
&oacute; ó
&ocirc; ô
&ograve; ò
&oslash; ø
&otilde; õ
&ouml; ö
&szlig; ß
&thorn; þ
&uacute; ú
&ucirc; û
&ugrave; ù
&uuml; ü
&yacute; ý
¡ ¡
¢ ¢
£ £
¥ ¥
¦ ¦
§ §
¨ ¨
© © &copy; (Netscape)
ª ª
« «
­ ­
® ® &reg; (Netscape)
¯ ¯
° º
± ±
² ²
³ ³
´
µ µ
· ·
¸ ¸
¹ ¹
º º
» »
¼ ¼
½ ½
¾ ¾
¿ ¿
× ×
Þ Þ
÷ ÷
&amp; &
&lt; <
&gt; >
&quot;

Um facebook grátis, opensource e de fácil utilização, tenha já o seu facebook!

Standard

Observei um pessoal em busca de um script no estilo Facebook, e não poderia deixar de compartilhar minha informação aqui. Para quem está afim de um sistema bem parecido com o facebook, opensource e grátis basta apenas acessar  o link abaixo:

http://www.elgg.org/index.php

A engenharia do sistema é bem interessante e faz o usuário sentir-se no Facebook mesmo!

Vale a pena conferir!

Adicione um Live Support Grátis, Opensource e de perfeito funcionamento

Standard

Gente, estive acessando o blog de uns mestres em aplicações web e fiquei muito feliz com uma iniciativa que avistei. Estou desenvolvendo um suite OpenSource para minha empresa e também para a comunidade e estava tentando entender bem o funcionamento dos chats online, mais precisamente os Live Supports da vida que precisava. Estava observando para preparar meus estudos e Justo agora descobri o sistema Open Web Messenger. Simplesmente maravilhoso, leve e funciona de verdade! Feito em PHP e com recursos bastante modernos, o sistema é perfeitamente elaborado.

Sua interface é limpa e muito amigável.

Se você quer um sistema de chat (live support) para seu site não deixe de acessar:

http://openwebim.org/

Obs: De bom que é será usado em meu projeto!

Fedora 10: Lamp2 – linux apache 2 mysql e php 5 + ruby + python

Standard

Vou mandar ver em um how to interessante para os amantes do LAMP sob fedora. Todos que usam Fedora devem (ou deveriam) saber que a versão atual deste fabuloso sistema encontra-se na 10. Iremos fazer um how to sobre lamp 2 no Fedora 10, então atente para estar usando Fedora 10.

Requisitos:

Internet (se rápida será melhor ainda),
Fedora 10,
Vontade de rodar o lamp2 no Fedora 10 ?:) ,
Estar logado como root.

Indo ao Combate

Após instalar seu Fedora acesse o console como root e execute os seguintes comandos:

yum update -y

Isso vai atualizar os repositórios e recursos do sistema (kernel, utilitários  e etc).

Após vamos instalar o mysql:

yum -y install mysql mysql-devel mysql-server

Isso vai instalar o mysql, mas logo após sua instalação aplique os comandos abaixo:

chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start

Confirme se a porta já está ativa e esperando conexões:

netstat -tap | grep mysql

Isto deve gerar uma saída mais ou menos assim:

tcp        0      0 *:mysql                     *:*                         LISTEN      2407/mysqld

Após faça este ajuste aqui:

vi /etc/my.cnf

#skip-networking

Comentar a linha acima.

Reinicie o mysql com o comando:

/etc/init.d/mysqld restart

Pronto, defina a senha de root do mysql com os comandos abaixo:

mysqladmin -u root password Sua_nova_SENHA
mysqladmin -h maquina.meudominio.com -u root password Sua_nova_SENHA

Isso aplicará a senha de root do mysql.

Agora vamos aplicar php, python e ruby + apache 2:

yum -y install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

chkconfig –levels 235 httpd on

Pronto, depois disso faça o teste com —>

/etc/init.d/httpd start

Instale o ruby:

yum install httpd-devel ruby ruby-devel

cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install

vi /etc/httpd/conf.d/ruby.conf

LoadModule ruby_module modules/mod_ruby.so

/etc/init.d/httpd restart

yum install mod_python

/etc/init.d/httpd restart

Prontooo!

HTML: Tabelas ou tables

Standard
T A B E L A S
<table></table> forma geral:
<table>
<tr>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
</table>
A propriedade “border” define a expessura da borda de uma tabela, sempre use o valor 1 quando desenvolver uma página HTML com uma tabela complexa, quando terminar e estiver tudo certo configure o valor para 0:
<table border=1>
<tr>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
</table>
<table border=1>
<tr>
<td>
<font face=verdana size=2>
conteúdo a exibir<br>
conteúdo a exibir
</font>
</td>
</tr>
</table>
A tag <tr> é chamada de cédula. Uma cédula define uma coluna numa nova linha, é o equivalente ao <br> só que pra tabelas
<table border=1>
<tr>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
<tr>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
</table>
A tag <td> adiciona uma nova coluna na mesma linha, é chamada de …   coluna:
<table border=1>
<tr>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
</table>
Veja o que acontece quando uma tabela é definida com duas colunas na primeira linha e apenas uma na segunda linha:
<table border=1>
<tr>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
<tr>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
</table>
Largura e altura também podem ser definidos, a propriedade “height” não é reconhecida pelo NETSCAPE:
<table border=1 width=500 height=300>
<tr>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
</table>
Por padrão o alinhamento do conteúdo dentro de uma tabela é à esquerda e no meio, mas isso pode ser configurado:
<table border=1 width=500 height=300>
<tr>
<td align=center valign=top>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
</table>
Veja este modelo mais avançado:
<table border=1 width=500 height=300><tr>
<td align=left valign=top>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td align=center valign=top>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td align=right valign=top>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

<tr>
<td align=left valign=middle>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td align=center valign=middle>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td align=right valign=middle>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

<tr>
<td align=left valign=bottom>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td align=center valign=bottom>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td align=right valign=bottom>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

</table>

Algo muito útil é o uso do “colspan” e “rowspan”, a seguir um exemplo de uma tabela com duas colunas na primeira linha e apenas uma coluna na segunda, mas com o atributo “colspan=2” essa coluna ocupará o equivalente a 2 colunas:
<table border=1><tr>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

<tr>
<td align=center colspan=2>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

</table>

Tabela com duas colunas na primeira linha e apenas uma coluna na segunda, mas o atributo “rowspan=2” na primeira coluna da primeira linha indica que essa coluna ocupará 2 linhas:
<table border=1><tr>
<td rowspan=2>
<font face=verdana size=2>
rowspan=2
</font>
</td>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

<tr>
<td align=center>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

</table>

Outros attributos simples podem configurar uma tabela:
<table border=1 bordercolor=ff0000><tr>
<td align=center>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

</table>

“bordercolor” limita-se aos atributos das tags <table> e <tr>:
<table border=1 bordercolor=ff0000><tr bordercolor=ffffff>
<td align=center>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

</table>

Use “cellpadding” e “cellspacing” para definir a diferença de espaço entre cédulas (<tr></tr>) e células (<td></td>), respectivamente:
<table border=1 bordercolor=ff0000 cellspacing=0 cellpadding=0><tr bordercolor=ffffff>
<td align=center>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>

</table>

“bgcolor” pode ser usado em todas as tags de uma tabela:
<table bgcolor=000000 border=1 bordercolor=ff0000 cellspacing=0 cellpadding=0>
<tr bordercolor=ffffff>
<td align=center>
<font face=verdana size=2 color=ffffff>
conteúdo a exibir
</font>
</td>
</tr>
</table>
<table border=1 bordercolor=ff0000 cellspacing=0 cellpadding=0>
<tr bordercolor=ffffff bgcolor=000000>
<td align=center>
<font face=verdana size=2 color=ffffff>
conteúdo a exibir
</font>
</td>
</tr>
</table>
<table border=1 bordercolor=ff0000 cellspacing=0 cellpadding=0>
<tr bordercolor=ffffff>
<td align=center bgcolor=000000>
<font face=verdana size=2 color=ffffff>
conteúdo a exibir
</font>
</td>
</tr>
</table>
<table border=1 width=500 height=300>
<tr>
<td align=left valign=top bgcolor=ffff00>
<font face=verdana size=2 color=000000>
conteúdo a exibir
</font>
</td>
<td align=center valign=top>
<font face=verdana size=2 color=000000>
conteúdo a exibir
</font>
</td>
<td align=right valign=top bgcolor=ff0000>
<font face=verdana size=2 color=000000>
conteúdo a exibir
</font>
</td>
</tr><tr>
<td align=left valign=middle bgcolor=ebc79e>
<font face=verdana size=2 color=000000>
conteúdo a exibir
</font>
</td>
<td align=center valign=middle bgcolor=000000>
<font face=verdana size=2 color=ffffff>
conteúdo a exibir
</font>
</td>
<td align=right valign=middle bgcolor=0000ff>
<font face=verdana size=2 color=ffffff>
conteúdo a exibir
</font>
</td>
</tr>

<tr>
<td align=left valign=bottom bgcolor=ff9900>
<font face=verdana size=2 color=000000>
conteúdo a exibir
</font>
</td>
<td align=center valign=bottom bgcolor=cc66cc>
<font face=verdana size=2 color=000000>
conteúdo a exibir
</font>
</td>
<td align=right valign=bottom bgcolor=00cc00>
<font face=verdana size=2 color=000000>
conteúdo a exibir
</font>
</td>
</tr>

</table>

“background” também pode ser usado em todas as tags de uma tabela:
<table width=130 height=60 background=imagens/briga.gif border=1 bordercolor=ff0000 cellspacing=0 cellpadding=0>
<tr bordercolor=ffffff>
<td align=center>
<font face=verdana size=2 color=ffffff>
conteúdo a exibir
</font>
</td>
</tr>
</table>
Por padrão a figura de fundo se mutiplica quando a tabela é maior que suas dimensões:
<table width=260 height=120 background=imagens/briga.gif border=1 bordercolor=ff0000 cellspacing=0 cellpadding=0>
<tr bordercolor=ffffff>
<td align=center>
<font face=verdana size=2 color=ffffff>
conteúdo a exibir
</font>
</td>
</tr>
</table>
Usando um simples Estilo CSS vc pode configurar as propriedades do background:
<table width=260 height=120 style=”background-repeat:no-repeat; background=imagens/briga.gif border=1 bordercolor=ff0000 cellspacing=0 cellpadding=0>
<tr bordercolor=ffffff>
<td align=center>
<font face=verdana size=2 color=ffffff>
conteúdo a exibir
</font>
</td>
</tr>
</table>
Usando backgrounds diferentes numa mesma tabela:
<table width=130 height=100 border=1 style=”background-repeat:no-repeat;”>
<tr>
<td background=imagens/briga.gif>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td background=imagens/guitarrista.gif>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
</tr>
</table>
<table width=400 height=120 border=1 background=imagens/hempa.gif>
<tr>
<td width=130 bgcolor=000000 background=imagens/briga.gif style=”background-repeat:no-repeat;”>
&nbsp;
</td>
<td>
<font face=verdana size=2>
conteúdo a exibir
</font>
</td>
<td width=130 background=imagens/guitarrista2.gif style=”background-repeat:no-repeat;”>
&nbsp;
</td>
</tr>
</table>
Em algumas situações talvez você precise usar o atributo nowrap ou wrap, por padrão as tabelas são configuradas como “wrap“.
NOWRAP indica ao browser que um texto dentro de uma tabela não deve ser automaticamente quebrado quando exceder o tamanho indicado em “width”, a não ser que exista um <br>.
<table width=100 height=120 border=1>
<tr>
<td>
texto dentro de uma tabela normal com valor padrão WRAP
</td>
</tr>
</table>
<table width=100 height=120 border=1>
<tr>
<td nowrap>
texto dentro de uma tabela normal com valor padrão WRAP
</td>
</tr>
</table>
esse atributo pertence apenas à tag <td>
Para inciantes isso parece um bicho de sete cabeças.. seria mais simples e prático usar o Dreamweaver para criar tabelas complexas apenas clicando “aqui e ali” mas o bicho vai pegar quando você precisar criar uma tabela e não tiver nenhum editor HTML do tipo Front Page ou Dreamweaver, pior ainda quando você precisar desenvolver um sistema em HTML gerado por scripts de linguagens dinâmicas (ASP, PHP, JSP, PERL..).
Quando você dominar e desenvolver técnicas de formatação de tabelas, pode-se considerar um programador HTML de nível intermediário

FONTE: http://paraiso.etfto.gov.br/biblioteca/material/info/des_web/tutorial/html_tutorial/arquivos/04.html