segunda-feira, 15 de outubro de 2018

Livro de Visitas em PHP para o seu site

Livro de Visitas em PHP para o seu site


Já que estamos vendo aqui coisas relacionadas à PHP, vamos ver então como instalar um livro de visitas no seu site. Isso não é lá muito usado hoje em dia, mas sites que tem esse recurso costumam ter um charme maior, permitindo a quem lê as matérias possam postar suas opiniões. Esse livro de visitas não usa mysql, apenas PHP. Vamos lá então, só lembrando que o que está sendo mostrado aqui precisa ser adaptado ao sistema Linux que você usa aí (aqui, no caso, é o Debian 9, com instalação local).

Digite no Terminal:

apt-get install apache2 php php7.0-gd <ENTER>

Se você já tem o seu servidor web funcional, pode pular essa parte, mas atenção ao pacote php7.0-gd, que é necessário para você adicionar um captcha (figura anti-spam) para evitar que nego encha o seu livro com besteiras. Abra o navegador e baixe o livro de visitas clicando aqui.

Vá no Terminal como root e digite:

cd /var/www/html/ <ENTER>

Note que o caminho acima é a pasta root do seu webserver. Você precisa adaptar o caminho conforme a sua necessidade. No meu webserver eu tenho uma pá de pastas com sites diferentes, então vamos "fingir" que estou colocando esse livro de visitas no meu site de Linux:

mkdir /var/www/html/linux/livro <ENTER>
cd /var/www/html/linux/livro <ENTER>
cp /home/suapastadeusuario/localondebaixouoarquivo/gbook182.zip <ENTER>

A cópia desse arquivo depende da pasta onde você baixou o mesmo. Normalmente é na pasta de usuário/Downloads, dá uma olhada nisso aí. No Terminal (estando na pasta /var/www/html/linux/livro do nosso exemplo):

unzip gbook182.zip <ENTER>

Os arquivos do livro de visita serão descompactados na pasta mostrada. Vamos então editar alguns arquivos e dar permissões:

chmod 666 footer.txt header.txt entries.txt <ENTER>

Um lance importante é mudar o nome do arquivo de log do livro de visitas pra evitar que nego mais esperto baixe- do site e dê uma sapeada no mesmo:

mv entries.txt ziriguidum.txt <ENTER>

Lógico que você pode dar outro nome ao arquivo. Agora abra o arquivo settings.php e mude o seguinte:

$settings['logfile'] = 'entries.txt';

Mude o entries.txt pelo nome do arquivo que você trocou lá mais acima, no caso, para ziriguidum.txt:

$settings['logfile'] = 'ziriguidum.txt';

Outros itens interessantes de serem configurados:

$settings['apass'] = 'sua senha'; => coloque a senha de administrador que você desejar;

$settings['spam_question'] = 'Qual o dobro de 5?'; => Pergunta de segurança para poder postar (coloque uma mais adequado conforme a sua preferência);

$settings['spam_answer'] = '10'; => Resposta da pergunta de segurança (coloque a mais adequada para a pergunta personalizada que você colocou);

$settings['autosubmit'] = 1; => Permite 3 opções de envio do post: 0 não usa o captcha (quadro com números para serem digitados), 1 usa o modo gráfico e 2 o modo texto. Isso é provido pelo extensão GD do PHP. Se estiver dando erro, coloque 0 ou 2 (o resto é com vocês...).

Configure as outras opções do arquivo de acordo com a sua necessidade, pra quem sabe algo de inglês o arquivo é autoexplicativo. Salve o arquivo e abra o seu Livro de visitas, indo no navegador e digitando o endereço do livro.



Para assinar não tem rolo, é só clicar em sign guestbook e preencher os campos:



e depois clicar em submit your comment:



O painel de administrador apenas aparece quando você clicar em um dos ícones (o x vermelho para apagar o post, a seta verde para responder e IP para ver o IP de quem postou); se você precisar apagar o post, aperte o X vermelho:



Digite a senha de administrador e, se você quiser, pode banir também o IP de quem postou o comentário.

Esse livro de visitas é bastante funcional, não usa MySql e até onde eu testei roda em qualquer versão de PHP. Atente que aqui fizemos o livro funcionar em uma máquina local, se você precisar acessar seu servidor na internet, use um programa de ftp mas mude os arquivos que precisam ser mudados ANTES de enviar os arquivos.

Esse livro tem também linguagem em português, vá lá no site do desenvolvedor e veja como instalar o arquivo de linguagem. Aproveite também para mudar no arquivo settings.php o arquivo de linguagem e o arquivo das palavras que vão ser editadas pelo sistema (como palavrões e coisas do gênero).

sábado, 13 de outubro de 2018

Mysql no Debian - instalação de helpdesk em PHP

Mysql no Debian - instalação de helpdesk em PHP


Vamos ver aqui a instalação do MySql no Debian (que na verdade vai instalar o MariaDB que, basicamente, dá no mesmo) para a implementação de um helpdesk em PHP. Eu não sou expert em MySql, então não esperem muita coisa, hehehe...

A instalação do MySql há tempos atrás era mais fácil do que é hoje, pois na instalação a senha do usuário root do banco de dados era definida na instalação e hoje a instalação não faz mais isso, usando a ferramenta de senha root da própria máquina para acessar o banco de dados. O problema é vincular o banco de dados a programas que usam php ou outra ferramenta para gerenciar o banco de dados, vive dando erro de "connection refused". Vamos então ver como corrigir isso. Abra o Terminal como root e digite:

apt-get install mysql-server php7.0-mysql php <ENTER>

Aguarde a instalação dos pacotes. Uma vez terminada a instalação, vamos ao MySql. No terminal como root, digite:

mysql -u root -p <ENTER>

Como você já está no Terminal como root, não precisa de senha, basta teclar ENTER. Vai aparecer o prompt do mysql:


Vamos criar um usuário para podermos usar no nosso helpdesk. No terminal no prompt do MySql, vamos criar um usuário chamado admin com a senha P@ssw0rd (cada linha é um comando):

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'P@ssw0rd'; <ENTER>
GRANT ALL PRIVILEGES ON * . * TO 'admin'@'localhost'; <ENTER>
FLUSH PRIVILEGES; <ENTER>
\q <ENTER>

Volte de novo no MySql, só que dessa vez como admin:

mysql -u admin -p <ENTER>

Digite a senha cadastrada e o prompt aparecerá. Vamos então criar um banco de dados:

create database hesk; <ENTER>

Para ver se o banco de dados foi criado mesmo, digite:

use hesk; <ENTER>



Para sair do prompt, digite \q <ENTER>.

Ok, com tudo funcional, agora vamos ao programa de helpdesk em si. No terminal, digite:

mkdir /var/www/html/helpdesk <ENTER>
cd /var/www/html/helpdesk <ENTER>

wget https://heskcom.s3.amazonaws.com/legacy/hesk281.zip <ENTER>

Aguarde o download. Depois:

unzip hesk281.zip <ENTER>

Vamos dar privilégios de acesso para alguns itens:

chmod 666 hesk_settings.inc.php <ENTER>
chmod 777 attachments/ <ENTER>
chmod 777 cache/ <ENTER>

Pronto, agora vá no navegador web e digite o ip da máquina/helpdesk/install (se for uma máquina remota) ou localhost/helpdesk/install:


Clique no botão "clique here to install hesk":


Concorde com termos; depois:


Preencha conforme configurado lá na criação do banco de dados. Atenção na senha que na figura aparece asd123, o correto no nosso exemplo é P@ssw0rd. O login logo abaixo vai ser usado para você logar no seu helpdesk para fazer as coisas cotidianas nele.

Se estiver tudo certo, aparecerá essa janela acima. Agora volte no prompt de comando e apague a pasta install que está dentro de /var/www/html/helpdesk:

rm -rf /var/www/html/helpdesk/install <ENTER>

Agora vá no navegador web e digite o ip da máquina/helpdesk (se for uma máquina remota) ou localhost/helpdesk e aparecerá a interface do programa de uso normal para um usuário normal:


Acesse o painel de administração com o usuário e senha que você configurou para acessar o helpdesk em modo administrativo:



Pronto, helpdesk pronto para uso. Nesse painel de administração você poderá configurar todos os itens do sistema, como envio de e-mails, usuários que vão responder aos tickets, adicionar resoluções de problemas mais comuns para os próprios usuários se virarem antes de enviar um ticket e por aí vai. A interface do programa tem opção de português, mas aí é um arquivo que você pode baixar no site do desenvolvedor e colocar no seu helpdesk, então se vire aí pra fazer isso pois eu já mostrei o mais pesado, hehehe...

sexta-feira, 12 de outubro de 2018

Frontend gráfico para o Vnstat

Frontend gráfico para o Vnstat

Vimos aqui como instalar e configurar o programa vnstat e agora vamos ver como adicionar uma interface gráfica ao programa. Como falei no post citado, só tem validade a instalação do vnstat no seu gateway de internet com duas placas de rede, com o monitoramento ativo na placa de rede conectada à internet.

O frontend que vamos utilizar é o JS Vnstat, que é em php e, portanto, via navegador web. Você precisa então instalar os pacotes apache2 e php no seu servidor:

apt-get install apache2 php <ENTER>

Aguarde a instalação dos pacotes. Lógico que, se você já tem esses serviços no seu servidor, não há necessidade de instalá-los. Para saber se o seu webserver está funcionando, abra o navegador e digite  localhost <ENTER> ou o ip da sua máquina:


Agora vamos baixar o JS Vnstat, abra o Terminal como root e digite:

cd /var/www/html <ENTER>

O comando acima entra na pasta root do seu webserver.

wget https://ufpr.dl.sourceforge.net/project/jsvnstat/jsvnstat-2.0.zip <ENTER>

O comando acima baixará o arquivo do pacote na pasta root do seu webserver

unzip jsvnstat-2.0.zip <ENTER>

O comando acima vai descompactar o pacote na pasta root do seu webserver. Agora vamos editar o arquivo settings.php que está dentro da pasta jsvnstat:

cd jsvnstat <ENTER>

nano settings.php <ENTER>


Coloque na linha $interface = ' ' a interface de rede que está conectada à internet (vide imagem), salve o arquivo e feche o Terminal. Agora vá no navegador e digite:

localhost/jsvnstat <ENTER>

ou

ip_da_maquina/jsvnstat <ENTER>


O uso é fácil, você pode escolher se quer visualização por linhas ou por barras:


RX (download) é o que a interface recebe e TX (upload) é o que a interface transmite. O programa dá a totalização de dados trafegados por hora, por dia ou mensal (esse é o que mais se utiliza), dê uma fuçada nele para ver as funcionalidades. Apesar de ser básico, serve muito bem como prova de consumo em uma eventual contestação com a operadora.

Eu disse aqui que o correto é usar o vnstat no servidor que dá internet à rede usando-se duas placas de rede por um motivo simples: para não interferir na totalização de dados trafegados na rede. Se você, por exemplo, colocar o vnstat em uma máquina cliente (que normalmente só tem uma placa de rede) que funciona como DNLA (servidor de arquivos multimídia, onde você assiste vídeos na sua TV via rede com os arquivos armazenados na máquina DNLA), esse tráfego interno de rede também contará como tráfego de dados e se somará ao tráfego de internet, tecnicamente invalidando a função do vnstat no caso de contestação.

Vnstat - monitorando o seu tráfego de rede

Vnstat - monitorando o seu tráfego de rede


O Vnstat é uma ferramenta de monitoramento de tráfego de rede, ou seja, o volume de dados que circula na sua rede. Ele é muito útil, por exemplo, quando precisamos de um totalizador de dados para aquelas operadoras de internet que fornecem seus serviços através de franquia de dados, que é aquela em que o usuário tem direito a um determinado valor de GB ou TB de dados que, passando desse limite, a velocidade é diminuída, ou é cobrada franquia de dados extra ou simplesmente negam conexão até que o usuário contrate mais dados ou vire o mês para recomeçar a contagem.


Veja que essa tal franquia de dados é para download e upload; com isso, se você tiver uma internet de 1TB e você esgotar esse valor antes de vencer a franquia, você estará sujeito ao que foi descrito no parágrafo anterior. E hoje em dia, com o pessoal com videogame e baixando filmes ou assistindo-os online, a franquia vai embora rapidinho.

Então, podemos colocar no servidor que fornece internet para a rede um monitoramento exclusivo para esse tipo de situação. O problema é que há a necessidade de se ter duas placas de rede, uma para a entrada de internet e outra para a rede local. Isso porque se for usado apenas uma placa de rede (para monitorar uma máquina cliente, por exemplo), o vnstat vai dar os resultados de tudo que passa pela interface, como dados de internet e também da rede local. Com isso, se há uma grande troca de arquivos via rede, isso conta como dados e vai interferir na contagem final da franquia de dados. Com duas placas de rede, o vnstat vai monitorar apenas a interface de rede que recebe a internet, podendo então o registro de dados ser usado como argumento em relação a algum protesto sobre franquia ou mesmo processos contra as operadoras.

Para instalar o vnstat, abra o Terminal como root  digite:

apt-get install vnstat <ENTER>

Uma vez instalado, vamos configurar a interface que o vnstat vai monitorar. Lembre-se, duas placas de rede. O comando então vai monitorar a interface de internet, que no nosso exemplo é a eth0 (você tem que ver aí na sua rede quem é a interface de rede responsável pela conexão de internet):

vnstat -u -i eth0 <ENTER>

Pronto, basta então digitar "vnstat" sem as aspas e você já terá um "esboço" do que já circulou na sua interface de rede:


Há alguns frontends gráficos para o vnstat, como o vnstati, que gera uma imagem meio mixuruca dos dados. Você pode instalar o programa digitando:

apt-get install vnstati <ENTER>

O comando para gerar uma "imagem mixuruca" seria:

vnstati -s -i eth0 -o /home/suapastadeusuario/nomedoarquivodesejado.png <ENTER>

A imagem seria algo como:


Uma imagem dessas em um eventual processo tem poucas chances de ser aceita como prova em uma eventual contestação, já que a imagem pode ser manipulada. Veremos em um próximo post como colocar um frontend gráfico mais incrementado.

quinta-feira, 11 de outubro de 2018

Erro no apt ao instalar programas - Não foi possível obter acesso exclusivo

Erro no apt ao instalar programas - Não foi possível obter acesso exclusivo

É comum (mas não deveria...) aparecer a seguinte mensagem quando vamos fazer alguma atualização ou instalação de pacotes do Debian ou Ubuntu:


Isso é devido a alguma operação de atualização que está sendo feita (como o sistema procurando por atualizações no "Linux Update") ou então a trava à pasta de listas não foi desfeita após as ações de instalações anteriores ou de deamons automáticos como o apt-daily.timer. Para destravar o recurso, vá no Terminal como root e digite:

ps aux | grep dpkg <ENTER>

Deverá aparecer algo assim:


Temos então que fechar o processo que está travando o recurso que, no nosso caso, é o dpkg, cujo PID (número do processo) é aquele que fica antes do item pts/0:

kill -9 968 <ENTER>

Após isso, tente fazer novamente a atualização ou instalação dos pacotes ou programas que você deseja. Se ainda assim der problema de trava, experimente o seguinte:

rm -rf /var/lib/apt/lists/lock <ENTER>
rm -rf /var/lib/dpkg/lock <ENTER>

e tente de novo. Você pode fazer primeiro essa opção de apagar os arquivos conforme mostrado logo acima; isso vai permitir a instalação de pacotes se o problema for de uma trava anterior que não foi desfeita. A primeira opção usando o comando PS é para descobrir o PID do processo que está travando a instalação de pacotes e que normalmente é o dpkg, apt, aptitude ou outro programa de gerenciamento de pacotes, como o Synaptic, que costumam rodar em background para mostrar a você que há atualizações a serem feitas no sistema.