Instalei o GLPI em um servidor novo e subi um backup, porem ele não autenticava no AD, quando entrei para ver as conf me deparei com a mensagem: "A extensão LDAP não esta instalado em seu PHP", deu um branco, não lembrava como habilitar esta extensão, então na da mais obvio do que recorrer ao pai google, e nada mais justo do que compartilhar. :-)
LDAP é um módulo do php para comunicação com servidores ldap, como o openLdap do Linux ou o Active Directory do Windows.
Para habilitá-lo, instale o pacote php-ldap.
[Exemplo de instalação no Debian]
- Execute o seguinte comando:
# apt-get install php-ldap
[Exemplo de instalação no Fedora, Had Hat, e CentOS]
- Execute o seguinte comando:
# yum install php-ldap
[Remoção dos módulos]
Ao invés do parâmetro "install" nos comandos acima, utilize o parâmetro "remove".
Todos os créditos vão para: http://andreob.blogspot.com.br/2009/02/como-habilitar-o-modulo-ldap-no-php-do.html.
Mostrando postagens com marcador Linux. Mostrar todas as postagens
Mostrando postagens com marcador Linux. Mostrar todas as postagens
terça-feira, 31 de julho de 2012
segunda-feira, 30 de julho de 2012
Instalando OCS Inventory NG para inventário de rede.
O OCS Inventory NG é um software para inventario de computadores Windows e Linux, licenciado sob a GLPv2
Neste tutorial, irei demonstrar o passo a passo para instalar o OCS inventory NG 2.0.5 no CentOS 6.2 32bits.
Baixando os programas e bibliotecas necessárias:
# yum install -y httpd php php-gd php-pecl-zip php-mysql mysql-server perl-Apache-DBI perl-XML-Simple perl-SOAP-Lite perl-Net-IP perl-XML-SAX-Base perl-Compress-Zlib mod_perl
Habilitar o RPM forge para instalar o perl-Apache-DBI e Perl-XML-Entities.
# cd /tmp/
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm -K rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# rpm -i rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# yum install htop
# yum install perl-Apache-DBI
# yum install perl-XML-Entities
Desabilitar o RPM forge, alterando a linha enable para 0:
# vim /etc/yum.repos.d/rpmforge.repo
### Name: RPMforge RPM Repository for RHEL 6 – dag
### URL: http://rpmforge.net/
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net – dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0
Baixando o OCS Inventory NG:
# cd /tmp/
# wget https://launchpad.net/ocsinventory-server/stable-2.0/2.0.5/+download/OCSNG_UNIX_SERVER-2.0.5.tar.gz
Instalando OCS
# tar xvfz OCSNG_UNIX_SERVER-2.0.5.tar.gz
# cd OCSNG_UNIX_SERVER-2.0.5
Basicamente as estações da sua rede enviam as informações do hardware e software para o servidor OCS através de um cliente previamente instalado nelas, e então você acessa o servidor OCS via WEB e obtêm o inventário atualizado do seu parque computacional.
Neste tutorial, irei demonstrar o passo a passo para instalar o OCS inventory NG 2.0.5 no CentOS 6.2 32bits.
__________________________________________________
Baixando os programas e bibliotecas necessárias:
# yum install -y httpd php php-gd php-pecl-zip php-mysql mysql-server perl-Apache-DBI perl-XML-Simple perl-SOAP-Lite perl-Net-IP perl-XML-SAX-Base perl-Compress-Zlib mod_perl
Habilitar o RPM forge para instalar o perl-Apache-DBI e Perl-XML-Entities.
# cd /tmp/
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm -K rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# rpm -i rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# yum install htop
Instalando perl-Apache-DBI e Perl-XML-Entities:
# yum install perl-Apache-DBI
# yum install perl-XML-Entities
Desabilitar o RPM forge, alterando a linha enable para 0:
# vim /etc/yum.repos.d/rpmforge.repo
### Name: RPMforge RPM Repository for RHEL 6 – dag
### URL: http://rpmforge.net/
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net – dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0
Baixando o OCS Inventory NG:
# cd /tmp/
# wget https://launchpad.net/ocsinventory-server/stable-2.0/2.0.5/+download/OCSNG_UNIX_SERVER-2.0.5.tar.gz
Instalando OCS
# tar xvfz OCSNG_UNIX_SERVER-2.0.5.tar.gz
# cd OCSNG_UNIX_SERVER-2.0.5
# ./setup.sh
Só dar enter em todas as perguntas.
Se o apache ainda não tiver sido configurado voce precisa editar o arquivo:
# vim /etc/httpd/conf/httpd.conf
Coloque o ip do servidor na linha:
ServerName [ip_do_servidor]
Tire o comentário (#) da linha caso tenha.
Precisamos startar o apache e o mysql
# service httpd start
# service mysqld start
OCS Inventory NG instalado, agora temos que acessar a interface web para terminarmos as configurações;
Acesse: http://[ip_do_servidor]/ocsreports/
Se for apresentado a seguinte mensagem, é que ainda falta instalar o php-mbstring:
# yum install php-mbstring
Restarte o apache:
# service httpd restart
Desabilite o SELinux:
# vim /etc/sysconfig/selinux
altera a variável:
SELINUX=disabled
Isso ira desabilitá-lo no próximo reboot, para desabilitado sem precisar reiniciar de o comando:
# setenforce 0
Acesse novamente : http://[ip_do_servidor]/ocsreports/

Nas linhas em vermelho, é informado que você não será capaz de criar pacotes de deployment maiores que 8MB, caso queira é possível alterar este limite diretamente no arquivo /etc/php.ini alterando os parâmetros post_max_sizee upload_max_filesize.
Eu alterei para 100M.
Eu usei o usuário root para logar no banco, mas se preferir pode criar um usuário OCS.
Só dar enter em todas as perguntas.
Se o apache ainda não tiver sido configurado voce precisa editar o arquivo:
# vim /etc/httpd/conf/httpd.conf
Coloque o ip do servidor na linha:
ServerName [ip_do_servidor]
Tire o comentário (#) da linha caso tenha.
Precisamos startar o apache e o mysql
# service httpd start
# service mysqld start
OCS Inventory NG instalado, agora temos que acessar a interface web para terminarmos as configurações;
Acesse: http://[ip_do_servidor]/ocsreports/
Se for apresentado a seguinte mensagem, é que ainda falta instalar o php-mbstring:
# yum install php-mbstring
Restarte o apache:
# service httpd restart
Desabilite o SELinux:
# vim /etc/sysconfig/selinux
altera a variável:
SELINUX=disabled
Isso ira desabilitá-lo no próximo reboot, para desabilitado sem precisar reiniciar de o comando:
# setenforce 0
Acesse novamente : http://[ip_do_servidor]/ocsreports/

Nas linhas em vermelho, é informado que você não será capaz de criar pacotes de deployment maiores que 8MB, caso queira é possível alterar este limite diretamente no arquivo /etc/php.ini alterando os parâmetros post_max_sizee upload_max_filesize.
Eu alterei para 100M.
Eu usei o usuário root para logar no banco, mas se preferir pode criar um usuário OCS.
Estarei abordando a instalação dos clients no próximo post.
Abraço. :-)
quinta-feira, 8 de março de 2012
Como editar textos com o vi (vim)
Introdução
"vi" é a sigla para "Visual Interface". A origem desse nome se deve ao seguinte fato: quando o vi foi criado (começo da década de 80), não era comum existirem editores de textos como nos dias de hoje. Naquela época, você digitava um texto mas não podia vê-lo! Isso mesmo! Em 1992, foi criado o vim (Vi IMitator), um clone fiel ao vi, porém com muitas outras funcionaliades, que só foram sendo adicionadas. Algum tempo depois, o vim passou a ser chamado de `Vi IMproved' (vi melhorado).
O vim é um dos editores de textos mais utilizados no mundo Unix. Em alguns sistemas, existe um link simbólico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi é o executável, só que executa diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles têm algumas diferenças. O que você verá abaixo fala sobre o vim.
O vim é um editor de textos muito poderoso, ele pode: abrir váriosarquivos ao mesmo tempo, possui sistema de autocorreção, auto-identação, seleção visual, macros, seleção vertical de texto, uso de expressões regulares, sintaxe colorida, e muito mais. Ele não éexclusivo do Unix, ou seja, pode ser executado em outras plataformas, como Amiga, MacOS, Sun, Windows entre outras.
Existe também o gvim, que é o vim em modo gráfico, com todas as funcionalidades do vim em pleno funcionamento, o que muda é apenas o modo gráfico mesmo.
O vim possui vários modos, ou seja, estados em que ele se encontra. São eles: modo de inserção, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais:
Modo de inserção e de comandos
Para identificar o modo (estado) do vim, basta visualizar o rodapé da tela.
Agora, vamos à prática. Para executar o vim, utilize:
$ vi => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentação.
$ vi arquivo => Abre o arquivo de nome "arquivo".
$ vi arquivo + => Abre o arquivo de nome "arquivo", com o cursor no final do mesmo.
$ vi arquivo +10 => Abre o arquivo de nome "arquivo", com o cursor na linha 10.
$ vi arquivo +/Copag => Abre o arquivo de nome "arquivo", na primeira ocorrência da palavra "Copag".
$ vi arquivo => Abre o arquivo de nome "arquivo".
$ vi arquivo + => Abre o arquivo de nome "arquivo", com o cursor no final do mesmo.
$ vi arquivo +10 => Abre o arquivo de nome "arquivo", com o cursor na linha 10.
$ vi arquivo +/Copag => Abre o arquivo de nome "arquivo", na primeira ocorrência da palavra "Copag".
Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, é só olhar na última linha (rodapé) e não vai haver nada lá. Isso quer dizer que você não conseguirá escrever nada, pode digitar a vontade que só vai ouvir beeps. Para começar a escrever, pressione "i" em seu teclado. O vim entra em modo de inserção, que você comprova (como falado anteriormente) pelo rodapé da tela, onde fica a seguinte marcação:
- - -- INSERT --
Suponha que você já digitou o bastante, e quer salvar, por segurança. Pressione a tecla ESC para voltar em modo de comandos. E veja os comandos para salvar/sair:
:w => Salva o arquivo que está sendo editado no momento.
:q => Sai.
:wq => Salva e sai.
:x => Idem.
ZZ => Idem.
:w! => Salva forçado.
:q! => Sai forçado.
:wq! => Salva e sai forçado.
:q => Sai.
:wq => Salva e sai.
:x => Idem.
ZZ => Idem.
:w! => Salva forçado.
:q! => Sai forçado.
:wq! => Salva e sai forçado.
Então, você editou uma boa quantidade de textos e quer salvar:
:w
Agora, quer voltar a editar o texto:
i
Lembre que utilizando o "i" para inserção, a mesma se inicia inserindo texto antes do cursor. Veja agora outros subcomandos de inserção de texto:
A => Insere o texto no fim da linha onde se encontra o cursor
o => Adiciona uma linha vazia abaixo da linha corrente
O => Adiciona uma linha vazia acima da linha corrente
Ctrl + h => Apaga último caracter à esquerda
o => Adiciona uma linha vazia abaixo da linha corrente
O => Adiciona uma linha vazia acima da linha corrente
Ctrl + h => Apaga último caracter à esquerda
Voltando ao modo de comando:
Veja agora subcomandos para movimentação pelo texto:
Ctrl + f => Passa para a tela seguinte.
Ctrl + b => Passa para a tela anterior.
H => Move o cursor para a primeira linha da tela.
M => Move o cursor para o meio da tela.
L => Move o cursor para a última linha da tela.
h => Move o cursor para caracter a esquerda.
j => Move o cursor para linha abaixo.
k => Move o cursor para linha acima.
l => Move o cursor para caracter a direita.
w => Move o cursor para o início da próxima palavra (não ignorando a pontuação).
W => Move o cursor para o início da próxima palavra (ignorando a pontuação).
b => Move o cursor para o início da palavra anterior (não ignorando a pontuação).
B => Move o cursor para o início da palavra anterior (ignorando a pontuação).
0 (zero) => Move o cursor para o início da linha corrente.
^ => Move o cursor para o primeiro caracter não branco da linha.
$ => Move o cursor para o fim da linha corrente.
nG => Move o cursor para a linha de número "n"
Ctrl + b => Passa para a tela anterior.
H => Move o cursor para a primeira linha da tela.
M => Move o cursor para o meio da tela.
L => Move o cursor para a última linha da tela.
h => Move o cursor para caracter a esquerda.
j => Move o cursor para linha abaixo.
k => Move o cursor para linha acima.
l => Move o cursor para caracter a direita.
w => Move o cursor para o início da próxima palavra (não ignorando a pontuação).
W => Move o cursor para o início da próxima palavra (ignorando a pontuação).
b => Move o cursor para o início da palavra anterior (não ignorando a pontuação).
B => Move o cursor para o início da palavra anterior (ignorando a pontuação).
0 (zero) => Move o cursor para o início da linha corrente.
^ => Move o cursor para o primeiro caracter não branco da linha.
$ => Move o cursor para o fim da linha corrente.
nG => Move o cursor para a linha de número "n"
(susbstitua n pelo número da linha)..
G => Move o cursor para a última linha do arquivo.
G => Move o cursor para a última linha do arquivo.
Copiando e colando textos no vim (utilizando o mouse)
Selecione o texto necessário com o botão esquerdo do mouse. Quando você for colar, saiba que o texto será colado a partir de onde se encontra o cursor (esse que aparece, às vezes piscando e às vezes não, quando você está digitando). Para colar, depois de ter selecionado o texto, você pode utilizar uma dessas opções:
1) Pressionando o botão direito do mouse;
2) Pressionando o botão direito + botão esquerdo juntos;
3) Pressionando o botão do meio do mouse (mouse de 3 botões);
2) Pressionando o botão direito + botão esquerdo juntos;
3) Pressionando o botão do meio do mouse (mouse de 3 botões);
Observação: Lembre-se que o vim deve estar no modo de inserção.
Usando o modo visual do vim
Entre no modo visual: v
Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado.
Pressione e cole, utilizando a tecla "p" (paste).
Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado.
Pressione e cole, utilizando a tecla "p" (paste).
Veja agora como apagar um determinado texto:
Utilizando normalmente as teclas Backspace/Delete, ou entrando em modo visual (v) e pressionando a tecla Delete.
Você pode remover até o final de uma palavra, utilizando: dw
Pode também remover até o final de uma frase: d$
Pode também remover até o final de uma frase: d$
Desfazendo uma ação
É claro que você pode desfazer uma ação que você considera errado, ou que errou ao digitar o texto. É só utilizar: u
Se você precisar voltar o texto na tela, utilize as teclas Ctrl + r.
Se você precisar voltar o texto na tela, utilize as teclas Ctrl + r.
Subcomandos para localização de texto
/palavra => Procura pela palavra ou caracter acima ou abaixo do texto.
?palavra => Move para a ocorrência anterior da palavra (para repetir a busca use "n").
n => Repete o último comando utilizando / ou ?.
N => Repete o último comando / ou ? ao contrário (baixo para cima).
Ctrl+g => Mostra o nome do arquivo, o número da linha corrente e o total de linhas.
?palavra => Move para a ocorrência anterior da palavra (para repetir a busca use "n").
n => Repete o último comando utilizando / ou ?.
N => Repete o último comando / ou ? ao contrário (baixo para cima).
Ctrl+g => Mostra o nome do arquivo, o número da linha corrente e o total de linhas.
Mais opções para remoção de caracteres
x => Apaga o caracter onde o cursor estiver.
dd => Apaga a linha inteira onde o cursor estive
D => Apaga a linha a partir da posição do cursor até o fim.
J => Une a linha corrente à próxima.
:5dd => Removeas próximas 7 linhas a partir da posição do atual do cursor (qualquer número).
dd => Apaga a linha inteira onde o cursor estive
D => Apaga a linha a partir da posição do cursor até o fim.
J => Une a linha corrente à próxima.
:5dd => Removeas próximas 7 linhas a partir da posição do atual do cursor (qualquer número).
Mais para copiar e colar
:yy => Copia a linha onde o cursor se encontra.
:5yy => Copia as próximas 5 linhas a partir da posição atual do cursor.
:p => Cola o que foi copiado na linha abaixo do cursor atual.
:5yy => Copia as próximas 5 linhas a partir da posição atual do cursor.
:p => Cola o que foi copiado na linha abaixo do cursor atual.
Opções para substituição de textos
rCARACTER => Substitui o caracter onde o cursor se encontra pelo caracter especificado em CARACTER.
RTEXTO => Substitui o texto corrente pelo texto digitado (sobrepõe).
cw => Remove a palavra corrente para substituição.
cc => Remove a linha corrente para substituição.
C => Substitui o restante da linha corrente, esperando o texto logo após o comando.
J => Une a linha corrente à próxima.
:s/velho/novo => Substitui a primeira ocorrência de "velho" por "novo" na linha corrente.
:% s/velho/novo => Substitui em todo o arquivo (%) a primeira ocorrência de "velho" por "novo" em cada linha.
:% s/velho/novo/g => Substitui em todo o arquivo (%), todas (g) as ocorrências de "velho" por "novo".
:% s/velho/novo/gc => Igual ao anterior, mas pedindo confirmação para cada substituição.
:% s/^String[0-9]//gc => Expressões regulares também funcionam, como no sed.
:% s/./\u&/gc => Converte para maiúsculas (\u) o primeiro caracter (.) de cada linha.
RTEXTO => Substitui o texto corrente pelo texto digitado (sobrepõe).
cw => Remove a palavra corrente para substituição.
cc => Remove a linha corrente para substituição.
C => Substitui o restante da linha corrente, esperando o texto logo após o comando.
J => Une a linha corrente à próxima.
:s/velho/novo => Substitui a primeira ocorrência de "velho" por "novo" na linha corrente.
:% s/velho/novo => Substitui em todo o arquivo (%) a primeira ocorrência de "velho" por "novo" em cada linha.
:% s/velho/novo/g => Substitui em todo o arquivo (%), todas (g) as ocorrências de "velho" por "novo".
:% s/velho/novo/gc => Igual ao anterior, mas pedindo confirmação para cada substituição.
:% s/^String[0-9]//gc => Expressões regulares também funcionam, como no sed.
:% s/./\u&/gc => Converte para maiúsculas (\u) o primeiro caracter (.) de cada linha.
Abreviações
:ab => Mostra todas as abbr.
:abc[lear] => Remove todos.
:iab => Apenas para modo de inserção.
:iabc[lear] => Tira todos de inserção.
:cab => Apenas p/modo de comando ( : ).
:cabc[lear] => Tira todos os modos de comando.
:una vc => Tira ab para vc.
:abc[lear] => Remove todos.
:iab => Apenas para modo de inserção.
:iabc[lear] => Tira todos de inserção.
:cab => Apenas p/modo de comando ( : ).
:cabc[lear] => Tira todos os modos de comando.
:una vc => Tira ab para vc.
Observação: Pontuação, espaço ou o ENTER, disparam a expansão de uma abreviação. Porém, Ctrl+] também pode ser usado, para expandir sem adicionar caracteres.
Opções para o comando SET
:set
autowrite aw => Salva a cada alteração.
backspace bs => Comportamento backspace (1 ou 2).
errorbell eb => Campainha de erro.
expandtab et => Troca tab por espacos.
fileformat=dos ff => Converte o arquivo para DOS.
hidden hid => Preserva o buffer.
hlsearch hls => Elumina a última procura.
ignorecase ic => Case insensitive na busca.
incsearch is => Ilumina procura enquanto digita.
laststatus=2 => Mostra linha de estado.
lazyredraw lz => Não redesenha em macros.
lines=N => Múmero de linhas na tela.
magic => Usar mágicas na procura de padrões.
number nu => Mostra núm da linha.
report=N => Mostra aviso quando N linhas mudaram (0=sempre).
showcmd => Mostra o comando que se está fazendo.
showmatch sm => Mostra o casamento de {},[],().
smartcase scs => Assume "noic" quando tiver maiúsculas.
textwidth=N => Quebra de linha do texto.
undolevels ul=N => Guarde os N últimos comandos para desfazer (padrão=1000).
vb t_vb= => Retira o "beep" de erro.
autowrite aw => Salva a cada alteração.
backspace bs => Comportamento backspace (1 ou 2).
errorbell eb => Campainha de erro.
expandtab et => Troca tab por espacos.
fileformat=dos ff => Converte o arquivo para DOS.
hidden hid => Preserva o buffer.
hlsearch hls => Elumina a última procura.
ignorecase ic => Case insensitive na busca.
incsearch is => Ilumina procura enquanto digita.
laststatus=2 => Mostra linha de estado.
lazyredraw lz => Não redesenha em macros.
lines=N => Múmero de linhas na tela.
magic => Usar mágicas na procura de padrões.
number nu => Mostra núm da linha.
report=N => Mostra aviso quando N linhas mudaram (0=sempre).
showcmd => Mostra o comando que se está fazendo.
showmatch sm => Mostra o casamento de {},[],().
smartcase scs => Assume "noic" quando tiver maiúsculas.
textwidth=N => Quebra de linha do texto.
undolevels ul=N => Guarde os N últimos comandos para desfazer (padrão=1000).
vb t_vb= => Retira o "beep" de erro.
Agora invertendo maiúsculas/minúsculas
5~ => Inverte os 5 próximos caracteres.
g~$ => Inverte todos os caracteres até o fim da linha.
seleciona, u => Converte para minúsculas.
seleciona, U => Converte para maiúsculas.
seleciona, ~ => Inverte.
g~$ => Inverte todos os caracteres até o fim da linha.
seleciona, u => Converte para minúsculas.
seleciona, U => Converte para maiúsculas.
seleciona, ~ => Inverte.
Observação: Onde está escrito "seleciona", é para fazer utilizando o modo visual (v).
Agora veja como definir coluna de quebra de linha (problema que eu tive quando iniciei no aprendizado do vim):
:set textwidth=N
Se você já estiver num arquivo pronto:
:set wm=5 => O número 5 aqui são as colunas que serão "cortadas".
gqG => Até o final do arquivo.
gqG => Até o final do arquivo.
Vamos ver agora o que podemos fazer pressionando a tecla "Ctrl":
É claro que é segurando Ctrl + .
No modo de COMANDO:
A => Incrementa um número (Add)
X => Decrementa um número
S => ScrollLock
L => Redesenha tela
V => Modo visual (Visual Vertical)
G => Status do arquivo
M => Início da próxima linha
E => Linha abaixo sem mover cursor
Y => Linha acima sem mover cursor
N => Próxima linha (Next)
P => Linha anterior (Previous)
F => PageDown (Forward)
B => PageUp (Backyard)
U => PageUp / 2 (Up)
D => PageDown / 2 (Down)
X => Decrementa um número
S => ScrollLock
L => Redesenha tela
V => Modo visual (Visual Vertical)
G => Status do arquivo
M => Início da próxima linha
E => Linha abaixo sem mover cursor
Y => Linha acima sem mover cursor
N => Próxima linha (Next)
P => Linha anterior (Previous)
F => PageDown (Forward)
B => PageUp (Backyard)
U => PageUp / 2 (Up)
D => PageDown / 2 (Down)
Agora, no modo de INSERÇÃO:
A => Insere o último texto inserido
I => TAB
S => ScrollLock
H => BackSpace
T => 2 tab's no início da linha (Two Tabs)
V => Anula expansão do próximo caractere
J => Enter - quebra de linha
M => Enter - quebra de linha
L => Redesenha tela
R => Insere conteúdo do registrador [a-z] (Veja abaixo)
K => Insere um dígrafo (Veja abaixo)
N => Procura palavra no texto atual (Next)
P => Procura palavra no texto atual (Previous)
Y => Copia caractere que está acima (Yank)
I => TAB
S => ScrollLock
H => BackSpace
T => 2 tab's no início da linha (Two Tabs)
V => Anula expansão do próximo caractere
J => Enter - quebra de linha
M => Enter - quebra de linha
L => Redesenha tela
R => Insere conteúdo do registrador [a-z] (Veja abaixo)
K => Insere um dígrafo (Veja abaixo)
N => Procura palavra no texto atual (Next)
P => Procura palavra no texto atual (Previous)
Y => Copia caractere que está acima (Yank)
Veja os caracteres especiais:
ga => Mostra o código da letra sobre o cursor.
:dig => Mostra todos os dígrafos disponíveis (tabela).
:dig => Mostra todos os dígrafos disponíveis (tabela).
Exemplos: Para fazer um º, use Ctrl+K,-,o ("Ctrl"+"K"+"-"+"o").
Para fazer um ½, use Ctrl+K,1,2 ("Ctrl"+"K"+"1"+"2").
Para fazer um ½, use Ctrl+K,1,2 ("Ctrl"+"K"+"1"+"2").
Trabalhando com arquivos e janelas múltiplas
Você pode abrir múltiplos arquivos, por exemplo:
$ vim arquivo1 arquivo2
E pode alternar entre as janelas. Veja:
:wn => Grava o atual e vai ao próximo.
:wN => Grava o atual e vai ao anterior.
:args => Mostra todos os arquivos atuais.
:qa => Sai de todas as janelas de uma vez.
:all => Abre todos os arquivos em janelas individuais.
:wN => Grava o atual e vai ao anterior.
:args => Mostra todos os arquivos atuais.
:qa => Sai de todas as janelas de uma vez.
:all => Abre todos os arquivos em janelas individuais.
Tecla chave das janelas = Crtl+W
j, seta abaixo => Move para janela abaixo.
k, seta acima => Move para janela acima.
o => Apenas esta janela, fecha todas as outras (Only).
+, - => Muda o tamanho da janela.
= => Deixa todas as janelas com tamanhos iguais.
j, seta abaixo => Move para janela abaixo.
k, seta acima => Move para janela acima.
o => Apenas esta janela, fecha todas as outras (Only).
+, - => Muda o tamanho da janela.
= => Deixa todas as janelas com tamanhos iguais.
Os registradores
"[a-z] => Use o registrador [a-z] para o próximo delete, cópia ou cola.
:reg => Mostra o conteúdo de todos os registradores.
:reg [a-z] => Mostra o conteúdo do registradores [a-z].
:reg => Mostra o conteúdo de todos os registradores.
:reg [a-z] => Mostra o conteúdo do registradores [a-z].
Observação: O [a-z] pode ser: 0-9a-z%#:.-="
Marcas:
m[a-z] => Marca em [a-z] a posição corrente do cursor.
`[a-z] => Vai até a marca [a-z].
`` => Vai até a posição anterior ao último pulo (alterna).
:marks => Mostra as marcas ativas.
`[a-z] => Vai até a marca [a-z].
`` => Vai até a posição anterior ao último pulo (alterna).
:marks => Mostra as marcas ativas.
Fazendo gravação de seqüência de comandos
q[a-z] => Inicia a gravação de uma seqüência no registrador [a-z].
q[A-Z] => Inicia a gravação, adicionando no registrador [a-z].
q => Pára a gravação.
@[a-z] => Executa a seqüência do registrador [a-z] (5 vezes? 5@a)
q[A-Z] => Inicia a gravação, adicionando no registrador [a-z].
q => Pára a gravação.
@[a-z] => Executa a seqüência do registrador [a-z] (5 vezes? 5@a)
Dica: Pode-se colocar o @[a-z] dentro da própria gravação do q[a-z]! Assim ele é executado recursivamente. Muito útil quando há uma procura de padrões na gravação. faz para todas as ocorrências.
Mapeamentos
:map :r!date => Mapeamento em modo de comando.
:imap :r!date => Mapeamento em modo de inserção.
:cmap r!date => Mapeamento em modo linha de comando.
:vmap :r!date => Mapeamento em modo visual.
:imap :r!date => Mapeamento em modo de inserção.
:cmap r!date => Mapeamento em modo linha de comando.
:vmap :r!date => Mapeamento em modo visual.
Exemplos:
"html: negrito no trecho selecionado
:vmap d`pa # html: negrito no trecho selecionado
:vmap d`pa # html: negrito no trecho selecionado
"liga/desliga autoIndent
:map ,si :set ai!:echo "autoIndent="&ai
:map ,si :set ai!:echo "autoIndent="&ai
"mostrar os espaços em branco no fim das linhas
:map / *$^M
:map / *$^M
Através dos mapeamentos é possível "encurtar" comandos, ou seja, abreviá-los. Conheça as sintaxes:
Comment => Ciano
Constant => Roxo
Identifier => Ciano
PreProc => Azul escuro
Special => Vermelho
Statement => Amarelo
String => Roxo
Type => Verde
Constant => Roxo
Identifier => Ciano
PreProc => Azul escuro
Special => Vermelho
Statement => Amarelo
String => Roxo
Type => Verde
Todo => Preto, fundo marrom
Error => Branco, fundo vermelho
Ignore => Preto, fundo preto! - esconde
Error => Branco, fundo vermelho
Ignore => Preto, fundo preto! - esconde
Utilizando o recurso de expandtab
Mas, o que isso faz? Transforma todos os TABs em espaços. Podemos ativar dentro do próprio vim, utilizando o comando:
:set expandtab
Para desabilitar:
:set noexpandtab
Podemos colocar também no arquivo ~/.vimrc a seguinte linha:
set expandtab
O arquivo ~/.vimrc pode ser usado para muitas configurações, e essa é uma delas. Existe ainda o arquivo ~/.exrc, mas não entraremos em detalhes.
Podemos incluir a saída de um comando no vim, utilizando:
:r!comando
Por exemplo:
:r!rpm -q kernel
Incluiria o seguinte resultado, dentro do seu texto (isso na minha máquina):
kernel-2.4.18-3
Dicas diversas do vim:
:xit => Igual :wq, mas só grava se tiver sido alterado algo no arquivo.
:map N_ARQ ^R=expand("%:t:r")^M
Imprime no arquivo o próprio nome do arquivo editado quando N_ARQ é digitado.
Imprime no arquivo o próprio nome do arquivo editado quando N_ARQ é digitado.
Agora, veja como alinhar o texto:
:left
:right
:center
:right
:center
E para fazer uma busca de 2 palavras ao mesmo tempo:
/palavra1\|palavra2
/palavra1\|palavra2
Agora, veja quem colaborou com a criação das dicas, e de onde eu tirei tanta informação:O vim é um editor de textos com centenas de opções, comandos, strings... Enão dá para abordar tudo aqui. Por isso, a melhor maneira de conhecê-lo a fundo é usando-o.
quarta-feira, 8 de setembro de 2010
Instalando e configurando PhoPgAdmin para PostgresSQL
PhpPgAdmin é uma ferramenta web de administração do banco de dados PostgreSQL.
É perfeito para DBA's, iniciantes e provedores de hospedagem.
- Administra multiplos servidores
- Suporte para as versões do PostgreSQL: 7.0.x, 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x, e 8.2.x
Gerencia todos os aspectos de:
- Usuários e grupos
- Databases
- Schemas
- Tabelas, índices, constraints, triggers, rules e privilégios
- Views, sequences e funções
- Objetos avançados
- Reports
Fácil manipulação de dados:
- Visualização de tabelas, views e reports
- Execução de SQL
- Select, Insert, Update e Delete
- Copia os dados das tabelas em diversos formatos: SQL, COPY, XML, XHTML, CSV, Tabbed, pg_dump
- Importa scripts SQL, COPY data, XML, CSV and Tabbed
- Suporta o "Slony master-slave replication engine"
Excelente suporte a linguagens:
- Disponível em 27 linguagens
- Sem problemas de conflitos com encoding. É possível editar dados em Russo usando a interface em Japonês!
- Fácil de instalar e configurar.
Bom.. Chega de encher lingüiça e mão a obra!
Usei para este post o sistema operacional CentOS 9 mas provavelmete funcionará em outras.
Vou partir do principio que você já tem o PostgreSQL + PHP + Apache, instalados e devidamente configurados e rodando.
Faça o Download do PhpPgAdmin na pasta /temp.
#cd /tmp
#wget http://downloads.sourceforge.net/phppgadmin/phpPgAdmin-4.2.3.tar.gz?download
Descompacte o arquivo dentro da pasta html do seu servidor apache:
#tar zfxv phpPgAdmin-4.2.3.tar.gz -C /var/www/html/
Vá para a pasta e renomeie a pasta que ele criou:
#cd /var/www/html/
#mv phpPgAdmin-4.2.3 phppgadmin
Vá para a pasta conf dentro do phppgadmin e faça uma copia do arquivo config.inc.php-dist com o seguinte nome config.inc.php.
#cd phppgadmin/conf/
#cp config.inc.php-dist config.inc.php
Acesse o arquivo que vc copiou e altere as seguintes linhas:
#vim config.inc.php
$conf['servers'][0]['host'] = 'IP_DO_SERVIDOR';
$conf['extra_login_security'] = false;
Salve e feche o arquivo. (:x!)
você ira precisar da biblioteca php-pgsql, instale casa ainda não tenha feito:
#yum install -y php-pgsql
reinicie o apache e se possível o banco:
#service httpd restart
#service postgresql restart
pronto!
basta acessar:
http://localhost/phppgadmin/
Insira o usuário e senha do banco e pronto! Uma interface de administração web para seu banco de dados PostgreSQL.
É perfeito para DBA's, iniciantes e provedores de hospedagem.
- Administra multiplos servidores
- Suporte para as versões do PostgreSQL: 7.0.x, 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x, e 8.2.x
Gerencia todos os aspectos de:
- Usuários e grupos
- Databases
- Schemas
- Tabelas, índices, constraints, triggers, rules e privilégios
- Views, sequences e funções
- Objetos avançados
- Reports
Fácil manipulação de dados:
- Visualização de tabelas, views e reports
- Execução de SQL
- Select, Insert, Update e Delete
- Copia os dados das tabelas em diversos formatos: SQL, COPY, XML, XHTML, CSV, Tabbed, pg_dump
- Importa scripts SQL, COPY data, XML, CSV and Tabbed
- Suporta o "Slony master-slave replication engine"
Excelente suporte a linguagens:
- Disponível em 27 linguagens
- Sem problemas de conflitos com encoding. É possível editar dados em Russo usando a interface em Japonês!
- Fácil de instalar e configurar.
Bom.. Chega de encher lingüiça e mão a obra!
Usei para este post o sistema operacional CentOS 9 mas provavelmete funcionará em outras.
Vou partir do principio que você já tem o PostgreSQL + PHP + Apache, instalados e devidamente configurados e rodando.
Faça o Download do PhpPgAdmin na pasta /temp.
#cd /tmp
#wget http://downloads.sourceforge.net/phppgadmin/phpPgAdmin-4.2.3.tar.gz?download
Descompacte o arquivo dentro da pasta html do seu servidor apache:
#tar zfxv phpPgAdmin-4.2.3.tar.gz -C /var/www/html/
Vá para a pasta e renomeie a pasta que ele criou:
#cd /var/www/html/
#mv phpPgAdmin-4.2.3 phppgadmin
Vá para a pasta conf dentro do phppgadmin e faça uma copia do arquivo config.inc.php-dist com o seguinte nome config.inc.php.
#cd phppgadmin/conf/
#cp config.inc.php-dist config.inc.php
Acesse o arquivo que vc copiou e altere as seguintes linhas:
#vim config.inc.php
$conf['servers'][0]['host'] = 'IP_DO_SERVIDOR';
$conf['extra_login_security'] = false;
Salve e feche o arquivo. (:x!)
você ira precisar da biblioteca php-pgsql, instale casa ainda não tenha feito:
#yum install -y php-pgsql
reinicie o apache e se possível o banco:
#service httpd restart
#service postgresql restart
pronto!
basta acessar:
http://localhost/phppgadmin/
Insira o usuário e senha do banco e pronto! Uma interface de administração web para seu banco de dados PostgreSQL.
terça-feira, 27 de julho de 2010
Windows 7 autenticando no SAMBA.
Há alguns dias postei um artigo de como fazer o samba autenticar os usuários no Active Directory da Microsoft, porem depois de algum tempo me deparei com um problema:
Os clientes que executam o Windows 7 não conseguiam se autenticar no servidor samba.
Depois de muita pesquisa descobri que o Windows 7 vem por configurado para usar segurança de sessão NTLMv2, e o samba ainda não utiliza esse tipo de segurança de sessão.
A solução não é complexa, porém tem que editar uma diretiva de grupo.
O processo é o seguinte:
1 – “Iniciar, Executar” e digite: “secpol.msc”.
2 – Clique em “Diretivas Locais” –> “Opções de Segurança” ou “Local Policies” –> “Security Options”.
3 – Navegue até a opção “Segurança de Rede: Nível de autenticação LAN Manager” ou “Network Security: LAN Manager authentication leve”.
4 – Por Default Windows seta a policy para “NTVLM2 responses only”. Mude para “Enviar LM and NTLM – usar segurança da sessão NTLMV2 se negociada”. ou em inglês “LM and NTLM – use NTLMV2 session security if negotiated”.
Os clientes que executam o Windows 7 não conseguiam se autenticar no servidor samba.
Depois de muita pesquisa descobri que o Windows 7 vem por configurado para usar segurança de sessão NTLMv2, e o samba ainda não utiliza esse tipo de segurança de sessão.
A solução não é complexa, porém tem que editar uma diretiva de grupo.
O processo é o seguinte:
1 – “Iniciar, Executar” e digite: “secpol.msc”.
2 – Clique em “Diretivas Locais” –> “Opções de Segurança” ou “Local Policies” –> “Security Options”.
3 – Navegue até a opção “Segurança de Rede: Nível de autenticação LAN Manager” ou “Network Security: LAN Manager authentication leve”.
4 – Por Default Windows seta a policy para “NTVLM2 responses only”. Mude para “Enviar LM and NTLM – usar segurança da sessão NTLMV2 se negociada”. ou em inglês “LM and NTLM – use NTLMV2 session security if negotiated”.
Ref.: http://blog.lcmm.info/?p=35 acesso em 27/06/2010.
Istalando Jasmine para bilhetagem de impressão.
A muito tempo venho tentando encontrar um software que me forneça informações sobre o que os usuários da minha rede andam imprimindo, e essa é uma necessidade não só minha mas de vários administradores de rede por esse mundão a fora, bem depois de muita pesquisa e muito teste encontrei alguns que supriram minhas necessidades, e o mais importante fosse de graça.
Hoje vou falar sobre um deles, chamado Jasmine, ele foi desenvolvido em PHP, Perl, python e MySQL, roda em plataforma Unix e funciona em conjunto com o CUPS, e quando sai uma impressão ele pega todos os dados e joga em uma base de dados em MySQL que posteriormente pode ser consultada em qualquer browser de internet via PHP.
O JASmine está na versão 0.0.3 e pode ser baixado no próprio site no endereço:
http://jasmine.berlios.de/dokuwiki/doku.php
Ele é composto em 3 partes:
A primeira parte é um banco de dados em MySQL.
A segunda parte é um script em Perl para escutar as impressoras e guardar as informações de impressão na base de dados MySQL, utiliza também o programa pkpgcounter feito em python que conta números de páginas de impressão independente do formato (ex: PostScript, RAW, PCL, etc…).
A última parte é a página em PHP5 que fica conectada ao banco de dados e nos fornece as informações referentes as impressões, algumas delas estão citadas abaixo:
Nome do usuário, quantidade de folhas, hora e data da impressão.
título do arquivo impresso (receita-bolo.doc, eu_e_aninha.jpg)
total de impressão de cada usuário, cada impressora, cada servidor(se tiver mais que 1).
Sua instalação e configuração é simples porem requer um pouco de conhecimento na plataforma Linux e seus comandos básicos.
Pré requisitos:
- cups (e suas dependencias, pacotes de PPD’s e etc)
- httpd
- mysql-server
- python
- python-imaging
- php
- php-mysql
- php-gd
- perl
- python-devel
No CentOS podemos usar o comando yum e instalar todos os pacotes de uma só vez:
# yum install –y cups httpd mysql-server python python-imaging php php-mysql php-gd python-devel perl
Após instalar, vamos para o Jasmine . . .
Vamos primeiro baixar e configurar o banco do Jasmine:
# cd /tmp/
# wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-MySQL-0.0.3.tar.bz2
O mysql-server após a istalação vem sem senha para o usuario root, alguns SOs possuem scripts para configurar isso , mas, manualmente vamos alterar para não ter problemas de acesso indesejado ao banco de dados e/ou comprometimento de segurança.
# mysqladmin -u root password senha_nova
vamos descompactar o arquivo baixado:
# tar -zvjf JASmine-MySQL-0.0.3.tar.bz2
# cd JASmine-MySQL-0.0.3
Vamos criar a base de dados do jasmine e importar os dados do jasmine:
# mysql -u root -p
# password: *****
# mysql> CREATE DATABASE print;
# mysql> GRANT ALL ON print.* TO jasmine@localhost IDENTIFIED BY ‘sql_password’;
# mysql> FLUSH PRIVILEGES;
# mysql> exit;
# mysql -u root -p print < jasmine.sql
# password: *****
Agora vamos configurar e instalar o backend do Jasmine para o cups:
# cd /tmp/
# wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Backend-0.0.3.tar.bz2
# tar -xvjf JASmine-Backend-0.0.3.tar.bz2
# cd JASmine-Backend-0.0.3
Dentro da pasta JASmine-Backend vamos descompactar o programa pkpgcounter-2.10.tar.gz e instalar usando o python. Lembre-se que o Python deve estar instalado no seu servidor, senão não será possível instalar o pkpgcounter.
# tar -xvzf pkpgcounter-2.10.tar.gz
# cd pkpgcpunter-2.10
# python setup.py install
Depois de instalar o pkpgcounter vamos voltar na pasta JASmine-Backend e vamos copiar o script em Perl chamado jasmine para a pasta /usr/lib/cups/backend, depois de copiado vamos na pasta backend em /usr/lib/cups/backend e vamos atribuir a permissão 755 no arquivo jasmine. Lembre-se que o Perl deve estar instalado no seu servidor senão o script não vai funcionar.
# cd ..
# cp jasmine /usr/lib/cups/backend/
# cd /usr/lib/cups/backend
# chmod 755 jasmine
# chown root jasmine
Vamos editar o arquivo jasmine e configurar nosso banco de dados. Use o editor de sua preferência, aqui estou usando o vim.
# vim jasmine
Procure pelas linhas do MySQL:
my $Dbhost=”MYSQL_HOST”; —-> Host onde se encontra o banco de dados.
my $Dblogin=”MYSQL_LOGIN”; —-> Login do usuário que vai acessar o banco.
my $Dbpassword=”MYSQL_PASS”; —-> Senha do usuário que vai acessar o banco.
my $DBdatabase=”MYSQL_DB”; —-> Nome do banco de dados do Jasmine.
E altere para:
my $DBhost=”localhost”;
my $DBlogin=”jasmine”;
my $DBpassword=”sql_password”;
my $Dbdatabase=”print”;
Procure pela linha:
my $Debug_Mode=1;
E altere para:
my $Debug_Mode=0;
Salve o arquivo e feche, reinicie o CUPS com o comando:
# /etc/init.d/cups restart
Agora vamos para etapa final, que é o JASmine-Web-0.0.3.
Lembre-se: O Apache deve estar instalado com suporte a php e funcionando.
# cd /tmp/
# wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Web-0.0.3.tar.bz2
Descompacte a pasta JASmine-Web-0.0.3.tar.bz2, renomeie a pasta JASmine-Web-0.0.3 para jasmine e coloque na pasta onde o apache procura o site. ex: /srv/www/html/.
# tar xjf JASmine-Web-0.0.3.tar.bz2 -C /var/www/html/
# cd /var/www
# mv JASmine-Web-0.0.3 jasmine
Entre na pasta jasmine que você acabou de mover, procure pelo arquivo config.php.dist e copie para o mesmo diretório com o nome config.php.
# cd jasmine
# cp config.php.dist config.php
Agora vamos editar o arquivo config.php e configurar nosso banco de dados. Use o editor de sua preferência, no meu caso estou usando o vi.
# vim config.php
Procure pelas linhas:
// Database vars
$DB_host=”MYSQL_SERVER”; —> nome do host onde esta o banco de dados.
$DB_login=”MYSQL_USER”; —-> login do usuário que vai acessar o banco.
$DB_pass=”MYSQL_PASSWORD”; —-> senha do usuário que vai acessar o banco.
$DB_db=”MYSQL_DB”; —-> nome do banco de dados.
Altere para:
// Database vars
$DB_host=”localhost”;
$DB_login=”jasmine”;
$DB_pass=”sql_password”;
$DB_db=”print”;
Salve o arquivo e feche. Reinicie o httpd com o comando:
# service httpd restart
Praticamente a instalação terminou, agora é so acessar o CUPS e instalar as impressoras (http://localhost:631).
Obs.: por padrão a intarface de configuração web do cups so pode ser acessada de dentro do Server, ou seja pelo localhost, se quiser acessar de outra maquina tem que configurar o arquivo /etc/cups/cupsd.conf.
Um detalhe importantíssimo para o correto funcionamento é que a URI(endereço da impressora) inicie com “jasmine:”
Exemplo de URI cups = socket://ip_do_servidor:9100
Exemplo de URI cups + jasmine = jasmine:socket://ip_do_servidor:9100
Para verificar os relatórios de acessar o http://ip_do_servidor/jasmine/
Hoje vou falar sobre um deles, chamado Jasmine, ele foi desenvolvido em PHP, Perl, python e MySQL, roda em plataforma Unix e funciona em conjunto com o CUPS, e quando sai uma impressão ele pega todos os dados e joga em uma base de dados em MySQL que posteriormente pode ser consultada em qualquer browser de internet via PHP.
O JASmine está na versão 0.0.3 e pode ser baixado no próprio site no endereço:
http://jasmine.berlios.de/dokuwiki/doku.php
Ele é composto em 3 partes:
A primeira parte é um banco de dados em MySQL.
A segunda parte é um script em Perl para escutar as impressoras e guardar as informações de impressão na base de dados MySQL, utiliza também o programa pkpgcounter feito em python que conta números de páginas de impressão independente do formato (ex: PostScript, RAW, PCL, etc…).
A última parte é a página em PHP5 que fica conectada ao banco de dados e nos fornece as informações referentes as impressões, algumas delas estão citadas abaixo:
Nome do usuário, quantidade de folhas, hora e data da impressão.
título do arquivo impresso (receita-bolo.doc, eu_e_aninha.jpg)
total de impressão de cada usuário, cada impressora, cada servidor(se tiver mais que 1).
Sua instalação e configuração é simples porem requer um pouco de conhecimento na plataforma Linux e seus comandos básicos.
Pré requisitos:
- cups (e suas dependencias, pacotes de PPD’s e etc)
- httpd
- mysql-server
- python
- python-imaging
- php
- php-mysql
- php-gd
- perl
- python-devel
No CentOS podemos usar o comando yum e instalar todos os pacotes de uma só vez:
# yum install –y cups httpd mysql-server python python-imaging php php-mysql php-gd python-devel perl
Após instalar, vamos para o Jasmine . . .
Vamos primeiro baixar e configurar o banco do Jasmine:
# cd /tmp/
# wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-MySQL-0.0.3.tar.bz2
O mysql-server após a istalação vem sem senha para o usuario root, alguns SOs possuem scripts para configurar isso , mas, manualmente vamos alterar para não ter problemas de acesso indesejado ao banco de dados e/ou comprometimento de segurança.
# mysqladmin -u root password senha_nova
vamos descompactar o arquivo baixado:
# tar -zvjf JASmine-MySQL-0.0.3.tar.bz2
# cd JASmine-MySQL-0.0.3
Vamos criar a base de dados do jasmine e importar os dados do jasmine:
# mysql -u root -p
# password: *****
# mysql> CREATE DATABASE print;
# mysql> GRANT ALL ON print.* TO jasmine@localhost IDENTIFIED BY ‘sql_password’;
# mysql> FLUSH PRIVILEGES;
# mysql> exit;
# mysql -u root -p print < jasmine.sql
# password: *****
Agora vamos configurar e instalar o backend do Jasmine para o cups:
# cd /tmp/
# wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Backend-0.0.3.tar.bz2
# tar -xvjf JASmine-Backend-0.0.3.tar.bz2
# cd JASmine-Backend-0.0.3
Dentro da pasta JASmine-Backend vamos descompactar o programa pkpgcounter-2.10.tar.gz e instalar usando o python. Lembre-se que o Python deve estar instalado no seu servidor, senão não será possível instalar o pkpgcounter.
# tar -xvzf pkpgcounter-2.10.tar.gz
# cd pkpgcpunter-2.10
# python setup.py install
Depois de instalar o pkpgcounter vamos voltar na pasta JASmine-Backend e vamos copiar o script em Perl chamado jasmine para a pasta /usr/lib/cups/backend, depois de copiado vamos na pasta backend em /usr/lib/cups/backend e vamos atribuir a permissão 755 no arquivo jasmine. Lembre-se que o Perl deve estar instalado no seu servidor senão o script não vai funcionar.
# cd ..
# cp jasmine /usr/lib/cups/backend/
# cd /usr/lib/cups/backend
# chmod 755 jasmine
# chown root jasmine
Vamos editar o arquivo jasmine e configurar nosso banco de dados. Use o editor de sua preferência, aqui estou usando o vim.
# vim jasmine
Procure pelas linhas do MySQL:
my $Dbhost=”MYSQL_HOST”; —-> Host onde se encontra o banco de dados.
my $Dblogin=”MYSQL_LOGIN”; —-> Login do usuário que vai acessar o banco.
my $Dbpassword=”MYSQL_PASS”; —-> Senha do usuário que vai acessar o banco.
my $DBdatabase=”MYSQL_DB”; —-> Nome do banco de dados do Jasmine.
E altere para:
my $DBhost=”localhost”;
my $DBlogin=”jasmine”;
my $DBpassword=”sql_password”;
my $Dbdatabase=”print”;
Procure pela linha:
my $Debug_Mode=1;
E altere para:
my $Debug_Mode=0;
Salve o arquivo e feche, reinicie o CUPS com o comando:
# /etc/init.d/cups restart
Agora vamos para etapa final, que é o JASmine-Web-0.0.3.
Lembre-se: O Apache deve estar instalado com suporte a php e funcionando.
# cd /tmp/
# wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Web-0.0.3.tar.bz2
Descompacte a pasta JASmine-Web-0.0.3.tar.bz2, renomeie a pasta JASmine-Web-0.0.3 para jasmine e coloque na pasta onde o apache procura o site. ex: /srv/www/html/.
# tar xjf JASmine-Web-0.0.3.tar.bz2 -C /var/www/html/
# cd /var/www
# mv JASmine-Web-0.0.3 jasmine
Entre na pasta jasmine que você acabou de mover, procure pelo arquivo config.php.dist e copie para o mesmo diretório com o nome config.php.
# cd jasmine
# cp config.php.dist config.php
Agora vamos editar o arquivo config.php e configurar nosso banco de dados. Use o editor de sua preferência, no meu caso estou usando o vi.
# vim config.php
Procure pelas linhas:
// Database vars
$DB_host=”MYSQL_SERVER”; —> nome do host onde esta o banco de dados.
$DB_login=”MYSQL_USER”; —-> login do usuário que vai acessar o banco.
$DB_pass=”MYSQL_PASSWORD”; —-> senha do usuário que vai acessar o banco.
$DB_db=”MYSQL_DB”; —-> nome do banco de dados.
Altere para:
// Database vars
$DB_host=”localhost”;
$DB_login=”jasmine”;
$DB_pass=”sql_password”;
$DB_db=”print”;
Salve o arquivo e feche. Reinicie o httpd com o comando:
# service httpd restart
Praticamente a instalação terminou, agora é so acessar o CUPS e instalar as impressoras (http://localhost:631).
Obs.: por padrão a intarface de configuração web do cups so pode ser acessada de dentro do Server, ou seja pelo localhost, se quiser acessar de outra maquina tem que configurar o arquivo /etc/cups/cupsd.conf.
Um detalhe importantíssimo para o correto funcionamento é que a URI(endereço da impressora) inicie com “jasmine:”
Exemplo de URI cups = socket://ip_do_servidor:9100
Exemplo de URI cups + jasmine = jasmine:socket://ip_do_servidor:9100
Para verificar os relatórios de acessar o http://ip_do_servidor/jasmine/
Assinar:
Postagens (Atom)



