MySQL server has gone away

Standard

Seu mysql anda estranho quando você está tentando fazer upload de um arquivo enorme via console (na verdade o restore, ou seja, mysql -u usuario -p nomedobdprarestaurar < arquivo.sql)???

Bem, se a mensagem de erro for esta -> MySQL server has gone away NÃO precisa entrar em pânico, só existem 2 coisas que são feitas e sanam tranquilamente o erro:

1 – entre no /etc/my.cnf (ou arquivo de configuração do mysql) e informe set-variable = max_connections=1500

Isto vai liberar para 1500 conexões concorrentes no mysql.

2 – Se o erro persistir, no mesmo arquivo informe:

max_allowed_packet = 5000000000

Você estará liberando uploads/restore/dumps de 1gb de tamanho.

Depois disso, reinicie o mysql (normalmente service mysql restart) e corra para o abraço.

 

Ah, se quiser ver qual valor ficou setado (só para conferir depois do restart use):

mysql> SHOW VARIABLES LIKE ‘max_allowed_packet’;

'xterm-256color': unknown terminal type no mac os x Lion, Mac os x mountain ou mac os x snow leopard

Standard

Se este erro ocorre com você na tentativa de acesso ao terminal de um servidor Ubuntu, Debian, Mint ou qualquer outro Debian Based usando Mac os X e recebe o erro ‘xterm-256color’: unknown terminal type, entre no servidor de destino aonde o terminal conecta e use o seguinte comando:

apt-get install ncurses-term -y

Isso vai instalar o pacote que faltava.

Interessante que se o erro não for corrigido, por exemplo, um comando inportante como top ou screen não funcionam :(.

Em plataformas Red Hat não rola isto.

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).

 

Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.

Standard

Se você está usando DEBIAN-BASED (mind/debian/ubuntu) e toda vez que roda o comando ddclient ele apresenta erro SEUS PROBLEMAS “SE ACABARAM-SE”!

Para sanar, como root faça o seguinte:

rm -rf /var/cache/ddclient/ddclient.cache

Depois rode o comando ddclient, a saída vai ser algo semelhante a:
SUCCESS:  updating SEUHOST.ALGUMACOISAg: good: IP address set to IPDASUAINTERFACEWEB

 

Abraços galera

Como fazer QoS de banda (controle de banda) no Ubuntu Server, Debian, Fedora, Centos, RedHat e etc

Standard

Vamos perceber o seguinte.
Esse how to serve para TODAS as distribuições que rodam como um gateway de internet, sendo somente um caso de particularidade a questão de paths de configurações, como por exemplo, para instalar o CBQ no ubuntu basta usar apt-get install shaper -y.
Isto instalará ele e basta você localizar o path aonde o script shaper está (/etc/init.d/shaper) e seus respectivos confs (/etc/shaper).
No caso das outras distribuições (red hat based -> Centos, Fedora e Red Hat) podemos ver que seu path fica em /etc/sysconfig/cbq. No caso de red hat já existe um arquivo de exemplo que serve para mostrar como as coisas são configuradas no padrão, seu nome é cbq-0000.example e existe outro mas é um caso de utilização do próprio CBQ, o avpkt.
Neste caso iremos criar tudo na mão.
Antes de por a mão na massa temos de entender algumas regras PRIMÁRIAS do CBQ.
Abaixo seguem as mesmas:

O nome dos arquivos de download

cbq-0002-download.in

Todos os arquivos de download devem obedecer a algumas regras na hora de serem nomeados. A primeira delas é que todos os arquivos de download devem começar com cbq-

cbq-0002-download.in

A numeração sempre deve começar a partir do 0002;

cbq-0002-download.in

Todos os arquivos devem terminar com .in

cbq-0002-download.in

O conteúdo dos arquivos de download

DEVICE=eth1,10Mbit,1Mbit
RATE=64Kbit
WEIGHT=6Kbit
PRIO=5
RULE=10.0.0.2
BOUNDED=yes
ISOLATED=yes

DEVICE=eth1,10Mbit,1Mbit – Esta linha contém a interface que sai para os clientes da rede.
RATE=64Kbit – Quantidade de banda destinada ao cliente. Aqui coloca-se qualquer valor que se deseje separar para o IP do cliente.
WEIGHT=6Kbit – Taxa máxima de download que o cliente pode alcançar (com pequenas variações para mais ou para menos).
PRIO=5 – Prioridade com que o IP do cliente deve ser vigiado. O normal é deixar 5.
RULE=10.0.0.2 – IP do cliente a ser vigiado.
BOUNDED=yes – Se setado para yes o usuário estará limitado mesmo que o link esteja com folga.
ISOLATED=yes – Se setado para yes indica que o cliente não poderá emprestar banda pra ninguem.

Arquivos de upload
O nome dos arquivos de upload

cbq-0002-upload.out

Todos os arquivos de upload devem obedecer a algumas regras na hora de serem nomeados. A primeira delas é que todos os arquivos de upload devem começar com cbq-

cbq-0002-upload.out

A numeração sempre deve começar a partir do 0002;

cbq-0002-upload.out

Todos os arquivos devem terminar com .out

cbq-0002-upload.out

O conteúdo dos arquivos de upload

DEVICE=eth1,10Mbit,1Mbit
RATE=64Kbit
WEIGHT=6Kbit
PRIO=5
RULE=10.0.0.2,
BOUNDED=yes
ISOLATED=yes

DEVICE=eth1,10Mbit,1Mbit – Esta linha contém a interface que sai para os clientes da rede.
RATE=64Kbit – Quantidade de banda destinada ao cliente. Aqui coloca-se qualquer valor que se deseje separar para o IP do cliente.
WEIGHT=6Kbit – Taxa máxima de download que o cliente pode alcançar (com pequenas variações para mais ou para menos).
PRIO=5 – Prioridade com que o IP do cliente deve ser vigiado. O normal é deixar 5.
RULE=10.0.0.2, – IP do cliente a ser vigiado. Observe que no arquivo de upload, o IP termina com uma vírgula (,).
BOUNDED=yes – Se setado para yes o usuário estará limitado mesmo que o link esteja com folga.
ISOLATED=yes – Se setado para yes indica que o cliente não poderá emprestar banda pra ninguem.

Iniciando o CBQ

Depois de criadas todas as regras, é preciso compilá-las, com o comando (isto em fedora, redhat e centos):

root@appunixlabs~# cbq compile

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# /etc/init.d/shaper compile

Basta, depois da compilação, iniciar o CBQ com o comando (isto em fedora, redhat e centos):

root@appunixlabs~# cbq start

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# /etc/init.d/shaper start

Ou se desejar pará-lo (isto em fedora, redhat e centos):

root@appunixlabs~# cbq stop

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# /etc/init.d/shaper stop

CBQ na inicialização

Adicione o comando cbq start ao rc.local para que carregue sozinho no ato do boot
(isto em fedora, redhat e centos):

root@appunixlabs~# echo "cbq start" >> /etc/rc.local

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# echo "/etc/init.d/shaper start" >> /etc/rc.local

Fontes:

http://www.ubuntu.com/ubuntu (ubuntu)
http://www.debian.org/ (debian)
http://centos.org/ (centos)
http://www.projetofedora.org/ (fedora)
http://sourceforge.net/projects/cbqinit/ (cbq)
http://migre.me/5gcMr (cbq sob fedora)

Como fazer upgrade do Debian Etch para o Debian Lenny

Standard

A perfeição com que o Debian e o Ubuntu operam no momento de upgrades de suas versões é impressionante (coisa que sistemas como o poderoso Rhel não recomendam), causando o mínimo de falhas possíveis/imaginárias no sistema que recebeu a atualização.

Neste artigo iremos mostrar como fazer upgrade do Debian Etch para o Debian Lenny. Vamos seguir os passos abaixo:

1 – Atualizar as listas do APT

Primeira coisa que iremos fazer é o backup das listas de repositórios, depois iremos modificar de etch para lenny os valores descritos da versão na lista de Repositórios, veja a versão antes da modificação:

deb http://ftp.us.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.us.debian.org/debian/ etch main contrib non-free
deb http://security.debian.org/ etch/updates main contrib non-free

Agora veja a versão depois modificação:

deb http://ftp.us.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.us.debian.org/debian/ lenny main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free

2 – Fazendo update dos pacotes

aptitude update
depois
aptitude install apt dpkg aptitude

Se for desktop use isto como adicional
dpkg -l libfam0c102 | grep ^ii
aptitude install libfam0
por fim
aptitude full-upgrade
isto pode também ser usado via apt-get com o comando:
apt-get dist-upgrade

Depois disto reinicie seu servidor/desktop e prepare-se para rodar o Debian em sua versão mais amigável, estável e flexível possível.

Abraços a todos.

Como judar varios PDFs Linux Ubuntu | Debian

Standard

Olá galera tudo na santa paz?
Surgiu esse dias a necessidade de juntar vários arquivos PDF em apenas 1 para enviar para um amigo que desejava estudar/conhecer um pouco sobre o mundo de um sysadmin Linux… surgiu a dúvida COmo juntar esses arquivos em apenas 1?
Pesquisando por ai (diga-se google) encontrei uma solução bem simples e eficaz….
Vamos lá….

Primeiro instale o aplicativo pdftk

root@appunix:~#apt-get install pdftk

Agora pra facilitar as coisas coloque todos os pdf´s a serem juntados na mesma pasta, vá até ela…. em nosso caso criamos uma pasta chamada labs na /home, vamos até ela

root@appunix:~#cd /home/labs
root@appunix:/home/labs# ls
linux1.pdf  linux2.pdf  linux3.pdf

Podem ver que tenho 3 arquivo, agora é bem simples digitem

root@appunix:/home/labs#pdftk linux1.pdf linux2.pdf linux3.pdf cat output linux.pdf

Explicando

pdftk → chamando o aplicativo que instalamos acima (ele é quem vai fazer a junção)
linux1.pdf linux2.pdf linux3.pdf → os arquivos que deseja juntar
cat output linux.pdf → funciona como se fosse um = na matemática, mandando concatenar o que o aplicativo pdftk fez com os 3 arquivos em questão no arquivo linux.pdf

Lembrando que eu poderia chamar o que chamo de linux.pdf de qualquer nome… não fiz testes para saber se o mesmo trabalha bem com caracteres especiais…. Está ai galera, simples/rápido e o melhor de tudo EFICIENTE….
Abraço a todos!!!! 😀

Mudando encoding do Postgres para poder usar banco de dados latin1 ou outro e mudar o encoding do Ubuntu ou Debian

Standard

Algo simples que desejamos e a trabalheira grandiosa :(. O que queremos? Mudar o encoding default para Latin1 (se bem que o mundo hoje gira em torno de utf8), assim como mudar locales para PT_BR.

1 – Encoding do Sistema Operacional Debian/Ubuntu Ferrados (sim, você brasileiro e a droga do locale te mostrando coisas de americanos, pode uma coisa destas?)

2 – Mudar o Encoding do Postgres.

Vamos ao ataque

Antemão você precisa saber que o seu sistema foi configurado por algum bestão, isto mesmo, o cara instalou o sistema americano sendo brasileiro.

Ter um porstgres que não aceita nem a pau um encoding diferente (padrão dessa tosquisse sempre é UTF8).

Locale do Sistema

Mãos-a-Obra

Todas as configurações e comandos foram executados como usuário root.

Existem vários arquivos que fazem a configuração do locale, precisamos configurar todos eles e depois executar alguns comandos, vamos lá.

Edite o arquivo /etc/environment e altere os campos LANG e LANGUAGE de forma que fiquem iguais ao abaixo, se não existir, acrescente:

LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"

O arquivo /etc/default/locale também deve ser editado e seu conteúdo deve ser:

LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"

Execute o seguinte comando:

# echo "pt_BR pt_BR.ISO-8859-1" >> /etc/locale.alias

Este arquivo grava os aliases para os locales, isso é para facilitar as configurações.

No diretório /var/lib/locales/supported.d alguns arquivos que configuram os locales que serão gerados, por padrão existem três arquivos “en”, “pt” e “local”. Para nosso caso, pode apagar o “en” e o “pt” deixando apenas o “local”.

Feito isso, edite o arquivo local e deixe seu conteúdo como abaixo:

pt_BR.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1

Muito bem, configuramos os arquivos necessários para a geração dos locales, agora vamos reconfigurar.

Os comandos abaixo fazem o serviço:

# localedef pt_BR -i pt_BR -f ISO-8859-1
# localedef pt_BR.ISO-8859-1 -i pt_BR -f ISO-8859-1
# localedef pt_BR.ISO8859-1 -i pt_BR -f ISO-8859-1
# dpkg-reconfigure locales
# locale-gen --purge
# locale-gen

###### SE HOUVER ERRO USE:
localedef pt_BR -i pt_BR -f UTF-8
localedef pt_BR -i pt_BR -f LATIN1

Acredito que apenas um desses três comandos fariam o serviço, mas como eu executei os três quando estava configurando o sistema não vou tirar algum deles, é melhor executar a mais e funcionar do que executar a menos e não funcionar.

Reinicie o sistema e execute o comando abaixo para termos certeza que está tudo conforme o desejado.

# locale
LANG=pt_BR
LANGUAGE=pt_BR:pt:en
LC_CTYPE="pt_BR"
LC_NUMERIC="pt_BR"
LC_TIME="pt_BR"
LC_COLLATE="pt_BR"
LC_MONETARY="pt_BR"
LC_MESSAGES="pt_BR"
LC_PAPER="pt_BR"
LC_NAME="pt_BR"
LC_ADDRESS="pt_BR"
LC_TELEPHONE="pt_BR"
LC_MEASUREMENT="pt_BR"
LC_IDENTIFICATION="pt_BR"
LC_ALL=

# locale -a
C
en_US.iso88591
POSIX
pt_BR.iso88591

Agora sim, está tudo como deveria estar. Nosso sistema já está usando ISO-8859-1.

(ISO-8859-1é LATIN1)

Corrigindo o Encoding do Postgres

Bem, esta é a hora do quebra-quebra, vamos lá:

1 – Crie uma nova instância (cluster) de gestão do Postgres:

sudo pg_createcluster -e LATIN1 -d /caminho/do/novoSGDB 8.3
cluster-8.3-2

Feito isto, a porta que o postgres vai operar neste novo SGDB será 5433

Criando SuperUser para administrar o Postgres

[root@appunixlabs:~] # su – postgres

[postgres@appunixlabs:~] $ createuser -P

Digite o nome da role a ser adicionada: pglinux
Digite a senha para a nova role:
Digite-a novamente:
A nova role poderá criar um super-usuário? (s/n) s
CREATE ROLE

Quer ver os users?

[postgres@appunixlabs:~] $ psql
postgres=# du
Lista de roles
Nome da role | Super-usuário | Cria role | Cria BD | Conexões  | Membro de
————–+—————+———–+———+———–+———–
pglinux       | sim                    | sim            | sim         | ilimitado    |
postgres         | sim                    | sim            | sim         | ilimitado    |
(2 registros)

postgres=# q

 

Obs: Se estiver usando Debian 4 mude o path para aceitar corretamente todas as mudanças

PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games”

 

 

Caso seus locales estejam 100% ajustados antes mesmo deste How To você pode usar outros meios, uma vez criado um banco com uma encoding (LATIN1, SQL_ASCII, UTF8), só é possível mudá-lo fazendo um backup e recriando o banco. Embora a documentação do PostgreSQL informe sobre a opção -E no pg_dump, falta um “pulo do gato”, que é o que vai ser apresentado neste passo a passo.

1. Se for migração de servidor, altere o arquivo pg_hba.conf (geralmente em /etc/postgresql/8.x/main/pg_hba.conf) do servidor antigo para incluir a linha:

hostnossl all postgres ipnovoservidor/32 trust

2. Reinicie o PostgreSQL no servidor antigo:

# service postgresql-8.3 restart

3. Faça um “su” para o usuário postgres no servidor novo:

# su postgres

4. Gere o backup no servidor novo (se for o mesmo servidor, a opção h é desnecessária) . UTF8 é um exemplo de encoding, mas de qualquer forma é recomendado como padrão):

$ pg_dump -h hostanti -C -E UTF8 -U postgres bancodedados > bancodedados.sql

5. O pulo do gato: a opção -E do pg_dump gera o ARQUIVO no encoding desejado. Mas a opção -C (que copia a estrutura original), copia fielmente, a ponto de gerar a linha:

CREATE DATABASE foh WITH TEMPLATE = template0 ENCODING = ‘LATIN1’;

com o encoding original, o que gera erro na importação.

O MACETE É TROCAR O ENCODING PARA O CORRETO:

CREATE DATABASE foh WITH TEMPLATE = template0 ENCODING = ‘UTF8’;

Obs.: Se o arquivo for grande, o “mcedit” (que uso muito), não dá conta de abrir, mas o “joe” não reclama.

6. Agora é só rodar:

$ psql -f bancodedados.sql

Como deixar OpenOffice em Português do Brasil Ubuntu | Debian

Standard

Oi galera tudo na paz?
Hoje vou ser rápido e ligeiro… alguém ai percebeu que o Openoffice após a instalação do nosso querido Ubuntu fica em Inglês?
É galera por algum motivo desconhecido (pelo menos por mim), nossa querida suite de escritório não adere ao idioma tupiniquim
mesmo você escolhendo a instalação como Português do brasil.. Vamos então…
COmo root ou usuário comum entre no terminal e digite :

Como root

root@appunix:~#apt-get install openoffice.org-l10n-pt-br openoffice.org-help-pt-br -y

COmo usuário comum

doooguinha@appunix:~$sudo apt-get install openoffice.org-l10n-pt-br openoffice.org-help-pt-br -y

Em caso de usuário comum será solicitada a senha, coloque-a e seja feliz….
pronto galera, aproveitem…
Abraço

Replicação de dados no Mysql sob SSL no Debian Squeeze

Standard

Esse how to tem 2 pontos chave:

1 – inibir o man in the middle

2 – replicar dados entre bases de dados para que, em uma eventual falha de hardware possamos estar beeeeem providos :).

 

Considerações iniciais:

master.appunixlabs.com.br -> 10.0.0.1

slave.appunixlabs.com.br -> 10.0.0.2

 

Nos 2 servers, como root devemos rodar o seguinte comando:

apt-get install mysql-server mysql-client -y

Assim que rodarmos o comando acima será solicitada confirmação de senha do root do banco de dados:

New password for the MySQL “root” user: <—– Devemos colocar a senha de root
Repeat password for the MySQL “root” user: <– Devemos repetir a senha de root

 

O que iremos fazer agora é verificar os recursos de ssl do server mysql, veja que devemos logar antes como root do banco de dados mysql:

mysql -u root -p

No mysql console devemos exibir as variáveis de SSL:

mysql> show variables like ‘%ssl%’;
Saída que mais interessa -> have_openssl e have_ssl:

+—————+———-+
| Variable_name | Value    |
+—————+———-+
| have_openssl  | DISABLED |
| have_ssl      | DISABLED |
| ssl_ca        |          |
| ssl_capath    |          |
| ssl_cert      |          |
| ssl_cipher    |          |
| ssl_key       |          |
+—————+———-+
7 rows in set (0.00 sec)

mysql>

Vamos sair do mysql:

quit;

 

Precisamos editar os confs do mysql para dar suporte ao SSL:

vim /etc/mysql/my.cnf

Na sessão * Security Features devemos acrescentar SSL, pode ser usado da seguinte forma:

 

# * Security Features
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
ssl
# ssl-ca=/etc/mysql/cacert.pem

Devemos validar nossa alteração, para isto vamos reiniciar o mysql com o seguinte comando:


/etc/init.d/mysql restart

Para confirmarmos o suporte o SSL em ambos os servers (presumindo que você está seguindo até aqui o passo-a-passo nos 2 servidores) devemos logar no mysql como root e verificar as variáveis de ssl:

mysql -u root -p

Logando-se como root devemos usar:

mysql> show variables like ‘%ssl%’;

A saída deste comando deve assemelhar-se com:

+—————+——-+
| Variable_name | Value |
+—————+——-+
| have_openssl  | YES   |
| have_ssl      | YES   |
| ssl_ca        |       |
| ssl_capath    |       |
| ssl_cert      |       |
| ssl_cipher    |       |
| ssl_key       |       |
+—————+——-+
7 rows in set (0.00 sec)

mysql>

Pule fora do mysql:

mysql> quit;

No servidor MASTER devemos colocar o suporte a acesso remoto ao mysql, do contrário não teremos a replicação de dados em tempo real em hipótese alguma :P, para isto devemos fazer o seguinte, no conf do mysql temos de editar a parte de bind-address:

vim /etc/mysql/my.cnf

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1

somente comentando bind-address estamos evitando que o acesso remoto só ocorra por lookup.

Ainda no server master temos de validar nossa alteração:

/etc/init.d/mysql restart

Vamos ver os sockets abertos do mysql na porta com suporte a SSL:

netstat -tap | grep mysql

A saída deve assemelhar-se com:

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

Devemos criar agora os certificados para dar suporte a camada segura, tanto no main server como no slave, para isso iremos rodar o seguinte comando:

mkdir /etc/mysql/newcerts && cd /etc/mysql/newcerts

Em paralelo iremos instalar também o openssl:

apt-get install openssl

Vamos criar os certificados agora com chave beeeeeeeem gorda para CA:

openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 1000 -key ca-key.pem > ca-cert.pem

Vamos criar os certificados do servidor master:

openssl req -newkey rsa:2048 -days 1000 -nodes -keyout master-key.pem > master-req.pem
openssl x509 -req -in master-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > master-cert.pem

Agora vamos criar o ceritificado do server slave:

openssl req -newkey rsa:2048 -days 1000 -nodes -keyout slave-key.pem > slave-req.pem
openssl x509 -req -in slave-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > slave-cert.pem

Agora que criamos os certificados no servidor Master, deveremos enviar os certificados para o servidor SLAVE, os quais lhe pertencem -> ca-cert.pem, slave-cert.pem e slave-key.pem.

No servidor Slave, como root criaremos a pasta dos certificados:

mkdir /etc/mysql/newcerts

Agora no Servidor Master devemos enviar os certificados para pasta de certificados do servidor Slave:

scp /etc/mysql/newcerts/ca-cert.pem root@10.0.0.2:/etc/mysql/newcerts

scp /etc/mysql/newcerts/slave-cert.pem root@10.0.0.2:/etc/mysql/newcerts

scp /etc/mysql/newcerts/slave-key.pem root@10.0.0.2:/etc/mysql/newcerts

 

No servidor MASTER temos de ativar o suporte aos certificados recém criados, para isto iremos editar novamente o conf do mysql na sessão de Segurança (aonde colocamos a linha SSL):

vim /etc/mysql/my.cnf

Seu conf deverá ficar parecido com este:

# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
ssl
ssl-ca=/etc/mysql/newcerts/ca-cert.pem
ssl-cert=/etc/mysql/newcerts/master-cert.pem
ssl-key=/etc/mysql/newcerts/master-key.pem

Agora iremos reiniciar o mysql para validar os certificados:

/etc/init.d/mysql restart

Agora, ainda no Master Server temos de dar permissão de replicação ao server Slave dentro do Mysql:

mysql -u root -p

No console do mysql rode:

mysql>GRANT REPLICATION SLAVE ON *.* TO ‘LOGINdoSLAVEserver’@’%’ IDENTIFIED BY ‘Senha_Slave’ REQUIRE SSL;

Para forçar um usuário que você criou para conectar-se somente por SSL, neste caso LOGINdoSLAVEserver devemos fazer o seguinte:

mysql>GRANT USAGE ON *.* TO ‘LOGINdoSLAVEserver‘@’%’ REQUIRE SSL;

mysql> FLUSH PRIVILEGES;

mysql> quit;

Os dois comandos acima dizem: Atualize os privilégios (no caso logins e senhas, ou mudanças de permissões de banco de dados para usuários) e saia fora ;).

Agora precisamos setar a base de dados de logs e dizer quem é o master. Faremos isto assim:

vim /etc/mysql/my.cnf

# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
binlog_do_db            = basedelogsdb

Chamamos nossa base de dados de logs que iremos compartilhar de basedelogsdb e para validar a mudança do servidor Master temos de reiniciar o mysql:

/etc/init.d/mysql restart

Teremos agora de fazer um dump da base de dados de logs para deixar o slave correndo no mesmo embalo do master, para isto faremos o seguinte:

mysql -u root -p

Depois de logar-se no Mysql:

mysql>USE exampledb;
mysql>FLUSH TABLES WITH READ LOCK;
mysql>SHOW MASTER STATUS;

O último comando deve exibir:

+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 |      106 | exampledb    |                  |
+——————+———-+————–+——————+
1 row in set (0.00 sec)

mysql>
Neste ponto não devemos dar quit, é muito importante isto, pois, no server Master ainda, iremos abrir outro terminal (se estiver direto no shell use CTRL + ALT + F2), abrindo uma nova shell logue-se como root e vamos continuar nosso how to. Como root rode os comandos:

cd /tmp

mysqldump -u root -p aSENHAdoMysql –opt basedelogsdb > cluster.sql

scp snapshot.sql root@10.0.0.2:/tmp

Nos passos acima entramos na pasta temporária, como root do banco de dados geramos um dump da base de dados de logs do main server e enviamos para o /tmp do servidor SLAVE.

Agora você pode sair da segunda tela, voltar para a primeira (CTRL + ALT+ F1, caso esteja 100% na shell) e rodar:

mysql> UNLOCK TABLES;

mysql> quit;

 

No servidor SLAVE iremos editar o conf do mysql na sessão [mysqld] e inserir as strings:

vim /etc/mysql/my.cnf

server-id=2
master-connect-retry=60
replicate-do-db=basedelogsdb

Este ID que estamos vendo JAMAIS poderá ser igual em servers que estão replicando dados.

Para validar nossas mudanças rode:

/etc/init.d/mysql restart

Agora iremos criar a base de dados de logs dentro do servidor SLAVE:

mysql -u root -p

mysql> CREATE DATABASE exampledb;
mysql> quit;

Ainda no servidor SLAVE iremos restaurar o dump chamado cluster.sql:

/usr/bin/mysqladmin –user=root –password=SenhaROOTmysql stop-slave
cd /tmp
mysql -u root -p SenhaROOTmysql basedelogsdb < cluster.sql

Agora iremos logar-nos como root no SLAVE server para poder ativar as variáveis de Show Master exibidas no main server, ou seja, o que foi exibido lá deverá ser ativado aqui, por isso tome muito cuidado:

mysql -u root -p

mysql> CHANGE MASTER TO MASTER_HOST=’10.0.0.1′, MASTER_USER=’LOGINdoSLAVEserver‘, MASTER_PASSWORD=’Senha_Slave‘, MASTER_LOG_FILE=’mysql-bin.000001’, MASTER_LOG_POS=106, MASTER_SSL=1, MASTER_SSL_CA = ‘/etc/mysql/newcerts/ca-cert.pem’, MASTER_SSL_CERT = ‘/etc/mysql/newcerts/slave-cert.pem’, MASTER_SSL_KEY = ‘/etc/mysql/newcerts/slave-key.pem’;

mysql> START SLAVE;

Para confirmarmos se tudo ficou filé:

mysql> SHOW SLAVE STATUS G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.0.1
Master_User: LOGINdoSLAVEserver
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 106
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: basedelogsdb
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 106
Relay_Log_Space: 407
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: Yes
Master_SSL_CA_File: /etc/mysql/newcerts/ca-cert.pem
Master_SSL_CA_Path:
Master_SSL_Cert: /etc/mysql/newcerts/slave-cert.pem
Master_SSL_Cipher:
Master_SSL_Key: /etc/mysql/newcerts/slave-key.pem
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)

mysql>

 

Com isto todas as mudanças que ocorrerem em basedelogsdb no master server estarão replicadas no Slave Server.

 

Abraços a todos e bons estudos.
Equipe AppUnix.

Fontes:

Bloquear/Liberar Internet hora/dias específicos Squid

Standard

Olá galera tudo na paz?

Esses dias surgiu a necessidade de fazer algo no Squid que ainda não havia usado/precisado… foi necessário bloquear internet de uma certo funciorário em um certo horário (a história se resume no seguinte, no horário de almoço da Telefonista uma Menina/Moça/Mulher que a substiuia acessava mais de 1000 S/s (mil sites por segundo). Um certo dia foi implementado Sarg para que os donos soubessem o que cada funcionário estava acessando através da internet… Após alguns dias do Sarg rolando, um dos donos chega ao relatório dessa tal Telefonista. A casa caiu…

– Doooguinha, porque a Telefonista está acessando tanta coisa? Bloqueia o que não for de trabalho.

Vou eu olhar, a pobre da Telefonista nada acessava… somente kboing para ouvir músicas o dia inteiro (Telefonistas do Brasil vocês merecem ao menos um pouco de música, o trabalho de vocês é muito estressante…),então resolvi através do IPTRAF(ferramnte de monitoramento de tráfego de rede) analizar o tréfego durante o horário de almoço…. Foi naquele momento que vi de verdade o que é um gargalo de rede (a maldita substituta). Sites de compra coletiva eu nunca vi tantos e com tantos nomes diferentes…. me parece que ela tinha todos gravados de cabeça. Mas vamos lá a uma solução simples e rápida através do Squid.

Primeiro na parte de ACLs do Squid crie 4 ACLs no squid.conf (/etc/squid/squid.conf) semelhantes as minhas (pode alterar o nome para facilitar em sua administração).

acl Telefonista src 192.168.2.110/32
acl time1_Telefonista time MTWHFA 08:00-12:30
acl time2_Telefonista time MTWHFA 12:31-13:59
acl time3_Telefonista time MTWHFA 14:00-18:00

Explicando a primeira ACL, acl <nome_da_acl> scr <ip_cliente>/32 (isso significa que é uma máscara de rede de classe C, caso sua rede seja de classe diferente adeque essa linha)

As outras 3 ACLs são as faixas de tempo no qual vamos liberar/bloquear acesso a mercer de nossa necessidade.Agora no devido local em seu Squid vamos Liberar/Bloquear (Allow/Deny) a partir de nossas necessidades, em nosso caso ficou assim:

http_access allow Telefonista time1_Telefonista
http_access deny Telefonista time2_Telefonista
http_access allow Telefonista time3_Telefonista

Na primeira regra estamos liberando acesso a internet para a Telefonista de 08:00 às 12:30. Já no horário de 12:31 às 14:00 estará tudo bloqueado e, no horário de 14:01 às 18:00 volta a ser tudo liberado novamente.Lembrando que essa regra vale de segunda a sábado.

Após terminar a modificação das regras no squid.conf e salvá lo será necessário que reinicie seu serviço ou ao menos dê uma reload para que o mesmo releia o .conf com as devidas alterações e as coloque em vigor. Pode-se usar qualquer desses comando seguintes:

root@appunix:~#/etc/init.d/squid reload

root@appunix:~#/etc/init.d/squid restart

root@appunix:~#service squid reload

root@appunix:~#service squid restart

root@appunix:~#killall squid -HUP

Esse último é o que mais uso, pela agilidade… onde o sistema finalizará todos os processos com o nome de squid e rapidamente startará relendo o conf com as alterações feitas e, o melhor é uqe o usuário não percebe, bem semelhante ao /etc/init.d/squid reload e service squid reload. Espero ter ajudado.

Fiquem atentos, agora que estou um pouco mais familiarizado com o ambiente do Squid vou postar vários artigos sobre o assunto. Sintam se a vontade para fazer perguntas e sugerir assuntos para nossos futuros artigos.

Abraço a todos. 😀

smartmontools smartctl monitorando o smart de seus hds (by Mr. Morimoto)

Standard

Este artigo funciona em Ubuntu Server e Debian.
Autor: Carlos E. Morimoto -> http://www.hardware.com.br/artigos/monitorar-smart/

É possível monitorar os erros de leitura do HD (mesmo antes dos badblocks começarem a aparecer) usando o SMART, um recurso de monitoramento disponível em todos os HDs modernos, onde a própria controladora monitora o status do HD e disponibiliza um log numa área reservada, que pode ser lida pelo sistema operacional.

No Linux, este recurso é disponibilizado através do “smartmontools“, um pacote disponível nos repositórios da maioria das distribuições e também no http://smartmontools.sourceforge.net/.
Para instalar no UBUNTU ou Debian use:

apt-get install smartmontools mailutils -y
O smartmontools é baseado no “smartsuite”, um pacote mais antigo, que ainda é incluído em algumas distribuições (como no Debian), mas que oferece menos funções e não é mais desenvolvido ativamente.

A maior parte das funções podem ser acessadas usando o utilitário “smartctl“, incluído no pacote. Comece usando a opção “-i”, seguida do device do HD (como em: smartctl -i /dev/hda) para ver informações sobre o drive:

 

Note que neste caso, embora o SMART seja suportado pelo drive, ele está desativado. Antes de mais nada, precisamos ativá-lo, usando o comando:

# smartctl -s on /dev/hda

Para um diagnóstico rápido da saúde do drive (fornecido pela própria controladora), use o parâmetro “-t short“, que executa um teste rápido, de cerca de dois minutos e (depois de alguns minutos) o parâmetro “-l selftest” que exibe o relatório do teste:

# smartctl -t short /dev/hda

 

Sending command: “Execute SMART Short self-test routine immediately in off-line mode”.
Drive command “Execute SMART Short self-test routine immediately in off-line mode” successful. Testing has begun.
Please wait 2 minutes for test to complete.
# smartctl -l selftest /dev/hda

Este comando exibe um relatório de todos os auto-testes realizados e o status de cada um. Num HD saudável, todos reportarão “Completed without error“.

Você pode executar também um teste longo (que dura cerca de uma hora) usando o parâmetro “-t long“. Ambos os testes não interferem com a operação normal do HD, por isso podem ser executados com o sistema rodando. Em casos de erros, o campo “LBA_of_first_error” indica o número do primeiro setor do HD que apresentou erros de leitura, como em:

Nestes casos, execute novamente o teste e verifique se o erro continua aparecendo. Se ele desaparecer no teste seguinte, significa que o setor defeituoso foi remapeado pela controladora, um sintoma benigno. Caso o erro persista, significa que não se trata de um badblock isolado, mas sim o indício de um problema mais grave.

O parâmetro “-H” (health) exibe um diagnóstico rápido da saúde do drive, fornecido pela própria controladora:

# smartctl -H /dev/hda

SMART overall-health self-assessment test result: PASSED

Neste caso, o SMART informa que não foi detectado nenhum problema com o drive. Em casos de problemas iminentes, ele exibirá a mensagem “FAILING“. Este diagnóstico da controladora é baseado em várias informações, como erros de leitura, velocidade de rotação do disco e movimentação da cabeça de leitura.

Um disco “FAILING” não é um local seguro para guardar seus dados, mas em muitos casos ainda pode funcionar por alguns meses. Se ainda não houverem muitos sintomas aparentes, você pode aproveitá-los em micros sem muita importância, como estações que são usados apenas para acessar a Web, que não armazenam dados importantes. Note que, embora relativamente raro, em muitos casos o drive pode realmente se perder menos de 24 horas depois de indicado o erro, por isso transfira todos os dados importante imediatamente.

Você pode ver mais detalhes sobre o status de erro do HD usando o parâmetro “-A“, que mostra todos os atributos suportados pelo HD e o status de cada um. Na sexta coluna (Type) você pode verificar a importância de cada um; os marcados como “Old_age” indicam sintomas de que o HD está no final de sua vida útil, mas não significam por sí só problemas iminentes. Os mais graves são os “Pre-Fail”, que indicam que o HD está no final de sua vida útil.

Na coluna “WHEN_FAILED” (a mais importante), você vê o status de cada opção. Num HD saudável, esta coluna fica limpa para todas as opções, indicando que o HD nunca apresentou os erros:

O número de setores defeituosos no drive (não remapeados) pode ser visto nos atributos “197 Current_Pending_Sector” e “198 Offline_Uncorrectable”, onde o número de bad blocks é informado na última coluna. Em situaçãoes normais, os badblocks não remapeados contém pedaços de arquivos, que a controladora muitas vezes tenta ler por muito tempo antes de desistir.

Em casos extremos, onde existam vários badblocks não marcados, você pode usar o truque de encher o HD com zeros, usando o comando “dd if=/dev/zero of=/dev/hda” para forçar a controladora a escrever em todos os blocos e assim remapear os setores (perdendo todos os dados, naturalmente).

O número de setores defeituosos já remapeados, por sua vez, pode ser acompanhado através dos atributos “5 Reallocated_Sector_Ct” e “196 Reallocated_Event_Count”.

Naturalmente, não basta executar estes testes apenas uma vez, pois erros graves podem aparecer a qualquer momento. Você só terá segurança se eles forem executados periodicamente.

Para automatizar isso, existe o serviço “smartd” (“smartmontools” no Debian), que fica responsável por executar o teste a cada 30 minutos e salvar os resultados no log do sistema, que você pode acompanhar usando o comando “dmesg

No caso do Debian, além de configurar o sistema para inicializar o serviço no boot, você precisa configurar também o arquivo “/etc/default/smartmontools“, descomentando a linha “start_smartd=yes“.

O padrão do serviço é monitorar todos os HDs disponíveis. Você pode também especificar manualmente os HDs que serão monitorados e os parâmetros para cada um através do arquivo “/etc/smartd.conf“.

Comece comentando a linha “DEVICESCAN”. O arquivo contém vários exemplos de configuração manual. Uma configuração comum é a seguinte:

/dev/hda -H -l error -l selftest -t -I 194 -m tux@gmail.com

Esta linha monitora os logs do /dev/hda (erros e testes realizados) e monitora mudanças em todos os atributos (incluindo a contagem de bad blocks e setores remapeados), com exceção da temperatura (que muda freqüentemente) e envia e-mails para a conta especificada sempre que detectar mudanças. Para que ele use apenas o log do sistema, sem enviar o e-mail, remova a opção “-m”.

Para que os relatórios via e-mail funcionem, é preciso que exista algum MTA instalado na máquina, como o Sendmail ou o Postfix. O smartd simplesmente usa o comando “mail” (que permite o envio de e-mails via linha de comando) para enviar as mensagens. No Debian (além do MTA) é necessário que o pacote “mailutils” esteja instalado.

Depois de alterar a configuração, lembre-se de reiniciar o serviço, usando o comando:

# /etc/init.d/smartd restart

ou:

# /etc/init.d/smartmontools

Caso o SMART indique algum erro grave e o HD ainda esteja na garantia, você pode imprimir o relatório e pedir a troca.

A vida útil média de um HD IDE é de cerca de 2 anos de uso contínuo. HDs em micros que não ficam ligados continuamente podem durar muito mais, por isso é saudável trocar os HDs dos micros que guardam dados importantes anualmente e ir movendo os HDs mais antigos para outros micros.

Normalmente, os fabricantes dão 1 ano de garantia para os HDs destinados à venda direta ao consumidor e 6 meses para os HDs OEM (que são vendidos aos integradores, para uso em micros montados). Uma dica geral na hora de comprar HDs é nunca comprar HDs com apenas 3 meses de garantia, que normalmente é dada apenas para HDs remanufaturados.

Nossa recomendação de comando seria:

#/usr/sbin/smartctl -q errorsonly -H -l selftest -l error /dev/sda

Onde sda vai de acordo com sua tabela de discos. Esse comando inclusive reportou em um servidor que gerenciamos a seguinte mensagem:

ATA Error Count: 1
Error 1 occurred at disk power-on lifetime: 1692 hours (70 days + 12 hours)

ou seja, em 70 dias e 12 horas (estimativa feita pelo Smartmontools, nosso disco Morrerá)…

Já nos avisou para substituição do disco em questão.É isso galera, usem e abusem. É gratis!!!

 

Agradecimentos a Carlos E. Morimoto, um mestre em Gnu/Linux 😉

http://www.hardware.com.br/artigos/monitorar-smart/

Como instalar o apache 2 mysql 5 php 5 e phpmyadmin no Debian 5.0.6

Standard

PessoALL, estamos fazendo outro How to da série Lamp2. O ambiente apache (container web ou servidor de páginas mais utilizado da internet), php 5 (linguagem de programação mais utilizada da internet), mysql 5 (banco de dados mais usado na internet) e phpmyadmin (gestor de bases de dados mysql mais amigável em termos de front-end) é indispensável para desenvolvedores php. Abaixo, em passos e imagens simples você saberá como instalar e deixar 100% operacional a famosa arquitetura LAMP2.

Primeiro passo é ter poder de root (no caso de nossa instalação). Iremos abrir o console como root afim de evitar que utilizemos o comando sudo antes dos comandos gerais de instalação do lamp2. Na realidade NADA impede que você possa instalar o lamp2 com comandos em um terminal comum, a única coisa que ressaltamos é que tome cuidado sempre com a precedência do comando sudo na frente de nossos comandos abaixo citados, ou logar-se como root com su –  para atrair um ambiente root globalmente. No mais tudo será muito semelhante.

O Hardware testado é simples, celeron i386 (debian 32 bits em cima de um celeron), 512 de ram e disco de 10gb.
A versão usada é o Debian 5.0.6.

1 – Clique em Aplicações -> Acessórios -> Terminal Como Root. A imagem abaixo demonstra claramente como este passo-a-passo é feito:

terminal root

terminal root

Antes de mais nada certifique-se que tudo está ok com o apt-get, por isso use:

apt-get update

A saída é muito parecida com a imagem abaixo:

Apt get

Certificar o Apt

Assim que o terminal estiver operando (aberto) vamos instalar o apache2 com o seguinte comando:

apt-get install apache2

Assim que este comando for digitado, a saída exige que se Aperte S para confirmar ou N para cancelar a instalação. A imagem é muito parecida com a saída abaixo:

confirmar apache2

confirmar apache2

A saída após confirmar com S é muito parecida com:

saida apache2

saida apache2

Neste ponto o apache 2 está online.
Agora vamos instalar o php5 no apache 2 como DSO (php como módulo do apache2).
Para isto digite o comando:

apt-get install php5 libapache2-mod-php5

A saída para este comando é muito parecida com a imagem abaixo:

apache php mod

apache php mod

Pronto, para confirmar que o php 5 está sendo interpretado no apache2, primeiro é necessário digitar o comando abaixo afim de que o apache 2 possa reler suas configurações de maneira simples e rápida:

/etc/init.d/apache2 restart

Esse comando reinicia o apache2. Feito isto, podemos remover o index.html e criar um arquivo php. Para isto faça:

rm -rf /var/www/index.html

Este comando remove o arquivo index.html default do apache2. Abaixo vamos criar um arquivo index.php:

vim /var/www/index.php

Dentro do arquivo coloque o conteúdo da imagem abaixo:

index php

index php

A saída disto pode ser testada em um navegador através do endereço:

http://localhost/index.php

A saída deste acesso deve ser indêntica a imagem abaixo:

localhost

localhost

Agora precisams instalar o mysql 5 em nosso Debian, para isto use o seguinte comando:

apt-get install mysql-server

Será necessário confirmar, conforme a imagem abaixo:

instalar MYSQL

instalar MYSQL

Confirme com S, assim que ocorrer o processo de instalação do mysql server a saída será muito parecida com a imagem abaixo:

confirmar senha MYSQL

confirmar senha MYSQL

Esse trecho o mysql vai pedir a senha de root que será a senha padrão do administrador do mysql 5. Confirme com qualquer senha definida ao seu critério, em seguida uma nova tela será exibida pedindo confirmação de senha novamente, conforme a tela abaixo:

Repetir Senha MYSQL

Repetir Senha MYSQL

As mensagens exibidas na instalação do mysql após confirmado devem ser muito parecidas com as da tela abaixo:

Resultado Mysql

Resultado Mysql

Agora iremos para o passo final, a integração entre o apache, php, mysql e phpmyadmin. Para isto precisamos instalar a integração com o seguinte comando:

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

Assim que o comando é digitado, conforme citamos acima, você precisa apertar S para que seja confirmada a instalação da integração de o phpmyadmin. A saída do comando acima é muito parecida com a imagem a seguir:

lamp Integracao

Confirmando com S a instalação prosseguirá, porém o phpmyadmin solicitará o container o qual ele vai operar. Devemos escolher o Apache2 conforme nosso padrão de instalação. Printamos a tela com esta informação:

Marque Apache

Marque Apache

Após marcação, a saída final segue-se abaixo:

Saida Integracao

Saida Integracao

Pronto, agora só precisamos reiniciar o apache2 para que toda integração ocorra fielmente, precisamos copiar a pasta do phpmyadmin para o /var/www afim de acessarmos com c o front-end do phpmyadmin.
Para isto digite os comandos:

/etc/init.d/apache2 restart

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

O segundo comando faz a cópia citada.

Para testarmos TUDO basta abrirmos o navegador e inserirmos o endereço http://localhost/phpmyadmin, se a saída for idêntica a da imagem abaixo, parabéns, sua missão acaba agora!

Teste php myadmin FINAL

Teste php myadmin FINAL

Se quiser acessar o phpmyadmin basta colocar root como usuário e informar a senha de root definida no momento da instalação do mysql.

Agradecemos pelo seu empenho junto conosco neste how to 😛

Att: littleoak

Ispconfig 2: how to create a park domain – como deixar um domínio acessar o conteúdo do outro como park no ispconfig

Standard

Uma das coisas mais interessantes no IspConfig é sua capacidade de permitir customizações em tudo que você possa imaginar. Aproveitando esta “boquinha” vamos fazer algo diferente.
Parkear domínios no Parallels Plesk e no Whm/CPanel é coisa fácil, pois tudo é automatizado, mas isto não quer dizer que o bom e velho vim (ou qualquer OUTRO EDITOR) não entre em ação.

Para isto, precisamos logar-nos como root no servidor aonde iremos parkear domínios, e devemos (antes de mais nada) fazer backup do arquivo de configuração do apache, sendo assim use o comando:

cp -rp /etc/httpd/conf/httpd.conf /root/httpd.conf.OLD


Temos então um arquivo garantido para que, em qualquer eventualidade sirva para consulta ou possivelmente correção do arquivo mais recente.

Entremos no arquivo de configuração:

vim /etc/httpd/conf/httpd.conf

Vá para o final do arquivo e localize exatamente este trecho:


Options ExecCGI -Indexes
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo
Order allow,deny
Allow from all

Deny from all

Feito isto, o que devemos fazer é simples.
Sabendo-se que o ISPConfig lê um outro arquivo com os vhosts dos usuários web, devemos antecipar nossa configuração de maneira que a linha do ispconfig fique abaixo do nosso vhost.

Acima da linha com a informação:

Include /etc/httpd/conf/vhosts/Vhosts_ispconfig.conf

Devemos fazer algo assim:

ServerName www.nomedodominioparkeado.com:80
ServerAdmin webmaster@dominiodestino.com.br
DocumentRoot /var/www/web100/web
ServerAlias dominiodestino.com.br
DirectoryIndex index.html index.htm index.php index.php5 index.php4 index.php3 index.shtml index.cgi index.pl index.jsp Default.htm default.htm
Alias /cgi-bin/ /var/www/web100/cgi-bin/
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
ErrorLog /var/www/web100/log/error.log
AddType application/x-httpd-php .php .php3 .php4 .php5
php_admin_flag safe_mode On
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Alias /stats “/var/www/web100/web/webalizer”
Alias /error/ “/var/www/web100/web/error/”
ErrorDocument 400 /error/invalidSyntax.html
ErrorDocument 401 /error/authorizationRequired.html
ErrorDocument 403 /error/forbidden.html
ErrorDocument 404 /error/fileNotFound.html
ErrorDocument 405 /error/methodNotAllowed.html
ErrorDocument 500 /error/internalServerError.html
ErrorDocument 503 /error/overloaded.html
AliasMatch ^/~([^/]+)(/(.*))? /var/www/web100/user/$1/web/$3
AliasMatch ^/users/([^/]+)(/(.*))? /var/www/web100/user/$1/web/$3

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* – [F]

Perceba que no começo falei XXX.XXX.XXX.XXX, isto refere-se ao ip do seu dedicado (shared ip dos domínios :P)

Por este vhost pegue a coisa em cheio.

A charada está nas linhas:

ServerName www.nomedodominioparkeado.com:80
ServerAdmin webmaster@dominiodestino.com.br
DocumentRoot /var/www/web100/web
ServerAlias dominiodestino.com.br

1 – indica o parkeamento
2 – email do main domain
3 – arquivos web de onde o parkeamento vai ler assim que o internauta acessar a página www.nomedodominioparkeado.com
4 – indica o destino do parkeamento, ou seja, ao acessar www.nomedodominioparkeado.com a pessoa na realidade acessa dominiodestino.com.br, porém tendo no cabeçalho o nome www.nomedodominioparkeado.com (url de entrada no navegador)


OBS: CASO O ARTIGO NÃO EXIBA AS TAGS DO APACHE, POR FAVOR VERIFIQUEM JUNTO AO ARQUIVO /ETC/HTTPD/CONF/HTTPD.CONF.

Abraços e espero ter contribuído com um dia feliz para nós… lol.
bye!

RoundCube não está permitindo excluir mensagens. Pastas Trash, Send e Junk (lixeira, enviados e rascunho) não aparecem

Standard

Se você não consegue ver as pastas do RoundCube “seus problemas SE ACABARAM-SE”.
O bendito, em sua versão stable (quase 100% stable) está com uma linda opção em off (FALSE).

Na pasta …roundcube/config/main.inc.php (se for no ispconfig: /home/admispconfig/ispconfig/web/roundcubemail/config/main.inc.php)
Apresentará este array aqui:

// automatically create the above listed default folders on login
$rcmail_config[‘create_default_folders’] = FALSE;

Salve seu dia assim:

$rcmail_config[‘create_default_folders’] = TRUE;

Pronto 😀

Roundcube fixed!

create user output file. Command output: procmail: Error while writing to /var/mail…

Standard

create user output file. Command output: procmail: Error while writing to /var/mail…

Se esta é a mensagem de erro que vem no outlook que de quem está enviando um email para um destinatário que usa postfix seus problemas “SE ACABARAM-SE”.

Entre no console e como root e digite:

postconf -e 'mailbox_size_limit = 0'

Provavelmente é a quota ferrada e este comando te tira da forca :D.

Sistemas afetados: Debian, Ubuntu (lucid lynx, karmic…), Centos 5.5, Centos 5.4…

Mais que uma distribuição: Ubuntu é uma paixão!

Standard

Por estes dias estive trocando idéias com um amigo meu (dooguinha) que também adora Gnu/Linux, sobre qual distribuição usar, visto que estava com Windows XP em meu desktop pessoal e precisava de algo mais enriquecedor em termos de conhecimento (mexer com registro de Windows para remover falhas não é muito proveitoso, rsrsrs).

Resolvi voltar a utilizar-me do Ubuntu.

Antes quero expor alguns problemas que enfrentei antes desta escolha:

1 – Na tentativa de usar o OPENSUSE eu não poderia deixar de comentar da podridão que é em termos de velocidade de update nos repositórios do Opensuse, sem contar o drama que é para achar uma configuração avançada – resumo -> mv opensuse_my_desk /dev/null (apesar da excelente instalação em um hd ide de 320gb, e detecção de maneira louvável com ênfase em hardware),

2 – Na tentativa de usar o Fedora, o que mais me chamou atenção foi o boot todo voltado para arquitetura sata, ou seja, seu boot fica todo duro no /sbin/loader… Quem diria… o foguete ainda nem saiu do forno e já me deixou sem um minuto sequer desejoso em utiliza-lo. Sabe qual foi o fim? mv fedora_my_desk /dev/null,

3 – Na tentativa de usar o CentOS como desktop eu volto no ponto 2 e vivo o mesmo drama… mv centos_my_desk /dev/null.

Confesso que deixei o Ubuntu como sendo a última alternativa. Isto ocorreu devido um teste um pouco frustrado de utilizar-me da 10.04 em meu modesto desktop. Achei lento no uso, porém rápido no boot, e de maneira precipitada não lembrei que os repositórios estavam lotados graças a quantidade de fãs que esta distribuição faz a cada lançamento.

Decidi então subir manualmente o desktop, afim de obter algum “exclarecimento” no quesito velocidade de S.O., optei pela 9.10 subindo para Lucid. Abaixo segue um screen mostrando o primeiro ponto forte do Ubuntu aos meus olhos:


Após update, cheguei na Lucid e modifiquei os botões de janelas para a direita, afinal de contas de livre o mac só tem a escolha de compra do usuário!

Quer apontar os botões para o lado direito? Use:

gconftool-2 --type string --set "/apps/metacity/general/button_layout" "menu:minimize,maximize,close"

E para que isto se aplique a todos os users faça:

sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set "/apps/metacity/general/button_layout" "menu:minimize,maximize,close"

Ambos comandos pedem autorização para rodar, aplique a senha do root e pronto!

Por fim vai um print do meu desktop 😀 (ainda nem terminei minhas customizações, mas gostei das tonalidades).

O dia de testes na penúltima utilização do Ubuntu foi quando criei o tutorial do LAMP2 no Lucid Lynx.

Ah, o problema somente será o espaço para o Slackware 13.1. Estou um pouco triste por que se continuar curtindo meu Ubuntu terminarei abandonando meu slackzinho :(.

Abraços e boa noite ALL!