Zuordnung von URL zu Dateisystem in Apache

Zuordnung von URL zu Dateisystem in Apache

Ich habe ein Blog unter mysite.tld/blog. Derzeit mysite.tlderfolgt die Weiterleitung zu mysite.tld/blogüber eine index.phpim Stammverzeichnis. Als ich das vor zwei Jahren eingerichtet habe, konnte ich die .httaccessDatei, die sich ebenfalls im Stammverzeichnis befindet, anscheinend nicht zum Laufen bringen. Im Dateisystem befindet sich mein Blog unter /var/www/blog.

Jetzt erstelle ich eine einfache Website, die unter angezeigt werden soll mysite.tld. Sie funktioniert über ein PHP-Mikroframework, das Seiten über eine index.phpDatei bereitstellt. Ich habe diese Site in einem Git-Repo, und in diesem Repo index.phpbefindet sich die unter www/index.php. Ich möchte einfach einen Klon des Repos auf meinem Server haben, damit ich einfach auf eine neue Version aktualisieren kann. Angenommen, ich klone es wie sitein /var/www, dann endet der Einstiegspunkt bei /var/www/site/www/index.php.

Ich habe die letzten 3 Stunden damit verbracht, dieses unglaublich einfache Ding zum Laufen zu bringen, aber ohne Erfolg. Ich möchte lediglich die URL und den Rest der URL zuordnen /blog. /var/www/blogWelche /magische /var/www/site/indexKonfiguration brauche ich dafür?

Hier ist die Ausgabe von lsb_release -a:

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

Hier ist die Ausgabe von 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"

Hier ist die Ausgabe von 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)

Antwort1

/blogIch möchte lediglich die URL /var/www/blogund den Rest der URL /zuordnen . /var/www/site/indexWelche magische Konfiguration benötige ich dafür?

Dies können Sie ganz einfach mitApache- AliasDirektiveso. Beachten Sie, dass Sie Apache 2.4.7 verwenden, das möglicherweise eine etwas andere Syntax hat als Apache 2.2 und früher, auf denen dieser Ratschlag basiert. Allerdings ist die Syntax zwar möglicherweise etwas anders, aber die Gesamtkonzepte sind immer noch dieselben und ich bin ziemlich zuversichtlich, dass Apache 2.4 immer noch funktioniert Alias.

Diese Elemente werden in der Apache-Konfigurationsdatei Ihrer Hauptsite festgelegt, die sich in befindet /etc/apache2/sites-available/. Sie befinden sich möglicherweise in einer Datei mit dem Namen /etc/apache2/sites-available/defaultoder in einer separaten Datei für den Hostnamen wie . /etc/apache2/sites-available/mysite.tldÜberprüfen Sie daher unbedingt Ihre Konfiguration, bevor Sie die Dateien radikal ändern.

Dadurch werden alle Anfragen so eingestellt, dass http://mysite.tld/blogInhalte von folgender Adresse abgerufen werden /var/www/blog:

Alias /blog /var/www/blog

Dadurch werden alle Anfragen so eingestellt, dass http://mysite.tld/Inhalte von folgender Adresse abgerufen werden /var/www/site/index:

Alias / /var/www/site/index

Nun, das heißt, Sie benötigen möglicherweise nur das Alias /blog /var/www/blog; das zweite Alias / /var/www/site/indexwird möglicherweise nicht benötigt, solange Ihr DocumentRootauf eingestellt ist /var/www/site/index.

Eine gute, einfache und prägnante Übersicht über die Funktionsweise von Apache-Konfigurations-Setupsfinden Sie auf dieser Seite.

verwandte Informationen