Lab contendo PHP + Nginx no CentOS 6
Lab simples com CentOS 6.9 usando PHP e Nginx, rotacionamento de logs através do logrotate e remoção de logs com tempo superiores a 15 dias
Faça a instalação do CentOS 6.9 em uma máquina virtual
PASSO 1 - Realize os ajustes iniciais do SO
Nome do servidor será: CentOS6Nginx01
IP: 192.168.79.148
MASK: 255.255.255.0
GW: 192.168.78.2
DNS: 1.1.1.1 , 8.8.8.8
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.79.148
NETMASK=255.255.255.0
GATEWAY=192.168.79.2
/etc/resolv.conf
search localdomain
nameserver 1.1.1.1
nameserver 8.8.8.8
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=centos6nginx01.localdomain
/etc/hosts
192.168.79.148 CentOS6Nginx01 CentOS6Nginx01.localdomain
/etc/selinux/config
SELINUX=disabled
service iptables stop
chkconfig iptables off
---------- BOOT VALIDAÇÃO ------------
RHEL/CentOS 7 64 Bit
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RHEL/CentOS 6 64 Bit
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum clean all
yum repolist
yum install nginx
service nginx start
chkconfig nginx on
valide se o nginx está funcionando
http://IP servidor
PASSO 2 - Instale os pacotes necessários para o PHP
yum install php php-fpm
PASSO 3 - Deixe o PHP mais seguro
vim /etc/php.ini
Descomente a linha abaixo e adicione 0 (zero). Ela deverá ficar como o exemplo abaixo:
cgi.fix_pathinfo=0
Edite o arquivo de configuração php-fpm em www.conf:
vim /etc/php-fpm.d/www.conf
Encontre a linha abaixo e a descomente, ou insira caso não exista
listen = /var/run/php-fpm/php-fpm.sock
Encontre as linhas abaixo e as descomente
listen.owner = nobody
listen.group = nobody
Encontre no arquivo o usuário/grupo de execução e altere de apache para nginx
user = nginx
group = nginx
reiniciar o processo php-fpm
/etc/init.d/php-fpm restart
ativar o php-fpm para o boot
chkconfig php-fpm on
PASSO 4 - Configure o Nginx
Edite o arquivo abaixo, deixando-o com o conteúdo abaixo:
vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name centos6nginx01;
# note that these lines are originally from the "location /" block
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Teste seu arquivo de configuração para erros de sintaxe digitando:
# nginx -t
/etc/init.d/nginx restart
chkconfig nginx on
PASSO 5 - Crie uma página de teste PHP
vim /usr/share/nginx/html/info.php
PASSO 6 - Log Rotation utilizando o logrotate
vim /etc/logrotate.d/nginx
/var/log/nginx/*log {
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -USR1 $(cat /var/run/nginx.pid 2>/dev/null) 2>/dev/null || :
endscript
}
PASSO 7 - lipando logs antigos (superiores a 15 dias)
#!/bin/bash
find /var/log/nginx -type f -mtime +15 -exec sh -c "echo {} >> /var/log/log_clean_nginx.log; rm -f {}" \;
criar um agendamento na cron
PATH=/bin:/sbin:/usr/bin:/usr/sbin
# LIMPEZA DE LOGS
# VERRIFICA TODOS OS DIAS DO MES AS 13H01 E LIMPAR LOGS
01 13 * * * /root/cleanlog_nginx.sh >> /var/log/log_cleanlog_nginx.log 2>&1
fontes:
CentOS
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7
Ubuntu
https://www.digitalocean.com/community/tutorials/como-instalar-linux-nginx-mysql-php-pilha-lemp-no-ubuntu-16-04-pt