apache Configuração do Host Virtual CentOS7

1

Minha máquina host é o Windows 7 e a máquina convidada é o CentOS 7. Sou novo no Apache e estou tentando criar o VirtualHost no CentOS7. Eu li muita documentação e muitas respostas sobre StackCommunity (apache links simbólicos ) host virtual CentOS7 e em. Aqui está o que eu fiz. Minha configuração de arquivo /etc/httpd/conf/httpd.conf sem adicionar alterações a ela:

ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf

User apache
Group apache

ServerAdmin root@localhost

ServerName localhost
<Directory />
AllowOverride none
Require all denied
</Directory>

DocumentRoot "/var/www/html"

<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

<Files ".ht*">
Require all denied
</Files>

ErrorLog "logs/error_log"

LogLevel warn

<IfModule log_config_module>
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""     combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

</IfModule>CustomLog "logs/access_log" combined
</IfModule>

<IfModule alias_module>
 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>

<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>

<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>

AddDefaultCharset UTF-8

<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>

EnableSendfile on
IncludeOptional conf.d/*.conf

Adicionei index.html a /var/www/html com esse conteúdo:

<html>
<title> The library </title>
<body>
<h2> Welcome to our library </h2>
<br /> <hr> <br />
<img width = "600" height = "400" src = "images/library.jpg">
<body/>
</html>

Em seguida, criei o link de símbolo para /var/www/html/index.html in /var/www/my_host/my_host.html

ln -s /var/www/html/index.html /var/www/html/my_host.html

Próxima etapa: criei my_host.conf em /etc/httpd/conf.d/ e permiti Symlink :

vim /etc/httpd/conf.d/my_host.conf

<VirtualHost *:80>
ServerName www.my_host.com
ServerAlias *.my_host.com
DocumentRoot /var/www/my_host
<Directory "/var/www/my_host">
Options FollowSymLinks Indexes
AllowOverride All
</Directory>
ErrorLog /var/www/my_host/error_log
LogFormat "%a %v %p %U %m %T" common_new_format
CustomLog /var/www/my_host/custom_log common_new_format
</VirtualHost>

Em seguida, verifiquei o apache com este comando: apachectl configtest e obteve output = > %código%. Depois de todos esses passos eu iniciei o httpd:

systemctl start httpd

Tudo começou perfeitamente.

Mas houve um problema que recebi no error_log do meu host virtual:

Syntax OK

Entendo que posso adicionar AH01276: Cannot serve directory /var/www/my_host/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive ao meu arquivo DirectoryIndex my_host.html , mas por que meu symlink my_host.conf não funcionou como eu esperava que fosse? Eu pensei que seria o suficiente para permitir my_host.html -> ../html/index.html no meu diretório FollowSymLinks e eu não precisei apontar outro /var/www/my_host/ ? Minha pergunta é: Por que DirectoryIndex não é suficiente para apontar FollowSymLinks se eu já adicionei o link simbólico para index.html?

    
por fuser 30.01.2016 / 12:25

1 resposta

0

Acho que você está lendo demais no symlink. httpd não irá procurar se você tiver arquivos que são links simbólicos para arquivos que são chamados index.html em ambos os casos. Ele procura por um arquivo chamado index.html em seu DocumentRoot.

O FollowSymLinks é necessário quando esse arquivo existe e é um link simbólico. (Imagine se, por acidente ou maldade, um link simbólico para dizer, /etc/passwd ou sua chave SSH privada acabou no seu DocumentRoot!)

    
por 30.01.2016 / 14:13