Criando um Virtual Host para o OJS

Bom dia.

Subi o OJS utilizando o xampp e por padrão ele fica dentro do htdocs.

Funcionou normalmente porém queria adicionar um Virtual Host para a rede interna e pesquisando mais a fundo, achei uma documentação que fala sobre acessar esse local C:/xampp/apache/conf/extra/httpd-vhosts.conf e adicionar na porta 80 o endereço que desejo e caminho do documento que ta instalado porém surgiu um pequeno problema.

<VirtualHost *:80>
ServerName www.nugecid.com.br
ServerAlias nugecid.com.br
DocumentRoot “C:\xampp\htdocs”
<Directory “C:\xampp\htdocs”>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted

Quando coloco esse caminho no document root e digito pra acessar o www.nugecid.com.br ele me leva como se eu estivesse acessando localhost/dashboard/ e o caminho do ojs é localhost/ojs-system. Já fiz o teste de colocar no documentRoot o C:\xampp\htdocs\ojs-system porém ele da 400 Bad Request e meu localhost vira o ojs.

Alguém que já fez isso, sabe como resolver ?

1 curtida

Bom dia @Matheus_Mozart

Para configurar corretamente um Virtual Host no XAMPP e direcionar o endereço www.nugecid.com.br para o OJS, sem que o caminho do dashboard ou do localhost seja afetado, siga os passos abaixo:

1. Configuração do Virtual Host

Você já está no caminho certo, mas precisa ajustar alguns detalhes no arquivo httpd-vhosts.conf para evitar o erro 400 Bad Request e garantir que o OJS seja acessado diretamente via www.nugecid.com.br.

Edite o arquivo httpd-vhosts.conf (geralmente localizado em C:/xampp/apache/conf/extra/httpd-vhosts.conf) e adicione o seguinte bloco:

<VirtualHost *:80>
    ServerName www.nugecid.com.br
    ServerAlias nugecid.com.br
    DocumentRoot "C:/xampp/htdocs/ojs-system"
    <Directory "C:/xampp/htdocs/ojs-system">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

2. Configuração do hosts

Você precisa também adicionar o endereço www.nugecid.com.br ao arquivo hosts do seu Windows para que ele reconheça esse domínio internamente.

  1. Abra o arquivo C:/Windows/System32/drivers/etc/hosts com um editor de texto como administrador.
  2. Adicione a seguinte linha ao final do arquivo:
    127.0.0.1   www.nugecid.com.br

Isso direciona as solicitações feitas para www.nugecid.com.br ao seu servidor local.

3. Reiniciar o Apache

Após fazer essas mudanças, reinicie o Apache através do painel de controle do XAMPP ou com os seguintes comandos no terminal (caso esteja utilizando o terminal):

sudo /opt/lampp/lampp stop
sudo /opt/lampp/lampp start

Ou, no painel do XAMPP, basta clicar em Stop e depois Start no Apache.

4. Acessando o OJS

Agora, ao acessar www.nugecid.com.br no seu navegador, ele deverá abrir diretamente o sistema OJS sem passar pelo dashboard do XAMPP.

Explicação:

  • ServerName e ServerAlias: Estes direcionam o domínio www.nugecid.com.br e nugecid.com.br para o seu servidor local.
  • DocumentRoot: Aponta diretamente para a pasta onde o OJS está instalado (C:/xampp/htdocs/ojs-system).
  • AllowOverride All: Permite que o .htaccess dentro do diretório do OJS funcione corretamente (caso haja algum arquivo .htaccess).
  • Require all granted: Garante que todas as solicitações tenham permissão para acessar esse diretório.

Erro 400 Bad Request

Esse erro provavelmente ocorre porque o ServerName ou ServerAlias não está configurado corretamente. Certifique-se de que o nome do domínio que você está acessando (ex.: www.nugecid.com.br) esteja no arquivo hosts e coincida com o que está configurado no httpd-vhosts.conf.

Seguindo esses passos, você deve conseguir acessar o OJS através do domínio configurado no Virtual Host sem problemas.

1 curtida

Boa tarde Lucas,

Muito obrigado pelo feedback, realizei o passo a passo porém continuo na mesma.

127.0.0.1 me da bad request
localhost/ojs-system me trás not found
localhost/dashboard me trás not found
localhost me trás o OJS funcionando
www.nugecid.com.br 400 bad request

Consegue imaginar o que pode estar de errado ?

1 curtida

Certo… agora vc tem combinar com a url dentro da diretiva base_url dentro do arquivo config.inc.php

Provavelmente tá localhost por isso é o único que funcionou.

1 curtida

Lucas, fiz essa alteração e continua o mesmo problema. www.nugecid.com.br me retorna 400 bad request.

É estranho pois a principio deveria me retornar o OJS funcionado no localhost/ojs-system porém ele me da not found e localhost me retorna o OJS.

Já troquei de navegador para evitar cache e desliguei e liguei o xampp inúmeras vezes.

Você vai ter q compartilhar seus arquivos aqui pra gente dá uma olhada. Compartilha como ta o seus vhosts, seu arquivo hosts.

Segue o drive com o arquivo hosts e o config.inc

https://drive.google.com/drive/folders/16ENF1N1ZFzp-y1-N3KQn84h8QPvKh_VY?usp=sharing

Tudo certo… E como tá seu httpd-vhosts.conf???

Tem dois no OJS, sabe informar qual ? Os dois são .conf

caminhos C:\xamp\apache\conf\extra e C:\xamp\apache\conf\original\extra

Eu quero ver o q vc hospeda ai. Quais sites? Por isso eu to perguntando sobre o seus Vhost

Nunca fiz esse procedimento de hospedagem, é a primeira vez então provavelmente todos os arquivos estão padrão. Meu httpd-vhosts.conf está assim

Virtual Hosts

Required modules: mod_log_config

If you want to maintain multiple domains/hostnames on your
machine you can setup VirtualHost containers for them. Most configurations
use only name-based virtual hosts so the server doesn’t need to worry about
IP addresses. This is indicated by the asterisks in the directives below.

Please see the documentation at
URL:http://httpd.apache.org/docs/2.4/vhosts/
for further details before you try to setup virtual hosts.

You may use the command line option ‘-S’ to verify your virtual host
configuration.

VirtualHost example:
Almost any Apache directive may go into a VirtualHost container.
The first VirtualHost section is used for all requests that do not
match a ServerName or ServerAlias in any block.

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot “${SRVROOT}/docs/dummy-host.example.com”
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog “logs/dummy-host.example.com-error.log”
CustomLog “logs/dummy-host.example.com-access.log” common

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot “${SRVROOT}/docs/dummy-host2.example.com”
ServerName dummy-host2.example.com
ErrorLog “logs/dummy-host2.example.com-error.log”
CustomLog “logs/dummy-host2.example.com-access.log” common

1 curtida