Criando páginas relacionadas em WordPress (sem plugin)
Com essa solução você pode relacionar um post com 4 outros marcados com mesmas tags (taxonomia). Esse relacionamento é randômico, ou seja, para cada vez que acessar um post não serão os mesmos posts relacionados. Será apresentado a imagem destacada e título dos posts relacionados, ambos com link.
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/
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 do pacote no Debian Jessie Backports
Instruções para repositórios Backports
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.
#1273 – Unknown collation: ‘utf8mb4_unicode_ci’
Fui transferir importar um banco de dados local para o servidor e voltou o erro “#1273 – Unknown collation: ‘utf8mb4_unicode_ci'”
Para resolver isso achei uma dica falando que é necessário alterar de None para MYSQL40, clicando em exportação Personalizada, no phpMyAdmin.
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.
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