Skip to main content

ATUALIZANDO PARA O PHP 8.5

Esse procedimento foi feito usando o Rocky 9, mas funciona em outras distribuições. 

Instalando o docker

sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl --now enable docker
sudo systemctl is-active docker

Configurar o systemd para iniciar a instância, vamos chamado o systemd de /etc/systemd/system/scielo.service

[Unit]
Description=SciELO container
After=docker.service
Requires=docker.service

[Service]
TimeoutStartSec=0
Restart=always
RestartSec=5

# Limpeza de containers antigos
ExecStartPre=-/usr/bin/docker stop %p
ExecStartPre=-/usr/bin/docker rm %p

# Execução do container
ExecStart=/usr/bin/docker run \
  --name %p \
  -e SERVER_SCIELO=www.scielo.pt \
  -p 8089:80 \
  -v /var/www/scielo:/var/www/html \
  -v /var/www/apache:/var/www/apache \
  infrascielo/metodologia:v7.4-qa

# Parada limpa
ExecStop=/usr/bin/docker stop -t 10 %p

[Install]
WantedBy=multi-user.target

Itens que precisam ser ajustado:

  • A variável SERVER_SCIELO corresponde ao nome do site sem http://
  • O volume declarado antes dos dois pontos deve ser o caminho da pasta de origem. Exemplo:  /var/www/scielo:/var/www/html. Veja que /var/www/scielo é o caminho da pasta de origem

Execute para iniciar o container:

systemctl daemon-reload
systemctl enable --now scielo

Para ver ele rodando execute:

docker ps

Agora faremos a reparação da base:

docker compose exec -T scielo scielo-instance-check.sh --root /var/www/html --fix

Esse procedimento pode levar alguns minutos.

Agora é necessário configurar o nginx para fazer proxy reverso. Vamos inicialmente instalar o nginx

sudo dnf update -y
sudo dnf install nginx -y
sudo systemctl enable --now nginx
sudo systemctl status nginx

Agora vamos configurar o vhost. Exemplo: vim /etc/nginx/conf.d/scielo.conf 

server {
        listen 443 ssl http2;
        server_name ve.scielo.org;
        ssl_certificate /certificados/scielo.org/fullchain.pem;
        ssl_certificate_key /certificados/scielo.org/privkey.pem;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_stapling on;
        ssl_stapling_verify on;
        add_header Strict-Transport-Security max-age=15768000;
        keepalive_timeout 150s;

        location /{
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Forwarded-Port $server_port;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://127.0.0.1:8089;
          proxy_http_version 1.1;
          proxy_read_timeout 900s;
          proxy_redirect      off;
          allow all;
       }
       gzip on;
       		access_log /var/log/nginx/ve-scielo-org/ve-scielo-org.log;
        	error_log /var/log/nginx/ve-scielo-org/ve-scielo-org-error.log warn;
}
server {
    listen 80;
    server_name ve.scielo.org;
    return 301 https://$server_name$request_uri;
}

Obs.: Esse vhost está considerando que o seu site tem certificado digital e ele é apenas ilustrativo, pois está considerando a instância da Venezuela. Não esqueça de ajustar para o seu site.