Como instalar o Redis e Redis PHP em servidores com cPanel e EasyApache 4

O Redis , ( Remote Dictionary Server ) é um banco de dados não relacional NoSQL capaz de armazenar dados no formato chave-valor(Key-value).

Seguindo os passos de outros bancos de dados NoSQL, como Cassandra, CouchDB e MongoDB, o Redis permite que o usuário armazene grandes quantidades de dados sem os limites de um banco de dados relacional.
Atualmente quase todas as linguagens, incluindo PHP, têm ligações Redis.

Neste guia, vamos abordar a instalação do servidor Redis e a extensão PHP Redis em servidores baseados em cPanel, para que você possa usar o Redis como um back-end de cache para seu WordPress, Laravel, Drupal ou qualquer outro aplicativo baseado em PHP.

Instalando o Redis:

para CentOS 6/RHEL 6

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum -y install redis --enablerepo=remi --disableplugin=priorities
chkconfig redis on
service redis start

para CentOS 7/RHEL 7

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install redis --enablerepo=remi --disableplugin=priorities
systemctl enable redis
systemctl start redis

Instalando a extensão PHP do Redis PHP em todas as versões PHP disponíveis no servidor.

Importante: Copie e cole todo o bloco abaixo em sua sessão SSH, (não copie e cole linha a linha)

for phpver in $(ls -1 /opt/cpanel/ |grep ea-php | sed 's/ea-php//g') ; do
cd ~
wget -O redis.tgz https://pecl.php.net/get/redis
tar -xvf redis.tgz
cd ~/redis* || exit
/opt/cpanel/ea-php"$phpver"/root/usr/bin/phpize
./configure --with-php-config=/opt/cpanel/ea-php"$phpver"/root/usr/bin/php-config
make clean && make install
echo 'extension=redis.so' > /opt/cpanel/ea-php"$phpver"/root/etc/php.d/redis.ini
rm -rf ~/redis*
done

Restart Apache e PHP Fpm

/scripts/restartsrv_httpd
/scripts/restartsrv_apache_php_fpm

Verifique para ter certeza que a extensão PHP do Redis está instalada em cada versão PHP

Importante: Copie e cole todo o bloco abaixo em sua sessão SSH, (não copie e cole linha a linha)

for phpver in $(ls -1 /opt/cpanel/ |grep php | sed 's/ea-php//g') ; do
echo "PHP $phpver" ; /opt/cpanel/ea-php$phpver/root/usr/bin/php -i |grep "Redis Support"
done

O resultado deverá ser algo como:

PHP 56
Redis Support => enabled
PHP 70
Redis Support => enabled
PHP 71
Redis Support => enabled
PHP 72
Redis Support => enabled

Bom proveito !!

Please follow and like us:

Como habilitar HTTP/2 com nginx

Nginx com http/2

O HTTP/2 torna nossas aplicações web mais rápidas, simples e robustas. O http2 abre uma série de novas oportunidades para otimizar nossas aplicações e melhorar o desempenho.

O principal objetivo do http/2 é reduzir a latência permitindo a multiplexação total de solicitações e respostas, minimizando a sobrecarga de protocolos por meio de compactação eficiente do http header, além de adicionar suporte para a priorização de solicitações e envio de dados aos servidores. Existem ainda um grande suporte de outros aprimoramentos de protocolo, como novos mecanismos de controle de fluxo, tratamento de erros e atualização, mas os recursos descritos acima são os mais importantes .

 

Mãos a obra

Notas – Antes de começar:

  • Certifique-se que você tenha instalado em seu domínio um certificado ssl válido. http/2 somente funciona com HTTPS
  • Este passo a passo foi escrito utilizando um servidor com Painel CWP Pro (CentOS Web Panel) e CentOS 6, porém, já foi testado no CentOS 7, com ou sem Painel de controle   (foram necessárias apenas algumas adaptações lógicas).

– Acesse o SSH de seu servidor como root

Atualizando os packs do OS para a última versão


yum clean all
yum -y update

Atualizando Autoconf:


cd /usr/local/src
rm -rf autoconf-*
wget https://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar zxvf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr
make && make install

Atualizando Openssl:


cd /usr/local/src
rm -rf openssl-*
wget https://www.openssl.org/source/openssl-1.0.2q.tar.gz
tar zxvf openssl-1.0.2q.tar.gz
cd openssl-*
./config --prefix=/usr --openssldir=/usr/lib64 shared
make && make install

Instalando Nghttp2:


cd /usr/local/src
rm -rf nghttp2-* yum install libtool -y wget https://github.com/nghttp2/nghttp2/releases/download/v1.35.1/nghttp2-1.35.1.tar.gz tar zxvf nghttp2-1.35.1.tar.gz cd nghttp2-* ./configure --prefix=/usr make && make install

Acesse o diretório de configuração do nginx


cd /etc/nginx/conf.d/vhosts/

Edite o arquivo “seudodominio_ssl.conf”


nano seudodominio_ssl.conf

Localize:


server {
listen xxx.xx.xxx.xx:443;

xxx é apenas um exemplo. não altere o ip

Adicione após “:443” ssl http2


server {
listen xxx.xx.xxx.xx:443 ssl http2;

Salve e saia do editor nano ( “ctrl+x “ e “y” )

Reiniciei o nginx


service nginx restart

Agora, vamos verificar se está tudo certo, acesse https://tools.keycdn.com/http2-test
digite a url de seu site para verificar se o HTTP/2 está ativo

 

 

 

 

 

Please follow and like us:

Como desabilitar funções perigosas do PHP

O PHP é uma linguagem de script rica em recursos, mas quando utilizada de forma incorreta , intencionalmente ou não, pode comprometer grande parte do servidor web ou seus dados.

Através do arquivo php.ini em disable_functions, vamos criar uma lista de funções que devem ser desabilitadas por motivos de segurança.

Localizando o arquivo php.ini correto no servidor.

O primeiro passo é encontrar o arquivo php.ini correto no servidor. Existem vários cenários em um servidor web em que são criados vários arquivos php.ini . Por exemplo, se utilizamos o php-fpm com múltiplas versões do php instaladas em nosso servidor, haverá um php.ini para cada versão… Neste caso você deverá procurar o php.ini responsável por cada versão. O local correto irá variar dependendo de sua Distribuição Linux, se utiliza algum Painel de controle ou não , etc.

A forma mais simples de localizar o php.ini correto em nosso servidor é executando um arquivo php que nos traga através de “phpinfo()” todas as configurações de nosso php.

Crie um arquivo info.php em alguma url ativa em seu servidor web e insira

<?php
phpinfo();
?>

Acesse através de seu navegador web o arquivo info.php. Serão exibidas várias informações úteis sobre o php ativo nessa URL.

Localize: “Loaded Configuration File” . Este é o caminho correto para o php.ini que desejamos . Copie o caminho para php.ini , nós vamos utilizá-lo a seguir para informar em disable_functions as funções que desejamos desabilitar.

PHP Info Loaded Configuration

Acesse seu servidor linux utilizado o ssh e edite o arquivo php.ini

nano /caminhodeseuphp.ini/php.ini

Localize “disable_functions =” e modifique para :

disable_functions =  exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

Em tempo, recomendo que por motivos de segurança desabilite allow_url_fopen e allow_url_include:

allow_url_fopen=Off
allow_url_include=Off

Salve (Ctrl+o) e saia do nano (Ctrl+x)

Reinicie o httpd server

  • Se utiliza o Apache e não possui o php-fpm:

Para CentOS/RedHat:

systemctl restart httpd 

ou

service httpd restart

Para Debian/Ubuntu:

service apache2 restart
  • Se utiliza o PHP-FPM

O PHP-FPM (FastCGI Process Manager ), é um manipulador do PHP que funciona a parte, como um serviço e não um módulo. A forma correta de reiniciar irá variar dependendo de como foi instalado em seu servidor .

Para simplificar, acesse seu arquivo info.php criado anteriormente e note que em ” Loaded Configuration File” haverá um nome parecido com “php-fpmxxx” esse será o nome do processo que você deverá reiniciar .

phpinfo php-fpm
Nome do processo php-fpm .Exemplo php-fpm72

Com as informações acima reinicie o serviço substituindo “php-fpmxxx” pelo nome encontrado em seu servidor. :

Para CentOS/RedHat:

systemctl restart php-fpmxxx 

ou

service php-fpmxxx restart

Para Debian/Ubuntu:

service php-fpmxxx restart

Para se certificar que as configurações foram atualizadas, acesse novamente seu arquivo info.php e verifique em disable_functions se a lista de funções estão sendo exibidas.

Nota Final: Para informação, utilizando o php-fpm existem ainda outras formas de desabilitar as funções que não foram abordadas neste post.

Please follow and like us:

Como alterar a porta do SSH

SSH Secure Shell

Uma das primeiras tentativas de um cracker é identificar as portas em que os serviços como SSH, FTP, etc, estão utilizando. Identificado a porta, um cracker poderia iniciar alguns tipos de ataques como por exemplo,  força bruta, a fim de descobrir o usuário e senha para posterior invasão.

Como medida de segurança, o melhor a fazer é modificar a porta de conexão ao SSH.

1 – edite o arquivo de configuração do ssh

nano /etc/ssh/sshd_config

2 – Localize “Port 22” e modifique para a nova porta que deseja se conectar.
Procure não utilizar portas semelhantes as que já estão sendo utilizadas em seu servidor ( exemplo: 22, , 81, etc…) .

Port 36509

Salve e saia do editor nano ( “ctrl+x “ e “y” )
4 – Reinicie o sshd .

service sshd restart

ou (se utiliza CentOS 7 )

systemctl restart ssh

Na próxima vez que se conectar ao SSH , será preciso que informe a nova porta. Lembre-se de atualizar a porta de conexão em seu firewall.

Please follow and like us: