Sem categoria

Instalando PHP 5.6 em Debian Wheezy

Acrescente os repositórios

echo "deb http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list

baixe e instale as chaves GnuPG do repositório

wget http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg

Atualize a lista de pacotes e instale o os pacotes php5 php5-mysql

apt-get update -q
apt-get install -yq php5 php5-mysql

Referências:
https://www.dotdeb.org/instructions/
https://hub.docker.com/r/ezegolub/apache-php56/~/dockerfile/

Padrão
Sem categoria

Instalando Inkscape 0.91 em Debian Jessie

No repositório padrão do Debian Jessie temos a versão 0.48 do Inkscape e dessa versão para cá muitas funcionalidades e correções foram implementadas. A versão atual é a 0.91 e podemos instalar sem a necessidade de compilar acrescentado o repositório backports.

Acrescente em /etc/apt/sources.list o endereço

deb http://ftp.debian.org/debian jessie-backports main

e rode o comando

apt-get update

e depois

apt-get -t jessie-backports install inkscape

 

Referências

Página oficial do Inkscape

Página do pacote no Debian Jessie Backports

Instruções para repositórios Backports

 

Padrão
Sem categoria

Envio de mensagens em CMS feito em PHP

Sempre que monto um servidor eu já configuro o Exim ou SSMTP para enviar as mensagens do sistema e também de CMS (como o Drupal, WordPress ou SPIP). Mesmo usando bibliotecas como PHPMailer é necessário que tenha um serviço de SMTP rodando ou configurar um externo.

Para testar se o servidor está devidamente configurado você pode fazer a partir do prompt do PHP:

php -a
mail ('seuemail@seudodominio.com.br', "Test Postfix", "Test mail from postfix");
exit ();

outra opção é criar um arquivo php com o nome testmail.php

<?php
    mail ('seuemail@seudodominio.com.br', "Test Postfix", "Test mail from postfix");
?>

E depois rode o comando php -f testmail.php e será a mensagem será enviada para o endereço indicado.

Se acaso você tiver acesso o servidor via SSH tem a opção


echo "Test from Postfix" | mail -s "Test" seuemail@seudodominio.com.br

No caso de projeto rodando tem o plugin Check Email que ajuda teste o servidor local.

Para quem utilizar algum sistema de newsletter é bom saber Como enviar Emails pelo WordPress.

Muitos parceiros/clientes utilizam o serviço de hospedagem da Locaweb e por padrão não é oferecido o servidor de SMTP e aí é necessário com um servidor externo e seguindo as orientações da própria Locaweb.

Algumas informações desse post foi retirado de Checking if PHP/WordPress can send mails.

Padrão
Sem categoria

Instalando Piwik em Debian Jessie com nginx e php5-fpm

Primeiro vamos instalar o LEMP e algumas depêndencias

apt-get install mysql-server php5-mysql nginx php5-fpm unzip php5-gd php5-geoip

Agora é baixar o Piwik, ajustar permissões e o banco de dados binário para geolocalização

wget http://builds.piwik.org/piwik.zip
unzip piwik.zip
mv piwik /home/sftp/quijaua.net/public_html/
chmod 775 /home/sftp/quijaua.net/public_html/piwik/tmp/assets/
cd /home/sftp/quijaua.net/public_html/piwik/misc
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz 
mv GeoLiteCity.dat GeoIPCity.dat
chown -R quijaua: /home/sftp/quijaua.net/public_html/piwik/

depois o criar o banco de dados e ajustar as permissões

GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE,DROP,CREATE TEMPORARY TABLES ON piwik.* TO 'piwik'@'localhost' identified by 'suasenha';
GRANT FILE ON *.* to 'piwik'@'localhost';
create database piwik;
flush privileges;

Levando em conta que o site ficará em quijaua.net a configuração do Nginx ficou

server {
        listen          80;
        server_name quijaua.net;
        root   /home/sftp/quijaua.net/public_html/piwik;
        access_log   /var/log/nginx/piwik-access.log;
        error_log  /var/log/nginx/piwik-error.log info;
        client_max_body_size 10m;
        index index.php;
        # Disable all methods besides HEAD, GET and POST.
        if ($request_method !~ ^(GET|HEAD|POST)$ ) {
            return 444;
        }
        # Support for favicon. Return a 204 (No Content) if the favicon
        # doesn't exist.
        location = /favicon.ico {
                 try_files /favicon.ico =204;
        }
        # Try all locations and relay to index.php as a fallback.
        location / {
                 try_files $uri /index.php;
        }
        # Return a 404 for all text files.
        location ~* ^/(?:README|LICENSE[^.]*|LEGALNOTICE)(?:\.txt)*$ {
                 return 404;
        }
        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass   127.0.0.1:9001;
                fastcgi_index  index.php ;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

e pool do php5-fpm

[quijaua.net]
listen = 127.0.0.1:9001
listen.allowed_clients = 127.0.0.1
user = quijaua
group = quijaua
pm = dynamic
pm.max_children = 2
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 2
pm.max_requests = 500
chdir = /
php_admin_value[open_basedir] = /home/sftp/quijaua.net/public_html/piwik:/usr/share/php5:/tmp/:
php_admin_value[error_log] = /var/log/php-fpm/piwik-error.log
php_admin_flag[log_errors] = on
php_flag[display_errors] = off
php_flag[file_uploads] = off
php_admin_value[upload_tmp_dir] = /home/sftp/quijaua.net/tmp/
php_admin_value[session.save_path] = /home/sftp/quijaua.net/tmp/
php_flag[expose_php] = off
php_flag[upload_tmp_dir] = off
slowlog = /var/log/php-fpm/piwik-slow.log
php_value[always_populate_raw_post_data]=-1

E reiniciar o nginx e php5-fpm

/etc/init.d/php5-fpm restart
/etc/init.d/nginx restart

Agora é só entrar no endereço http://quijaua.net e inserir as informações do banco de dados e criação do usuários administrativo.

Padrão
Sem categoria

Usando rssh

Há algum tempo eu tenho usado o rssh nos servidores dos clientes, isso porque eu posso criar um usuário e enjaular a solução nele. Assim posso customizar permissões em arquivos e diretórios de forma que melhore a segurança do servidor como um todo. Além disso por abandonar o uso de FTP pelo SFTP e aumentando também a segurança na troca de arquivos (com dados criptografados).

Instalando rssh e dependências da solução

apt-get install -y rssh ssh openssh-server

Customização a configuração e criando o sistema virtualizado

mv /etc/rssh.conf /etc/rssh.conf.old
echo "logfacility = LOG_USER" > /etc/rssh.conf
echo "allowsftp" >> /etc/rssh.conf
echo "umask = 066" >> /etc/rssh.conf
echo "chrootpath = /home/sftp" >> /etc/rssh.conf
chmod u+s /usr/lib/rssh/rssh_chroot_helper
mkdir /home/sftp/
cd /usr/share/doc/rssh/examples
sh mkchroot.sh /home/sftp

Depois disso crio um usuário e ajustando o tipo de interpretador (no caso, o rssh) e diretório

useradd -m -d /home/sftp/quijaua.net -s /usr/bin/rssh quijaua
chown -R root: /home/sftp/quijaua.net

Depois crio o diretório público, onde irei colocar o CMS e um diretório temporário que será de uso exclusivo do projeto e do usuário.

mkdir /home/sftp/quijaua.net/{tmp,public_html}
chown -R quijaua: /home/sftp/quijaua.net/{public_html,tmp}

Bem, só com esses ajustes já está configurado a virtualização simples. Se acaso quiser que o usuário tenha acessa ao servidor é necessário inserir uma senha e colocar instruções no servidor SSH.

Para inserir uma senha, uso o comando

passwd quijaua

E as instruções para o SSH é só inserir no arquivo /etc/ssh/sshd_config o conteúdo

Match User quijaua
    ChrootDirectory /home/sftp/quijaua.net
    AllowTCPForwarding no
    X11Forwarding no
    PasswordAuthentication yes
    ForceCommand internal-sftp

e reiniciar o SSH.

/etc/init.d/ssh restart
Padrão