Apache의 파일 시스템 매핑 URL


1

나는에 블로그가있다. mysite.tld/blog. 현재 mysite.tld 리디렉션 대상 : mysite.tld/blog ~을 통해 index.php 뿌리에. 분명히 내가 이것을 2 년 전에 다시 세웠을 때 나는 .httaccess 파일 또한 작동 루트에 있습니다. 파일 시스템에서 내 블로그는에있다. /var/www/blog.

이제는 내가 보여주고 싶은 간단한 웹 사이트를 만듭니다. mysite.tld. 그것은 PHP 마이크로 프레임 워크를 통해 작동합니다. index.php 파일. 나는이 사이트를 git repo에두고이 repo에서 index.php 에있다. www/index.php. 내 서버에 repo 클론을 갖고 싶습니다. 그래서 새로운 버전으로 업데이트 할 수 있습니다. 그래서 나는 그것을 복제한다고 가정한다. site ...에서 /var/www, 진입 점은에서 끝납니다 /var/www/site/www/index.php.

나는 믿을 수 없을만큼 간단하게 작동하도록 시도한 지난 3 시간을 보내고, 아무 소용이 없습니다. 지도 URL 만 있으면됩니다. /blog/var/www/blog 나머지 URL //var/www/site/index. 내가 필요로하는 마법적인 구성은 무엇입니까?

여기의 출력은 다음과 같습니다. lsb_release -a:

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

여기의 출력은 다음과 같습니다. 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"

여기의 출력은 다음과 같습니다. 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)

답변:


3

지도 URL 만 있으면됩니다. /blog/var/www/blog 그리고   URL의 나머지 //var/www/site/index. 마법이란 무엇인가?   구성이 필요합니까?

다음과 같이 쉽게 할 수 있습니다. 아파치 Alias 지령 이런 식으로. 아파치 2.4.7을 사용하고있는 것을 볼 수 있습니다.이 아파치는 아파치 2.2와 약간 다른 문법을 가지고 있습니다. 그러나 구문은 약간 다를 수 있지만 전반적인 개념은 여전히 ​​동일하며 Apache 2.4는 여전히 자신 있음을 확신합니다. Alias 기능.

이러한 항목은 기본 사이트의 Apache 구성 파일에 설정되며 /etc/apache2/sites-available/. 이제 그들은 파일에있을 수 있습니다. /etc/apache2/sites-available/default 또는 호스트 이름과 같은 별도의 파일에 있습니다. /etc/apache2/sites-available/mysite.tld 따라서 파일을 근본적으로 수정하기 전에 설정을 확인하십시오.

이렇게하면 모든 요청이 http://mysite.tld/blog 에서 콘텐츠를 얻으려면 /var/www/blog:

Alias /blog /var/www/blog

이렇게하면 모든 요청이 http://mysite.tld/ 에서 콘텐츠를 얻으려면 /var/www/site/index:

Alias / /var/www/site/index

이제는 말했듯이 Alias /blog /var/www/blog; 그 두 번째 Alias / /var/www/site/index 너만큼 오래 필요 없을거야. DocumentRoot 에 설정 됨 /var/www/site/index.

Apache 구성 설정의 작동 방식에 대한 간단하고 간결한 개요 이 사이트에서 찾을 수 있습니다. .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.