URL para mapeamento do sistema de arquivos no Apache

URL para mapeamento do sistema de arquivos no Apache

Eu tenho um blog que está em mysite.tld/blog. Atualmente mysite.tldredireciona para mysite.tld/blogvia an index.phpna raiz. Aparentemente, quando configurei isso há dois anos, não consegui fazer o .httaccessarquivo que também está na raiz funcionar. No sistema de arquivos, meu blog está em /var/www/blog.

Agora eu crio um site simples que gostaria que aparecesse mysite.tld. Funciona por meio de um microframework PHP que atende páginas por meio de um index.phparquivo. Eu tenho este site em um repositório git e neste repositório está index.phplocalizado em www/index.php. Eu gostaria de ter apenas um clone do repositório em meu servidor para poder atualizar para uma nova versão. Então, supondo que eu o clone como siteem /var/www, o ponto de entrada termina em /var/www/site/www/index.php.

Passei as últimas 3 horas tentando fazer essa coisa incrivelmente simples funcionar, sem sucesso. Tudo o que quero fazer é mapear o URL /bloge /var/www/blogo restante do URL /para /var/www/site/index. Qual é a configuração mágica que preciso para isso?

Aqui está a saída de lsb_release -a:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.2 LTS
Release:        14.04
Codename:       trusty

Aqui está a saída de apache2ctl -V:

Server version: Apache/2.4.7 (Ubuntu)
Server built:   Jul 22 2014 14:36:38
Server's Module Magic Number: 20120211:27
Server loaded:  APR 1.5.1-dev, APR-UTIL 1.5.3
Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

Aqui está a saída de apache2ctl -M:

Loaded Modules:
 core_module (static)
 so_module (static)
 watchdog_module (static)
 http_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 unixd_module (static)
 access_compat_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authz_core_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 filter_module (shared)
 mime_module (shared)
 mpm_prefork_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 status_module (shared)

Responder1

Tudo o que quero fazer é mapear o URL /bloge /var/www/blogo restante do URL /para /var/www/site/index. Qual é a configuração mágica que preciso para isso?

Você pode fazer isso facilmente comAliasDiretiva do Apacheassim. Observe que vejo que você está usando o Apache 2.4.7, que pode ter uma sintaxe ligeiramente diferente do Apache 2.2 e anteriores, na qual este conselho se baseia. Mas dito isso, embora a sintaxe possa ser um pouco diferente, os conceitos gerais ainda são os mesmos e estou bastante confiante de que o Apache 2.4 ainda tem Aliasfuncionalidade.

Esses itens seriam definidos no arquivo de configuração Apache do seu site principal, que estaria no formato /etc/apache2/sites-available/. Agora eles podem estar em um arquivo nomeado /etc/apache2/sites-available/defaultou em um arquivo separado para o nome do host, /etc/apache2/sites-available/mysite.tldportanto, certifique-se de verificar sua configuração antes de modificar radicalmente os arquivos.

Isso definiria todas as solicitações para http://mysite.tld/blogobter conteúdo de /var/www/blog:

Alias /blog /var/www/blog

Isso definiria todas as solicitações para http://mysite.tld/obter conteúdo de /var/www/site/index:

Alias / /var/www/site/index

Dito isso, talvez você só precise do Alias /blog /var/www/blog; esse segundo Alias / /var/www/site/indexpode não ser necessário, desde que esteja DocumentRootdefinido como /var/www/site/index.

Uma visão geral boa, simples e concisa de como funcionam as configurações do Apachepode ser encontrado neste site.

informação relacionada