Como instalar o CENTMIN MOD no CentOS 7

O CENTMIN MOD a princípio é um conjunto de programas e ferramentas para construir seu WebServer.

Alguns softwares do CentMin MOD

  • Nginx
  • MariaDB
  • Memcached
  • Redis
  • CSF Firewall
  • e vários outros….

Mas não se engane, o Centmin MOD não é apenas mais um projeto compilado com várias ferramentas, ele vai muito além disso.

Possui um código muito bem escrito e trata questões profundas do servidor como otimização do MariaDB , configuração de módulos do kernel através do sysctl.conf, alterações no arquivo de configuração do SSH, excelente otimização do NGINX , PHP-FPM e por aí vai…

Para mim, é sem duvida um projeto de excelência, voltado a otimização de desempenho e inclui um instalador avançado do WordPress.

Tudo isso é organizado em um menu no shell do servidor, fácil de utilizar.

Existem duas formas de instalar.

A primeira instalaríamos o básico e não conheceríamos como adicionar alguma das dezenas de recursos disponíveis.

A segunda é a que vamos utilizar, através de um arquivo custom_config.inc vamos adicionar recursos importantes.

Para referência, o arquivo completo com todas as funções pode ser encontrado clicando aqui .

Dica: O Centmin MOD analisa o servidor que está sendo instalado e procura otimizar o máximo possível. Sugiro que antes de começar atualize o Kernel conforme abordado no post Como atualizar o Kernel do CentOS

Apontando domínio para o servidor

Para este artigo é necessário um domínio e acesso a criação de entradas DNS .

  • Crie uma entrada DNS do tipo A apontando o domínio para o ip do servidor
  • Crie uma entrada DNS do tipo CNAME apontando www para o nome do seu domínio
Configurações de entradas DNS

Instalando Centmin MOD

Acesse o ssh do seu servidor como root e utilize seu editor predileto. Neste post vamos instalar e utilizar o nano

yum install nano -y

Armazene em uma variável seu email, a seguir crie o local que iremos salvar o arquivo de configuração e edite o novo arquivo custom_config.inc

EMAIL=seuemail@helpsysadmin.ml
mkdir -p /etc/centminmod
nano /etc/centminmod/custom_config.inc

Copie e cole o conteúdo abaixo em seu arquivo custom_config.inc.

# Otimiza dinamicamente nginx ssl_session_cache em  /usr/local/nginx/conf/ssl_include.conf com base na memória detectada pelo sistema 
# https://community.centminmod.com/posts/76615/
NGINX_SSLCACHE_ALLOWOVERRIDE='y'

# Substitui o tempo de atualização do cache de resposta OCSP padrão do Nginx de 1h (3600 segundos) a 24h (86400 segundos) 
# https://community.centminmod.com/threads/19515/
NGINX_STAPLE_CACHE_OVERRIDE='y'
NGINX_STAPLE_CACHE_TTL='86400'

# Muda o MySQLCHARSET para 'utf8mb4'
# conjunto de caracteres padrão e agrupamento de utf8 padrão para utf8mb4
# https://community.centminmod.com/threads/17949/
SET_DEFAULT_MYSQLCHARSET='utf8mb4'

# Ativa a substituição do backlog do nginx https://community.centminmod.com/threads/17620/
AUTOHARDTUNE_NGINXBACKLOG='y'

# Habilita logrotation compactado zstd para nginx & php-fpm https://community.centminmod.com/threads/16374/
ZSTD_LOGROTATE_NGINX='y'
ZSTD_LOGROTATE_PHPFPM='y'

# Habilita certificado SSL letsencrypt + certificados SSL RSA + ECDSA duplos https://centminmod.com/acmetool/
LETSENCRYPT_DETECT='y'
DUALCERTS='y'

# Habilita geração de certificado SSL autoassinado ECC 256bit ECDSA https://community.centminmod.com/posts/82177/
SELFSIGNEDSSL_ECDSA='y'

# habilitado nginx zero tempo de inatividade em tempo real atualizações binárias nginx https://community.centminmod.com/threads/8000/
NGINX_ZERODT='y'

# habilita compressão brotli  https://community.centminmod.com/threads/10688/
NGINX_LIBBROTLI='y'
NGXDYNAMIC_BROTLI='y'

#Aumenta o desempenho do PHP 7 ativando a sinalização de otimização guiada por perfil
# https://centminmod.com/perf/
# aumentará drasticamente os tempos de compilação/instalação do PHP-FPM, mas resultará em
# 5-20% mais rápido de desempenho do PHP 7 PHP_PGO = 'y' só funciona com servidores com
# 2+ ou mais threads de CPU. No entanto, você pode forçar otimizações PHP PGO com
# 1 servidores de thread de CPU via PHP_PGO_ALWAYS = 'y'

PHP_PGO_ALWAYS='y'
PHP_PGO='y'

# extensões de compressão php https://community.centminmod.com/posts/70777/
PHP_BROTLI='y'
PHP_LZFOUR='y'
PHP_LZF='y'
PHP_ZSTD='y'

# Informação do arquivo PHP
PHPFINFO='y'

# habilitado na opção do menu centmin.sh 22 . Inclusões de string de consulta do WordPress Cache Enabler
# https://community.centminmod.com/posts/85927/
WPCLI_CE_QUERYSTRING_INCLUDED='y'

Instalando Centmin MOD com php 7.4

yum -y update; wget https://centminmod.com/betainstaller74.sh
chmod +x betainstaller74.sh
sh betainstaller74.sh

Note que ao final da instalação, serão exibidas informações importantes que você deverá guardar.
Exemplos:

Páginas protegidas com senha com informações:

Memcached Server Admin Login:
PHP Info
Opcache Server Admin Login:

Além da senha de root do MariaDB.

A seguir, vamos pré-criar o arquivo dhparam do site HTTPS Nginx para acelerar as rotinas de criação de vhost Nginx subsequentes. Em sistemas lentos, este comando levará alguns minutos para ser concluído.

openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048

Executando o menu do Centmin MOD e criando um vhost WordPress otimizado.

Para visualizar o Menu do Centmin MOD digite centmin. Na primeira vez ele irá solicitar que você informe um email principal e outro secundário.
Aguarde até o final das configurações.

Menu Centmin MOD

Digite o numero 22 para criarmos nossa conta com o WordPress

Digite Y para a pergunta
Do you want to continue with Nginx vhost site creation ? [y/n]

Digite o nome do seu domínio que já utiliza o IP do servidor como vimos no princípio
Enter vhost domain name you want to add (without www. prefix): helpsysadmin.ml

Digite N para a pergunta abaixo
Create a self-signed SSL certificate Nginx vhost? [y/n]:

Digite Y para a próxima pergunta
Get Letsencrypt SSL certificate Nginx vhost? [y/n]:

Na próxima pergunta digite 4
You have 4 options:

  1. issue staging test cert with HTTP + HTTPS (untrusted)
  2. issue staging test cert with HTTPS default (untrusted)
  3. issue live cert with HTTP + HTTPS (trusted)
  4. issue live cert with HTTPS default (trusted)


Digite N para
Install CyberChimps Responsive Theme (cyberchimps.com/responsive-theme/) [y/n]:

Digite N para
Not a fan of Gutenberg Editor ? You can switch to Classic Editor
If you run into Gutenberg Editor issues, you can later switch to
the Classic Editor https://wordpress.org/plugins/classic-editor/
Install Classic Editor WordPress Plugin ? [y/n]:

Digite Y para
Autoptimize WP Plugin is installed by default. Do you want to install
companion Autoptimize Gzip Plugin to precompresses js/css optimized files
details at https://community.centminmod.com/threads/15314/
Install Autoptimize Gzip Companion WordPress Plugin ? [y/n]:

Digite Y para
Google Native LazyLoad Plugin https://wordpress.org/plugins/native-lazyload/
Install Google Native LazyLoad Plugin ? [y/n]:

Digite N para
Set custom WP Admin Display Name ? [y/n]:

Digite N para
Install WordPress in subdirectory /blog ? [y/n]:

A próxima fica a sua escolha. Se digitar Y, você poderá criar o usuário e senha do usuário admin WordPress. Se digitar N, será criado um usuário e senha bastante seguro.
Disable Auto Generated WP Admin Username / Password ? [y/n]:

Se digitar N , além da senha do admin do wordpress será criado um usuário e senha para acessar wp-login.php . Para efeito didático vamos optar por desabilitar este recurso, responda Y
Disable wp-login.php password protection ? (less security) [y/n]:

Será solicitado que crie o usuário e senha e um email para o WordPress
Enter desired WP Admin Username: helpsysadmin
Enter desired WP Admin Password: minhasenhasegura
Enter email address for Admin User for WordPress Installation: seuemail@helpsysadmin.ml

A seguir será solicitado que escolha qual plugin para cache deseja instalado em seu servidor. Neste post vamos utilizar o “KeyCDN Cache Enabler”, digite 1

WordPress Caching
1) KeyCDN Cache Enabler
2) Redis Nginx Level Caching
3) WordPress Super Cache

Crie seu usuário ftp
Create FTP username for vhost domain (enter username):

Se optar por Y será gerado uma senha segura para seu usuário ftp
Do you want to auto generate FTP password (recommended) [y/n]:

Setup WordPress + Cache Enabler for helpsysadmin.ml
Será feita a seguinte pergunta
Utilizar o cache de página estática completo pode causar problemas para dispositivos móveis e tablets visitantes, dependendo do tema WP que utiliza, então você pode querer excluí-los.

Digite Y

Pronto, o WordPress foi instalado e se tudo correu bem ele já está acessível com https. Observe no terminal um pouco antes de terminar a configuração que foi informado seus usuários e senhas.

Para terminar o setup é solicitado que faça algumas configurações na administração do WordPress.

Para facilitar vou traduzir aqui o que é necessário configurar.

O WP está em inglês, mas podemos mudar isso em Menu >> Settings . Em Site Language altere para Português do Brasil e ao final da página clique no botão Save.

Para completar o setup:
1 – Em Configurações >> Ative os links permanentes (NÃO use links com extensões .html por motivos de desempenho) Exemplo: /%post_id%/%postname%/
Sugiro que utilize algo como o exemplo:
https://helpsysadmin.ml/post-exemplo/
2 – Acesse Configurações >> Cache Enabler . Na minha opinião não é necessário nenhuma modificação.
3 – Acesse Configurações >> Autoptimize . Sugiro que habilite as opções e teste se isso irá afetar o seu tema.
O ganho em desempenho ao otimizar o Javascript e CSS é bastante significativo porém em alguns casos pode afetar o tema instalado.

Lembre-se o Centmin MOD procurou otimizar ao máximo seu servidor e aplicativos envolvidos, obviamente ele não analisou logs, numero de requisições média no servidor e utilização de recursos que é essencial para alcançar o melhor desempenho possível . Oferecemos no plano de Otimização de Servidor para WordPress otimizações avançadas para alcançar o melhor desempenho e segurança no servidor.

Espero que tenham gostado de mais este Post. Até mais !!