Instalar o WordPress 5 com Apache, MariaDB 10 e PHP 7 no CentOS 7
O WordPress é, sem margem de dúvida, uma das plataformas de conteúdos (tipicamente também designado de CMS – content management system) mais populares da Internet. Com o WordPress o utilizador pode criar facilmente sites, blogs, sites de comércio eletrónico, etc… de uma forma rápida, simples e muito profissional.
Hoje vamos ensinar como podem ter o WordPress 5 com Apache, MariaDB 10 e PHP 7 a funcionar no CentOS 7.
Para a elaboração deste tutorial instalamos a versão minimal do CentOS 7. Para instalar o WordPress 5 com Apache, MariaDB 10 e PHP 7 devem seguir os seguintes passos:
1) Instalar o repositório Remi no CentOS 7
Para ativar o repositório Remi, que disponibiliza versões atualizadas do Apache, MySQL / MariaDB e PHP basta que usem o seguinte comando.
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm |
Em seguida vamos instalar os utilitários do yum. Vamos também desativar o php5.4 e ativar a versão 7.3 do PHP.
yum install yum-utils yum-config-manager --disable remi-php54 yum-config-manager --enable remi-php73 |
2) Instalar a Stack Lamp no CentOS 7
Para instalar o mariadb (base de dados), PHP e os respetivos módulos podem executar o seguinte comando
yum install httpd mariadb mariadb-server php php-common php-mysql php-gd php-xml php-mbstring php-mcrypt |
Em seguida iniciamos a base de dados mariaDB e executar o script mysql_secure_installation para:
- Definir uma password para o utilizador root
- Remover bases de dados de testes
- Remover utilizadores anónimos
- Não permitir o acesso remoto ao gestor de base de dados
- etc.
systemctl start mariadb mysql_secure_installation |
O próximo passo é definir que o sistema de gestão de base de dados MariaDB arranca sempre com o sistema. Para isso usem o seguinte comando:
systemctl enable mariadb |
Em seguida arranque o serviço httpd (Apache) e indiquem que o mesmo arranca também com o sistema.
systemctl start httpd
systemctl enable httpd |
3) Criar Base de Dados para o MySQL
Para guardar todos os conteúdos do WordPress é necessário criarmos uma base de dados para a plataforma. Para fazer isso devem seguir os seguintes passos:
mysql -u root -p Enter password: |
## Criar Base de Dados ## CREATE DATABASE wordpress; ## Criar novo utilizador ## CREATE USER u_wordpress@localhost IDENTIFIED BY "123qwe"; ## Definir previlégios para a base de dados ## GRANT ALL ON wordpress.* TO u_wordpress@localhost; ## FLUSH aos privilégios ## FLUSH PRIVILEGES; ## Exit ## exit |
4) Download e Instalação do WordPress
Para começar vamos obter a última versão do WordPress. Tal pode ser feito com o seguinte comando:
cd /tmp && wget http://wordpress.org/latest.tar.gz |
Em seguida procedam à decompactação para o diretório /var/www/html:
tar -xvzf latest.tar.gz -C /var/www/html |
Vamos agora definir como owner (dono) o utilizador apache
chown -R apache /var/www/html/wordpress |
5) Criar um Virtual Host
O próximo passo é criar um VirtualHost. A criação de VirtualHosts permite que, numa única máquina, possamos ter vários sites, sendo que cada um pode estar associado a um nome ou a um endereço IP.
Para isso vamos editar o ficheiro /etc/httpd/conf/httpd.conf usado um editor de texto (ex. nano).
<virtualhost :80=""> ServerAdmin pplware@pplware.com DocumentRoot /var/www/html/wordpress ServerName pplwaretest.com ServerAlias www.pplwareteste.com ErrorLog /var/log/httpd/pplwaretest-error-log CustomLog /var/log/httpd/pplwaretest-acces-log common </virtualhost> |
Por fim reiniciem o serviço apache para que todas as alterações tenham efeito a partir deste momento.
systemctl restart httpd |
6) Definir exceção na Firewall
Para que o serviço esteja disponível fora da máquina, via porto lógico 80, devem executar os seguintes comandos para criar uma exceção.
sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload |
7) Instalação do WordPress
Para instalarem o WordPress basta abrirem um browser, numa máquina na rede onde está WordPress e inserir o endereço: http://
Nota: Se vos aparecer a informação “Forbidden You don’t have permission to access / on this server.” insiram no terminal o seguinte comando: setenforce 0
Indiquem os dados para ligação à base de dados que foi criada anteriormente
Indiquem agora os dados para os campos solicitados: Titulo do Site, nome de utilizador, etc. Depois é só carregar em Instalar WordPress.
Caso não seja possível escrever a informação no ficheiro wp-config.php, façam esse processo manualmente. Para tal criem o ficheiro wp-config.php dentro da estrutura do WordPress e colem o texto que é fornecido.
E está feito! Para acederem ao site basta usarem o endereço http://<IP_maquina_wordpress>. O backoffice está disponível em http://<IP_maquina_wordpress>/wp-admin.
Para quem quiser ter menos trabalho e ter um wordpress já instalado, semi-configurado e de alta performance, aconselhamos a verem aqui esta solução.
Este artigo tem mais de um ano
Bom artigo 😉
Boas,
eu sei que isto não é sobre windows e iis mas tenho uma instalação wordpress simples com php + iis + mysql mas dá muitos erros 500, não tem plugins mas muitos acessos, o que poderá ser?
*não posso alterar a plataforma
Você tem acesso ao log do servidor? Pode ser muitas coisas entre elas o MySQL não conseguir suportar o número de conexões simultâneas.
Façam um tutorial do Nginx + ModSecurity para WordPress isso sim era bem apreciado. É dificil de encontrar tutoriais e manuais sobre o Modsecurity e as suas regras em Português e bem explicitas.
Outra sugestão: geo country blocking, bloquear todo o tráfego vindo de um pais era muito mas muito interessante tanto com Apache como com Nginx, qual seria a maneira mais eficaz de fazer isto? Para aparecer “connection refused” ou “connection dropped” no browser da pessoa? Já vi uma empresa a fazer isso.
Qual seria a melhor maneira de fazer country blocking e com quê? Eu sei que se deve usar IP Range ou uma lista CIDR para bloquear, mas qual seria a melhor maneira? IPTables? Fail2ban? DNS?
Eu queria que aparecesse “Connection Refused” alguem da alguma luz?
PS: Quero evitar de todo ao máximo Plugins, eu sei que existem plugins mas estamos a falar de server-side e é isso que me interessa.
“setenforce 0” ??? “Desligar” o seLinux não é boa politica de segurança. (policycoreutils-gui)
O seLinux tem vários modos de funcionamento : Enforcing , Permissive , Disabled.
Pode ver mais sobre o seLinux neste url https://howto.lintel.in/enable-disable-selinux-centos/
O sakura tem razão. seLinux tem que ficar sempre em enforcing por razões de segurança.
Não percebo o teu comentário José….
O SELinux (Security-Enhanced Linux) é um módulo de segurança que funciona ao nível do kernel do Sistema Operativo, e que providencia mecanismos de políticas de controlo de acesso.
A razão de muitos admins desactivarem o seLinux (não recomendo, de preferência é melhor resolver o problema e manter o seLinux activado)
https://seguranca-informatica.pt/tutorial-selinux-de-forma-facil/
Introdução ao SELinux – O Manual do Administrador Debian
https://debian-handbook.info/browse/pt-BR/stable/sect.selinux.html
Configurar e trabalhar com SELinux (CentOS)
http://gesielbernardes.eti.br/configurar-selinux.html
“setenforce 0” é temporário… Até o próximo reboot
.. já agora, a melhor forma de instalar WordPress no centOS (tendo acesso à máquina) é utilizando “CentminMOD”.
Porque instalar WordPress é só o primeiro passo .. é necessário muito mais para ter um site funcional, rápido e seguro. .