Há algum tempo fizemos um post sobre Instalando o WordPress no CentOS7, aqui faremos uma atualização e uma expansão ao conteúdo, especificando um perfil de edição e instalando alguns plugins, mas não entraremos na instalação do SO em si, apenas as etapas pós a instalação do CentOS.
Sugerimos que, ao final da execução desse post, leia também os Posts:
Instalação do banco de dados
Execute os procedimentos abaixo no servidor de banco:
firewall-cmd –zone=public –add-port=3306/tcp
firewall-cmd –zone=public –add-port=3306/tcp –permanent
yum install mariadb mariadb-server -y
systemctl enable mariadb.service
systemctl start mariadb
mariadb-secure-installation
Se esse comando não funcionar, utilize o comando mysql_secure_installation
Aparecerá uma tela para confirmar algumas informações, responda da seguinte forma:
Pergunta | O que deverá ser respondido |
Enter current password for root (enter for none): | Deixe em branco e pressione ENTER |
Switch to unix_socket authentication [Y/n] | N e pressione ENTER |
Set root password? [Y/n] | Y e pressione ENTER |
New password: | Insira a senha (veja qual é) e pressione ENTER |
Re-enter new password: | Repita a senha e pressione ENTER |
Remove anonymous users? [Y/n] | Y e pressione ENTER |
Disallow root login remotely? [Y/n] | N e pressione ENTER |
Remove test database and access to it? [Y/n] | Y e pressione ENTER |
Reload privilege tables now? [Y/n] | Y e pressione ENTER |
Para criação dos bancos para o WordPress, execute:
mysql -u root -p
Será solicitado a senha do root, informe-a e em seguida execute (altere a senha secretpassword pela senha que será utilizada para o usuário do banco):
create database wordpress;
grant all privileges on wordpress.* to 'Userwordpress' identified by 'secretpassword' with grant option;
flush privileges;
quit
OBSERVAÇÃO: Se for um ambiente de produção não se esqueça de adicionar uma rotina de backup para o banco.
Instalação do servidor Web
Caso queira utilizar outra versão, acesse https://br.wordpress.org/download/#download-install para verificar a versão (e o caminho para download) desejado. Execute as sessões abaixo:
yum install httpd -y
systemctl enable httpd
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
mkdir -p /var/www/html/blank
touch /var/www/html/blank/index.html
chown -R apache.apache /var/www/html/blank
chmod -R 500 /var/www/html/blank
service httpd start
Caso não ocorra erros (se ocorrer, verifique o procedimento que foi feito), execute os comandos abaixo para instalar o PHP 8.1:
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(cat /etc/centos-release | grep -E -o '[[:digit:]]+').noarch.rpm
yum -y install http://rpms.remirepo.net/enterprise/remi-release-$(cat /etc/centos-release | grep -E -o '[[:digit:]]+').rpm
yum -y install yum-utils
yum install php81 php81-php php81-php-pecl-apcu php81-php-common php81-php-curl php81-php-dom php81-php-gd php81-php-intl php81-php-pecl-zip php81-php-devel php81-php-ldap php81-php-mbstring php81-php-mysql php81-php-odbc php81-php-pear php81-php-snmp php81-php-soap php81-php-xml php81-php-xmlrpc zlib-devel -y
yum install curl exif mhash php81-php-pecl-igbinary php81-php-pecl-imagick php81-php-intl php81-php-mbstring openssl pcre php81-php-xml php81-php-pecl-zip php81-php-pecl-apcu memcached php81-php-opcache zlib -y
service php81-php-fpm stop
service httpd stop
mv /etc/php.ini /etc/php.old
ln -s /etc/opt/remi/php81/php.ini /etc/php.ini
sed -i "s/;date.timezone =/date.timezone = America\/Sao_Paulo\n;/g" /etc/opt/remi/php81/php.ini
sed -i "s/post_max_size = 8M/post_max_size = 20M/g" /etc/opt/remi/php81/php.ini
sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 20M/g" /etc/opt/remi/php81/php.ini
service php81-php-fpm restart
service httpd restart
Instalação do WordPress
Agora é necessário criar a pasta do site LGPD (assim como explicitado acima, altere as partes em cinza para o ambiente correto)
SITE="seusite.com.br"
Com a variável de ambiente criada, vamos executar os comandos:
HOST=$(echo $SITE | cut -d. -f1)
groupadd $HOST
usermod -a -G $HOST apache
useradd -mg $HOST $HOST
echo "umask 112" >> /home/$HOST/.bashrc
cd /var/www/html
wget https://br.wordpress.org/latest-pt_BR.tar.gz
tar -zxvf latest-pt_BR.tar.gz
mv wordpress $SITE
rm -rf latest-pt_BR.tar.gz
chown -R apache:apache /var/www/html/$SITE
chmod -R 775 /var/www/html/$SITE
touch /var/log/httpd/$SITE-error.log
touch /var/log/httpd/$SITE-requests.log
Agora, execute conteúdo:
echo "<VirtualHost *:80>" >> /etc/httpd/conf.d/vhosts.conf
echo " ServerName $SITE" >> /etc/httpd/conf.d/vhosts.conf
echo " ServerAlias $HOST" >> /etc/httpd/conf.d/vhosts.conf
echo " ServerAdmin suporte@$SITE" >> /etc/httpd/conf.d/vhosts.conf
echo " DocumentRoot /var/www/html/$SITE" >> /etc/httpd/conf.d/vhosts.conf
echo " ErrorLog \"/var/log/httpd/$SITE-error.log\"" >> /etc/httpd/conf.d/vhosts.conf
echo " CustomLog \"/var/log/httpd/$SITE-requests.log\" combined" >> /etc/httpd/conf.d/vhosts.conf
echo "</VirtualHost>" >> /etc/httpd/conf.d/vhosts.conf
echo "<Directory /var/www/html/$SITE>" >> /etc/httpd/conf.d/vhosts.conf
echo " AllowOverride All" >> /etc/httpd/conf.d/vhosts.conf
echo "</Directory>" >> /etc/httpd/conf.d/vhosts.conf
Feito isso digite a tecla ESC e em seguida digite :wq! e pressione ENTER para sair e salvar.
service httpd restart
Abra o site em uma guia anônima e abra o novo site com http e configure.
Na tela de configuração de banco, utilize os dados que foram utilizados na criação do banco (nome da database, usuário e senha). No prefixo da tabela utilize wp_nomedosite_ , clique em Enviar e na tela seguinte, clique em Instalar. Na tela seguinte, preencha os dados de acesso (passe a senha para a equipe de rede), clique em Instalar WordPress e depois em Acessar.
Na tela seguinte, acesse para teste (com os dados cadastrados)
Estando tudo certo, acesse o site de administração, vá em usuários e altere o nome de exibição do usuário admin (não deve ficar igual ao Login). Vá em configurações e Links permanentes apagar o campo estrutura personalizada e selecione category e postname.
Opcional – Configurando para uso SSL com um Proxy Reverso
Vá na administração do WordPress, clique no menu Plugins, adicione, instale e ative o plugin SSL Insecure Content Fixer. Em seguida clique em Configurações, clique em SSL Insecure Content e altere:
- Em Fix insecure content, altere para Capture All;
- Em Fixes for specific plugins and themes deixe marcado apenas WooCommerce + Google Chrome HTTP_HTTPS bug
- Em Ignore external sites, marque a opção Only fix content pointing to this WordPress site;
- Em HTTPS detection, marque a opção HTTP_X_FORWARDED_PROTO (e.g. load balancer, reverse proxy, NginX)
- Com todas as alterações, salve a configuração.
Agora edite o arquivo wp-config.php do seu site, com o comando:
vim /var/www/html/seusite.com.br/wp-config.php
Dentro, pressione a tecla INSERT de seu teclado para entrar em modo de inserção coloque o seguinte conteúdo acima das primeiras configurações existentes:
if (isset($_SERVER[‘HTTP_X_FORWARDED_PROTO’]) && $_SERVER[‘HTTP_X_FORWARDED_PROTO’] === ‘https’) { $_SERVER[‘HTTPS’] = ‘on’; } |
Ao final digite a tecla ESC, para sairdo modo de inserção, em seguida digite :wq! e pressione ENTER para sair e salvar.
Com todas as alterações, salve a configuração, altere a configuração no DNS (para apontar o site para sue proxy) e no proxy reverso para utilizar o WordPress.
Criando o perfil (role) Designer
Abra a pasta do wp-includes do WordPress, faça uma cópia do arquivo functions.php e execute o comando:
vim /var/www/html/seusite.com.br/wp-includes/functions.php
Localize a linha com function mysql2date (observe se a formatação se mantém correta) e inclua acima dela o seguinte:
// ———————————- Criação do perfil Designer ———————————- // Adiciona uma nova role chamada “designer” function create_designer_role() { add_role( ‘designer’, // Identificador único para a role __( ‘Designer’ ), // Nome exibido da role array( ‘read’ => true, ‘edit_posts’ => true, ‘edit_pages’ => true, ‘edit_others_posts’ => true, ‘edit_others_pages’ => true, ‘edit_theme_options’ => true, ‘switch_themes’ => true, ‘edit_themes’ => true, ‘moderate_comments’ => true, ‘manage_categories’ => true, ‘manage_links’ => true, ‘upload_files’ => true, ‘import’ => true, ‘edit_posts’ => true, ‘edit_others_posts’ => true, ‘edit_published_posts’ => true, ‘publish_posts’ => true, ‘edit_pages’ => true, ‘edit_others_pages’ => true, ‘edit_published_pages’ => true, ‘publish_pages’ => true, ‘delete_pages’ => true, ‘delete_others_pages’ => true, ‘delete_published_pages’ => true, ‘delete_posts’ => true, ‘delete_others_posts’ => true, ‘delete_published_posts’ => true, ‘delete_private_posts’ => true, ‘edit_private_posts’ => true, ‘read_private_posts’ => true, ‘update_themes’ => true, ‘install_themes’ => true, ‘edit_theme_options’ => true, ‘delete_themes’ => true, ‘export’ => true, ‘unfiltered_html’ => true, ) ); } add_action(‘init’, ‘create_designer_role’); |
Salve o arquivo. Verifique no menu Usuários > Adicionar Novo Usuário se o novo tipo de usuário aparece em Roles.
Fontes/Referências
NVLAN – Configurar o WordPress para utilizar SSL por um proxy reverso NginX
NVLAN – Instalação de plugins para o WordPress
Mais Informações
Esperamos ter te ajudado e estaremos sempre a disposição para mais informações.
Se você tem interesse em algum assunto específico, tem alguma dúvida, precisa de ajuda, ou quer sugerir um post, entre em contato conosco pelo e-mail equipe@nvlan.com.br.