wake-up-neo.com

Virtual Host unter Ubuntu 13.10 und Apache 2.4.6

Ich habe folgendes Problem
Meine Hosts-Datei lautet wie folgt:

127.0.0.1       localhost
127.0.1.1       barbala4o-HP-ProBook-4530s
127.0.1.1       mysite.localhost

Meine Datei im /etc/Apache2/sites-available/mysite.localhost.conf Lautet wie folgt:

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName mysite.localhost

        DocumentRoot /var/www/mysite

        <Directory /var/www/mysite/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>
        ErrorLog /var/log/Apache2/mysite-error.log
        CustomLog /var/log/Apache2/mysite-access.log common
</VirtualHost>

Nach do Sudo a2ensite mysite.localhost.conf Und einem Neustart von Apache auf mysite.localhost/und nur auf localhost erhalte ich folgendes (wie das Auflisten eines Verzeichnisses ohne Indexdatei):

Index of /

[ICO]   Name    Last modified   Size    Description
[DIR]   Apache_logs/    2013-09-24 10:15     -   
[DIR]   mysql/  2013-10-22 10:05     -   
[DIR]   tools/  2013-10-22 10:05

Und in jedem anderen Ordner im Verzeichnis /var/www/ Wie test, wenn ich localhost/test Eingebe, anstatt die Datei index.php Zu laden:

Not Found

The requested URL /adlantic was not found on this server.

Apache/2.4.6 (Ubuntu) Server at localhost Port 80   

Wenn ich Sudo a2dissite mysite.conf Tue und Apache neu starte, wird alles in Ordnung geladen. Ich denke, das Problem liegt irgendwo im mysite.localhost.conf, Aber ich kann nicht finden, wo. Irgendwelche Ideen? 10x

39

Ubuntu 13.10 und Varianten sind auf Apache 2.4 umgezogen. Apache 2.4 möchte, dass aktivierte Konfigurationsdateien für virtuelle Hosts standardmäßig mit .conf enden.

Lösung

Um dieses Problem zu beheben, gibt es zwei Methoden, mit denen Sie das gleiche Ergebnis erzielen können.

  1. Die erste und einfachste Lösung besteht darin, allen virtuellen Hosts die Erweiterung .conf hinzuzufügen. Der neue Apache 2.4 liest jeden virtuellen Host im für Sites verfügbaren Verzeichnis mit der Erweiterung .conf, die in der neuen Apache 2.4-Konfigurationsdatei angegeben ist.

  2. Die zweite Lösung besteht darin, die Erweiterung .conf in der Apache 2.4-Konfigurationsdatei in /etc/Apache2/Apache2.conf zu entfernen

In der alten Apache 2.2-Datei hatte die .conf-Datei ein Include sites-enabled/während die neue .conf-Datei hat

# Include the virtual Host configurations:
IncludeOptional sites-enabled/*.conf

Ändern Sie diese Zeile zu lesen:

# Include the virtual Host configurations:
IncludeOptional sites-enabled/

Das Ergebnis: Der Befehl a2ensite yourdomain wird nun wie erwartet ausgeführt. Wenn Sie die 2. Methode verwenden; Ihre virtuellen Host-Dateien müssen nicht die Erweiterung .conf haben.

Note: Configuration file is "/etc/Apache2/Apache2.conf" in new Apache, so please copy document root path and other configurations from "/etc/Apache2/sites-available/000-default.conf" to  "/etc/Apache2/Apache2.conf"
56
Anjith K P

Ich fand das Problem nach 3 Stunden Experimentieren. Anscheinend muss die conf-Datei für den virtuellen Host im neuen Ubuntu 13.10 aus irgendeinem blöden Grund ungefähr so ​​aussehen:

<VirtualHost mysite.localhost>
        ServerAdmin [email protected]
        ServerName  mysite.localhost
        ServerAlias mysite.localhost

        # Indexes + Directory Root.
        DocumentRoot /var/www/mysite/public_html

         <Directory /var/www/mysite/public_html/>
                DirectoryIndex index.php
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

        # Logfiles
        ErrorLog /var/log/Apache2/mysite-error.log
        CustomLog /var/log/Apache2/mysite-access.log common
</VirtualHost>

Anscheinend haben die Entwickler von Ubuntu 13.10 entschieden, dass die Verwendung nicht mehr wertvoll ist

<VirtualHost *:80> 

wenn Sie einen virtuellen Host erstellen und stattdessen muss es sein

<VirtualHost mysite.localhost>

gemischt mit der spezifischen Angabe von DirectoryIndex. Dies behebt das Problem, das ich hatte und jetzt funktionieren die Dinge (hoffentlich wie sie sollten, irgendwann kann etwas dazwischen kommen). Anscheinend ist die Konfigurationsdatei von Apache anders.

13

Ich hatte das gleiche Problem, aber keines der oben genannten Postings hat für mich funktioniert. Später las und überprüfte ich alle Konfigurationsdateien von Apache und PHP.

Ich könnte herausfinden, dass es in Apache2.conf (in Ubuntu 13.10) ein Flag namens gibt

HostnameLookups off

Standardmäßig ist dies deaktiviert. Ich habe dies in geändert

HostnameLookups on

Auf diese Weise fing Apache an, meine Host-Einträge und die vhost-Konfiguration aufzuspüren.

Unten ist auch meine aktuelle Vhost-Datei. was ich verwendet, um es zum Laufen zu bringen

Natürlich empfehle ich auch das Hinzufügen von Require all granted mit in der Vhost-Direktive.

<VirtualHost *:80>
    ServerName test.yoursite.domain.in
    DocumentRoot path_to_code_base/public
    <Directory path_to_code_base/public>
        Options -Indexes
        Require all granted
        DirectoryIndex index.php
        AllowOverride All
    </Directory>
    ErrorLog  /path_to_code_base/logs/error.log
    LogLevel warn
    CustomLog /path_to_code_base/logs/access.log  combined
</VirtualHost> 

Ich poste dies, um anderen zu helfen, die dort keine Zeit mit dem Downgrade von Ubuntu auf 13.04 von 13.10 verschwenden möchten.

Ich sehe dazu keine Blogs, ich konnte auch nicht verstehen, was eigentlich die Bedeutung von hostnameLookups ist.

Hoffe das hilft .

Für Apache 2.4.6 In Ubuntu 13.10

Du wirst haben

/etc/Apache2/Apache2.conf
/etc/Apache2/sites-available/000-default.conf

Und

/etc/Apache2/sites-enabled/000-default.confzeigt auf/etc/Apache2/sites-available/000-default.conf

Bearbeiten Sie nun Apache2.conf Und fügen Sie hinzu

<Directory /home/my_site/public_html/>
    #YOUR SETTINGS
</Directory>

und bearbeiten Sie sites-available/000-default.conf und ändern Sie <VirtualHost *:80> in <VirtualHost localhost:80>, damit Apache localhost (auf Port 80) auf Ihre Standardeinstellungen überwacht.

Fügen Sie dies nun zu mysite.localhost Hinzu, damit sites-available/000-default.conf Funktioniert.

<VirtualHost mysite.localhost:80>
    ServerName mysite.localhost

    ServerAdmin [email protected]

    DocumentRoot /home/my_new_site_public_html

    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

Bearbeiten Sie nun Ihre /etc/hosts/ - Datei und ändern Sie das IP von mysite.localhost Von 127.0.1.1 In 127.0.0.1.

Besuchen Sie jetzt http://mysite.localhost & http://localhost

:)

2
Harsh Vakharia
<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName mysite.localhost

        DocumentRoot /var/www/mysite

        <Directory /var/www/mysite/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>
        ErrorLog /var/log/Apache2/mysite-error.log
        CustomLog /var/log/Apache2/mysite-access.log common
</VirtualHost>

In meinem Fall habe ich gerade <VirtualHost *:80> bis <VirtualHost mysite.localhost:80> nach vielen Versuchen und Irrtümern

Ich hoffe das hilft.

Grüße,

1
Junaid Qadir

Nur ein Hinweis für Leute, die sich zu diesem Thema die Haare aus dem Kopf ziehen. Wenn Sie eine AWS-Instanz verwenden, müssen Sie Sudo verwenden, damit all diese Einstellungen wirksam werden.

Sudo a2ensite example.com

Denken Sie daran, dass Sie dies tun müssen, um Apache neu zu starten. Wenn Sie nicht sehen, dass Ihre Änderungen vorgenommen werden, ist dies wahrscheinlich der Schuldige.

Sudo service Apache2 restart
0
steve

Ausführen:
vim kann mit Ihrem bevorzugten Texteditor wie Nano, Pico usw. geändert werden.

vim /etc/Apache2/Apache2.conf

Originaldatei:

# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual Host.
<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share/>
        AllowOverride None
        Require all granted
</Directory>

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

Ändern Sie None in All

Datei bearbeiten:

# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual Host.
<Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all denied
</Directory>

<Directory /usr/share/>
        AllowOverride All
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
0
user3419164

Für Kubuntu 14.04 & Apache 2.4.7

Nachdem ich die obigen Vorschläge ausprobiert hatte und immer noch auf Berechtigungsprobleme gestoßen war, funktionierte ein "chmod 755 $ HOME" für mich. Darf nicht auf Mehrbenutzersystemen verwendet werden.

0
Mak