Nesse artigo, assista a como criar um Cloud com Wordpress. Nele, vou mostrar como criar um servidor no Google Cloud dentro do CentOS 7.
Para isso, primeiramente vou criar este cloud com NGINX + PHP 7.4 + MariaDB 10.5.
Segue o vídeo da instalação dentro do Google Cloud.
Início
Primeiramente, vamos atualizar o nosso sistema e instalar alguns aplicativos que iremos utilizar na nossa instalação como yum-utils, nano e wget.
Adicionando Repositório
Logo depois de ter instalado os aplicativos, vamos adicionar o repositório do remi.
http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Agora vamos habilitar o repositório.
Instalação do NGINX
Vamos então instalar o NGINX, iniciar o serviço e abrir o firewall.
Logo depois vamos abrir a página para ver se está funcionando.
Instalando MariaDB
Vamos adicionar o repositório do MariaDB 10.5 no nosso Centos 7 para poder instalar ele e então fazer a instalação.
Instalação do PHP
Chegou a hora de instalar o PHP, como é uma linha muito grande segue a linha da instalação do php.
Logo após ter instalado o PHP vamos fazer algumas modificações no arquivo de configuração do php-fpm para que seja executado pelo usuário do NGINX.
Então vamos configurar o nginx.conf.
Agora chegou a hora de criar as pastas que vamos utilizar no servidor e nosso arquivo snippets e default.conf.
Vamos reiniciar os serviços para depois testar o funcionamento do php com o respectivo domínio já configurado.
Certbot https
Logo depois de ter o servidor com o php funcionando está na hora de deixar o nosso site seguro com https e http2 para ficar mais rápido.
Instalação do Wordpress
Vamos então, fazer o download do Wordpress, descomprimir e criar a database e usuário no mariadb para utilizar o wordpress.
Extra
Se você desejar fazer configurações extras de segurança veja o artigo a seguir.
Melhores práticas de segurança para o Nginx Web Server
Enfim, espero poder ter ajudado com mais este tutorial de assista como criar um Cloud com Wordpress.
Lista de comandos utilizados:
sudo -i yum update yum install yum-utils nano wget yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum-config-manager --enable remi-php74 yum install nginx systemctl enable --now nginx firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload nano /etc/yum.repos.d/MariaDB.repo ##################### [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.5/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 ##################### yum install mariadb-server -y systemctl enable --now mariadb mysql_secure_installation yum install php php-fpm php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo php-mbstring php-dom php-imagick vim /etc/php-fpm.d/www.conf ##################### ; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. ; RPM: apache user chosen to provide access to the same directories as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx ; Set permissions for unix socket, if one is used. In Linux, read/write ; permissions must be set in order to allow connections from a web server. ; Default Values: user and group are set as the running user ; mode is set to 0660 listen.owner = nginx listen.group = nginx listen.mode = 0660 ##################### chown root.nginx /var/lib/php/session mv /etc/nginx/nginx.conf /etc/nginx/nginx.conk.orig nano /etc/nginx/nginx.conf ##################### # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*.conf; } ##################### mkdir /etc/nginx/sites-avaliable mkdir /etc/nginx/sites-enabled mkdir /etc/nginx/snippets nano /etc/nginx/snippets/fastcgi-php.conf ##################### # regex to split $uri to $fastcgi_script_name and $fastcgi_path fastcgi_split_path_info ^(.+?.php)(/.*)$; # Check that the PHP script exists before passing it try_files $fastcgi_script_name =404; # Bypass the fact that try_files resets $fastcgi_path_info # see: http://trac.nginx.org/nginx/ticket/321 set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; fastcgi_index index.php; include fastcgi.conf; ##################### nano /etc/nginx/sites-avaliable/default.conf ##################### server { listen 80; root /usr/share/nginx/html; index index.php index.html index.htm; server_name dominio.com.aqui; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass 127.0.0.1:9000; } # Log do server error_log /var/log/nginx/error-dominio.log; access_log /var/log/nginx/access-dominio.log; } ##################### cp /etc/nginx/sites-avaliable/default.conf /etc/nginx/sites-avaliable/dominio.conf nano /etc/nginx/sites-avaliable/dominio.conf ln -sf /etc/nginx/sites-avaliable/dominio.conf /etc/nginx/sites-enabled/dominio.conf nano /usr/share/nginx/html/info.php ##################### <?php phpinfo(); ?> ##################### systemctl enable --now php-fpm systemctl restart mariadb systemctl restart nginx rm /usr/share/nginx/html/info.php yum install certbot-nginx certbot --nginx nano /etc/nginx/sites-avaliable/dominio.conf ##################### listen 443 ssl http2; # managed by Certbot ##################### chown nginx.nginx /usr/share/nginx/html -R systemctl restart nginx crontab -e ##################### 0 0 * * 1 /usr/bin/certbot renew >> /var/log/sslrenew.log ##################### systemctl restart crond cd /usr/share/nginx/ mv html/ html-old wget https://br.wordpress.org/latest-pt_BR.tar.gz tar -xzvf latest-pt_BR.tar.gz mysql -u root -p create database dominio; create user 'dominio'@'localhost' identified by 'senha'; grant all privileges on dominio.* to 'dominio'@'localhost'; flush privileges; exit setenforce 0 nano /etc/sysconfig/selinux ##################### SELinux=disabled ##################### mv wordpress html chown nginx.nginx html -R