Erro Forbidden no Apache 2.4

julho 21, 2017

Estava tendo um estranho erro de Forbidden no Apache 2.4. Verifiquei as permissões e estava tudo correto.

Descobri que houve uma mudança na configuração do Apache nessa versão. Seguindo a sugestão do link abaixo:
https://askubuntu.com/questions/561201/apache-2-4-10-giving-403-forbidden-issue-on-ubuntu-14-04/601730#601730

É necessário substituir o trecho

Order allow,deny
allow from all

com

Require all granted

Depois de dar um reload no server, o erro parou de acontecer.

Erro mcrypt no phpmyadmin

maio 11, 2015

Quando abri o phpmyadmin notei que estava aparecendo a mensagem “A extensão mcrypt não está presente. Por favor, verifique a configuração do PHP.”

Para solucionar esse problema primeiro verifiquei se o módulo do mcrypt para o PHP estava instalado.

Isso pode ser feito com a linha:

$ dpkg -l | grep mcrypt

No meu caso a saída foi:

ii  libmcrypt4                                            2.5.8-3.1ubuntu1                                    amd64        De-/Encryption Library
ii  php5-mcrypt                                           5.4.6-0ubuntu5                                      amd64        MCrypt module for php5

Ou seja, a biblioteca estava instalada. Caso não estivesse seria possível instalar através do aptitude com:

$ sudo aptitude install php5-mcrypt

Quando eu tentei habilitar o módulo através do a2enmod mostrava que o módulo não existia. Procurei na documentação do php e encontrei que seria possível habilitar o módulo através do comando:

$ sudo php5enmod mcrypt

Usando o comando service para iniciar o Apache não resolveu a situação pois a mensagem continuava aparecendo. O jeito foi reiniciar o Apache via init.d

$ sudo /etc/init.d/apache2 restart

Após fazer isso o erro do PHPMyAdmin parou de aparecer.

O procedimento acima foi testado no Ubuntu 14.04

Executando arquivos jnlp no Linux

janeiro 17, 2014

Estava precisando executar uma aplicação Java, porém ao entrar na URL desejada o browser (tanto Firefox quanto Chrome) baixavam o arquivo ao invés de executar a aplicação. Atualizei para o Java 7, update 51. Porém mesmo assim não funcionou.

Para funcionar usei a linha de comando e usei o programa javaws:

$ javaws URL

Porém mesmo assim ele dava uma mensagem “missing required permissions manifest attribute”.

Essa página aqui explica o erro e sugere que o ideal é que os desenvolvedores da aplicação façam um upgrade na mesma. Porém existe uma maneira de ignorar o erro.

No Linux, na mesma pasta do javaws, existe um aplicativo ControlPanel. Executando esse aplicativo, basta ir na aba Segurança e depois editar o campo “Lista de exceções de sites”.

Após fechar o ControlPanel basta executar novamente o javaws e a aplicação deve funcionar conforme esperado.

Instalar Rails usando RVM

dezembro 20, 2013

RVM é o Ruby Version Manager, com ele podemos ter múltiplas versões do Ruby e das suas gems instaladas na nossa máquina. Atualizar o Ruby também se torna trivial com RVM. Na dúvida use RVM se pretende trabalhar com Rails.

Para instalar o RVM digite:

$ curl -sSL https://get.rvm.io | bash -s stable

Isso irá instalar a versão estável mais recente do RVM. Após executar esse comando (pode demorar um pouco), abra um novo terminal e digite:

$ which rvm

Se o RVM tiver sido instalado com sucesso será retornado o caminho do mesmo.

Depois já podemos instalar a versão desejada do Ruby:

Por exemplo, o comando abaixa instala o Ruby 1.8.7 da implementação REE (Ruby Enterprise Edition)
$ rvm install ree-1.8.7

O comando abaixo mostrará a versão do Ruby se tudo tiver dado certo.

$ ruby -v

O próximo passo é instalar o RubyGems.

$ rvm rubygems current

O comando acima instala o RubyGems na versão mais recente também.

Também podemos verificar se tudo deu certo com:

$ gem -v

Por fim, é só instalar a versão da gem desejada (no caso Rails 3.2.11):

$ gem install rails –version 3.2.11

O comando abaixo mostra a versão do Rails se tudo estiver bem.

$ rails -v

A princípio parece complicado, mas vale a pena quando se deseja testar algum feature de outra versão do Ruby ou atualizar algo no sistema.

O RVM tem saídas de erro bem informativas, se algo der errado leia com atenção a saída do comando mais recente pois ali certamente haverá alguma dica importante para resolver problemas.

Por fim, consulte sempre o site oficial do RVM. Esse guia tem como objetivo principal dar uma idéia do workflow da instalação com o RVM e servir como referência rápida. Algumas mudanças podem ocorrer em versões futuras.

Site do RVM: https://rvm.io/

Montar compartilhamento automaticamente ao iniciar o computador

dezembro 20, 2013

Primeiro crie a pasta onde o seu compartilhamento será montado.

$ sudo mkdir /mnt/samba

Teste se o seu compartilhamento está sendo montado corretamente.

$ sudo smbmount \\ifs00sv009\\Dados /mnt/samba/ -o username=USERNAMEREMOTO,rw,uid=UIDLOCAL

Na linha acima, estamos montando na pasta /mnt/samba o compartilhamento Dados, que está no servidor ifs00sv009. USERNAMEREMOTO é o nome de usuário no servidor, e UIDLOCAL é o uid do seu usuário local.

Para saber seu uid, você pode digitar na linha de comando:

$ id USERNAMELOCAL

Tente acessar o compartilhamento usando o navegador de arquivos. Se estiver tudo ok, podemos prosseguir e realizar a montagem automaticamente ao iniciar o computador.

Adicione a linha abaixo no arquivo /etc/fstab:

//ifs00sv009/Dados /mnt/samba/ smbfs  auto,gid=GRUPOLOCAL,file_mode=0664,dir_mode=0775,iocharset=iso8859-15,credentials=/root/smbpasswd 0 0

Substitua GRUPOLOCAL pelo grupo de usuários que você deseja que tenha permissão de escrita na pasta.

Observe que o parâmetro credentials indica um arquivo onde está o usuário e senha do usuário remoto que será usado para autenticar no servidor de arquivos e montar o compartilhamento.

Um exemplo da sintaxe do arquivo está abaixo:

username=USERNAMEREMOTO
password=PASSWORDREMOTO

Para testar desmonte o compartilhamento (caso esteja montado):

$ sudo umount /mnt/samba

Depois monte o compartilhamento novamente a partir das entradas do fstab:

$ sudo mount -a

Verifique se o compartilhamento foi montado com sucesso. Caso contrário verifique os passos acima.

Referência:

http://www.cyberciti.biz/faq/access-windows-shares-from-linux/ (Existem alguns erros de sintaxe no link que estão corrigidos acima)

Problema de acesso no puppet agent

novembro 18, 2013

Se ao rodar o puppet agent nas máquinas clientes você estiver obtivendo um erro referente a permissão de acesso não esqueça de verificar o arquivo /etc/puppet/fileserver.conf

Eu estava obtendo uma mensagem de erro que começava com “err: Could not run Puppet configuration client: Error 400 on SERVER: Not authorized to call find on”.

O problema é que eu estava servindo arquivos para duas sub-redes distintas e só lembrei de autorizar o acesso para uma delas.

Por exemplo para autorizar o acesso na sub-rede 192.168.0.0/24 basta adicionar a linha abaixo no arquivo /etc/puppet/fileserver.conf

allow 192.168.0.0/24

Converter PDF para imagem no Linux

junho 17, 2013

Podemos usar o comando convert do Linux para isso:

$ convert arquivo.pdf arquivo.jpg

Fazendo isso a qualidade da imagem resultante pode não ser a ideal. O parâmetro density (por padrão é 72) pode ajudar:

$ convert -density 300 arquivo.pdf arquivo.jpg

Fonte: http://www.cyberciti.biz/faq/howto-convert-a-pdf-file-to-an-image/

Salvar gems em um cache local

maio 22, 2013

Para não ficar dependendo das gems instaladas em um servidor remoto é possível fazer um cache das gems usadas em uma aplicação Rails.

Para isso na máquina de desenvolvimento use:

$ bundle package

Ao fazer isso uma pasta vendor/cache será criada contendo as gems usadas na sua aplicação.

Após fazer o upload da pasta de cache no servidor remoto utilize:

$ bundle install –local –deployment

O parâmetro local fará o bundler usar a cache das gems e a opção deployment dirá para instalar as gems em vendor/bundler

http://gembundler.com/

Usando Bundle atrás de um proxy autenticado

fevereiro 22, 2013

Mais uma dica rápida:

Se você estiver atrás de um proxy o comando bundle não vai funcionar.
Para resolver basta exportar a variável de ambiente HTTP_PROXY.

No Linux:

$ export HTTP_PROXY=http://USUARIO:SENHA@ENDERECO:PORTA

Fonte: http://sudhirchauhan.net/tag/rails-bundle-install-proxy

Encontrando arquivos pelo conteúdo no Linux

julho 5, 2012

Dica rápida só para tirar a poeira do blog.

Comando mágico para encontrar um texto em um arquivo via linha de comando:

$ find . -type f -iname “*.txt” | xargs grep -s -a -i padrao

Ali onde diz “*.txt” diz para procurar somente em arquivos de texto terminados com a extensão .txt, para outros tipos é só alterar. E o texto ‘padrao’ é o padrão à ser procurado.

O mais estranho é que notei agora que ao menos no Ubuntu 12.04 não existe mais como procurar arquivos pela interface gráfica informando o conteúdo do arquivo, então a saída é apelar para a boa e velha linha de comando que está sempre disponível. Pena que quem não entende muito de linha de comando não vai mais poder fazer isso. Ou ao menos a opção está tão escondida que eu não consegui encontrar.