Clipper On Line • Ver Tópico - PHP: Dica de configuração de pastas virtuais offline

PHP: Dica de configuração de pastas virtuais offline

Discussão sobre outras linguagens de programação.

Moderador: Moderadores

 

PHP: Dica de configuração de pastas virtuais offline

Mensagempor rochinha » 08 Out 2021 18:06

Amiguinhos,

Para quem desenvolve para web mas acha um saco ter de fazer FTP do aplicativo sendo desenvolvido para testar online a cada alteração segue algumas dicas para desenvolvimento offline.

Neste caso esta dica é para uso com Apache e PHP em ambiente Windows.

Mas antes de continuar o intuito é evitar configurações no .htaccess para uso local e depois para uso online. Pois desta forma seus subsites sempre serão acionados como se fossem o único no servidor através do nome virtual.

Se você tem instalado o XAMPPS ou WAMPPS ou até mesmo o AMPPS que é o que eu uso, provavelmente você tem nas pastas WWW, PUBLIC ou HTDOCS lotadas de pastas para cada site ou scripts e muitas vezes precisa alterar hTACCESS para ser acionado por subdiretórios de seu servidor local, exemplo:
http://localhost/site1
http://localhost/site2/public
http://localhost/site3/web

Você até gostaria de melhorar estes acessos, portanto que tal chama-los assim:
http://site1.local
http://site2.local
http://site3.local

Muito mais profissional e simples. Lógico que site1, site2 ou site3 fica pouco explicito mas você poderá usar o nome que quiser:
http://vendashop.local
http://armazem.local
http://hotel.local

Bacana, mas vamos as alterações para que isto possa acontecer.

O Primeiro Passo será necessário alterar um arquivo do Windows, o hosts. Abra o arquivo c:\windows\system32\drivers\etc\hosts. Acrescente os nomes de sites na lista:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

127.0.0.1 http://site1.local
127.0.0.1 http://site2.local
127.0.0.1 http://site3.local


Veja que 127.0.0.1 é o IP de acesso local, ou seja este é o endereço da própria máquina em que se está usando o servidor e ele não é visivel numa rede pois cada máquina sobe o seu próprio 127.0.0.1.

Após a alteração salve o arquivo e reinicie o Apache. Ao digitar os endereço acima eles acessarão os sites no seu servidor de forma mais homogênea.

O Segundo Passo é alterar o arquivo httpd-vhosts.conf. Abra o arquivo c:\???\apache\conf\extra\httpd-vhosts.conf e para cada site inclua o trecho abaixo modificando somente o SITEROOT

define SITEROOT "site1"
define PUBLICROOT "/"
<VirtualHost 127.0.0.1:80>
    ServerName ${SITEROOT}.local
    ServerAlias www.${SITEROOT}.local
    ServerAdmin admin@${SITEROOT}.local
    Alias /doc "C:/AMPPS/www/${SITEROOT}/documentacao"
    DocumentRoot "C:/AMPPS/www/${SITEROOT}/site${PUBLICROOT}"
    <Directory "C:/AMPPS/www/${SITEROOT}/site${PUBLICROOT}">
         Require all granted
         Options Indexes FollowSymLinks MultiViews
         AllowOverride All
         Order allow,deny
         allow from all
    </Directory>
    ErrorLog  "${APACHE_LOG_DIR}/${SITEROOT}.err"
    CustomLog "${APACHE_LOG_DIR}/${SITEROOT}.log" combined
    </VirtualHost>

    <VirtualHost 127.0.0.1:443>
    ServerName ${SITEROOT}.local
    Alias /doc "C:/AMPPS/www/${SITEROOT}/documentacao"
    DocumentRoot "C:/AMPPS/www/${SITEROOT}/site${PUBLICROOT}"
    <Directory "C:/AMPPS/www/${SITEROOT}/site${PUBLICROOT}">
         Require all granted
         Options Indexes FollowSymLinks MultiViews
         AllowOverride All
         Order allow,deny
         allow from all
    </Directory>
    ErrorLog  "${APACHE_LOG_DIR}/${SITEROOT}.err"
    CustomLog "${APACHE_LOG_DIR}/${SITEROOT}.log" combined
    SSLEngine on
    #SSLCertificateFile    "C:/AMPPS/apache/conf/ssl_crt/server.crt"
    #SSLCertificateKeyFile "C:/AMPPS/apache/conf/ssl_crt/server.key"
    SSLCertificateFile    "${APACHE_SSL_DIR}/localhost.crt"
    SSLCertificateKeyFile "${APACHE_SSL_DIR}/localhost.key"
</VirtualHost>


Veja que define SITEROOT "site1" entende que tenho uma pasta na pasta root de execução com o nome site1, mas você pode colocar qualquer nome, exemplo: define SITEROOT "vendashop", define SITEROOT "armazem" ou define SITEROOT "hotel"

No meu caso, como estou usando AMPPS e ele usa a pasta root WWW todos os meus sites estão dentro dela e possuem uma hierarquia com duas pastas onde site contém o script e documentação contém os arquivos de instruções.

Exemplo:

Ao configurar a pasta c:/AMPPS/WWW/site1 para ser chamada via http://site1.local defino:
define SITEROOT "site1"
define PUBLICROOT "/"

Ao configurar a pasta c:/AMPPS/WWW/site2/public para ser chamada via http://site2.local defino:
define SITEROOT "site2"
define PUBLICROOT "/public/"

Ao configurar a pasta c:/AMPPS/WWW//site3/web para ser chamada via http://site3.local defino:
define SITEROOT "site3"
define PUBLICROOT "/web/"

Para cada site que quero configurar basta modificar as duas variaveis, SITEROOT e PUBLICROOT e copiar/colar o grupo <VirtualHost>...</VirtualHost>

Estas variáveis podem ser colocadas no inicio do arquivo c:\???\apache\conf\extra\httpd-vhosts.conf e devem apontar para as pastas correspondentes no seu servidor. No caso do AMPPS fica assim:
define APACHE_LOG_DIR "C:/AMPPS/apache/logs"
define APACHE_SSL_DIR "C:/AMPPS/apache/bin/ssl"


O legal desta configuração é que tanto HTTP quanto HTTPS ficam configurados sendo possivel acessar http://site1.local ou https://site1.local.

Supondo que tenha um novo script e quero acrescentá-lo ao meu hall de aplicações, chamarei de rochinha, então devo proceder da seguinte forma:

Criarei dentro da pasta WWW, PUBLIC ou HTDOCS a pasta rochinha e dentro dela a pasta site onde colocarei toda a raiz do script.
...
c:\ampps\www\rochinha
          |
          +------------site
          |
          +------------documentacao
...

Então devo configurar as variáveis principais assim:
define SITEROOT "rochinha"
define PUBLICROOT "/"

E colar o grupo <VirtualHost>...</VirtualHost>.

Feito isto, devo reiniciar o Apache e acessar o script via http://rochinha.local ou https://rochinha.local

Hoje rodo meus scripts usando Apache 2.4.41(Win32), OpenSSL/1.0.2s e PHP 7.4.24.

Bom trabalho.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes



Retornar para Outras linguagens de programação

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro