Ich habe ein Blog unter mysite.tld/blog
. Derzeit mysite.tld
erfolgt die Weiterleitung zu mysite.tld/blog
über eine index.php
im Stammverzeichnis. Als ich das vor zwei Jahren eingerichtet habe, konnte ich die .httaccess
Datei, 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.php
Datei bereitstellt. Ich habe diese Site in einem Git-Repo, und in diesem Repo index.php
befindet 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 site
in /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/blog
Welche /
magische /var/www/site/index
Konfiguration 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
/blog
Ich möchte lediglich die URL/var/www/blog
und den Rest der URL/
zuordnen ./var/www/site/index
Welche magische Konfiguration benötige ich dafür?
Dies können Sie ganz einfach mitApache- Alias
Direktiveso. 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/default
oder 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/blog
Inhalte 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/index
wird möglicherweise nicht benötigt, solange Ihr DocumentRoot
auf eingestellt ist /var/www/site/index
.
Eine gute, einfache und prägnante Übersicht über die Funktionsweise von Apache-Konfigurations-Setupsfinden Sie auf dieser Seite.