Tengo un blog que está en mysite.tld/blog
. Actualmente mysite.tld
redirige a mysite.tld/blog
través de un index.php
en la raíz. Aparentemente, cuando configuré esto hace dos años, no pude hacer .httaccess
funcionar el archivo que también está en la raíz. En cuanto al sistema de archivos, mi blog está en /var/www/blog
.
Ahora creo un sitio web sencillo en el que me gustaría que apareciera mysite.tld
. Funciona a través de un microframework PHP que sirve páginas a través de un index.php
archivo. Tengo este sitio en un repositorio de git, y en este repositorio está index.php
ubicado en www/index.php
. Me gustaría tener un clon del repositorio en mi servidor para poder actualizarlo a una nueva versión. Entonces, suponiendo que lo clono como site
en /var/www
, el punto de entrada termina en /var/www/site/www/index.php
.
He pasado las últimas 3 horas intentando que esta cosa increíblemente simple funcione, sin éxito. Todo lo que quiero hacer es asignar la URL /blog
y /var/www/blog
el resto de la URL /
a /var/www/site/index
. ¿Cuál es la configuración mágica que necesito para esto?
Aquí está el resultado de lsb_release -a
:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
Aquí está el resultado 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"
Aquí está el resultado 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)
Respuesta1
Todo lo que quiero hacer es asignar la URL
/blog
y/var/www/blog
el resto de la URL/
a/var/www/site/index
. ¿Cuál es la configuración mágica que necesito para esto?
Puedes hacer esto fácilmente conAlias
directiva de apachecomo esto. Tenga en cuenta que veo que está utilizando Apache 2.4.7, que podría tener una sintaxis ligeramente diferente a la de Apache 2.2 y versiones anteriores en las que se basa este consejo. Pero dicho esto, si bien la sintaxis puede ser ligeramente diferente, los conceptos generales siguen siendo los mismos y estoy bastante seguro de que Apache 2.4 todavía tiene Alias
funcionalidad.
Estos elementos se configurarían en el archivo de configuración de Apache de su sitio principal, que estaría en formato /etc/apache2/sites-available/
. Ahora pueden estar en un archivo con nombre /etc/apache2/sites-available/default
o en un archivo separado para el nombre de host, /etc/apache2/sites-available/mysite.tld
así que asegúrese de verificar su configuración antes de modificar radicalmente los archivos.
Esto configuraría todas las solicitudes para http://mysite.tld/blog
obtener contenido de /var/www/blog
:
Alias /blog /var/www/blog
Esto configuraría todas las solicitudes para http://mysite.tld/
obtener contenido de /var/www/site/index
:
Alias / /var/www/site/index
Dicho esto, es posible que solo necesites el Alias /blog /var/www/blog
; Es posible que ese segundo Alias / /var/www/site/index
no sea necesario siempre que DocumentRoot
esté configurado en /var/www/site/index
.
Una descripción general buena, simple y concisa de cómo funcionan las configuraciones de Apachese puede encontrar en este sitio.