Verpatzte Apache-Konfiguration unter macOS Sierra - Virtuelle Hosts funktionieren nicht

0

Ich installiere den gesamten LAMP-Stack über Homebrew (Apache, PHP, MySQL, Dnsmasq).

Hier ist eine kurze Zusammenfassung der Konfiguration:

ServerName localhost

Listen 80

DocumentRoot "/Users/your_user/Sites"
<Directory "/Users/your_user/Sites">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Mit nur diesen funktioniert alles gut.

Wenn ich im nächsten Teil versuche, einen virtuellen Host mithilfe einer Konfiguration hinzuzufügen, von der ich weiß, dass sie in der Vergangenheit funktioniert hat, treten Fehler auf.

LoadModule vhost_alias_module libexec/mod_vhost_alias.so

<VirtualHost *:80>
    DocumentRoot /Users/elzi/Sites
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
  ServerName dev
  ServerAlias *.dev
  VirtualDocumentRoot /Users/elzi/Sites/%-2+
</VirtualHost>

An dieser Stelle mache ich mir noch nicht einmal Sorgen um PHP / MySQL / DNSMASQ. ich brauche einfach ein von meinen virtualhost configs funktioniert erstmal. Mit der unteren Regel sollte ich auf jede Site in meinem Browser zugreifen können ~/Sites Ordner, vorausgesetzt ich mache einen Eintrag für sie in meiner Hosts-Datei.

Ich kann auf die Seite unter zugreifen http://localhost und sehen Sie einen Index von, was auch immer ich das einstellte DocumentRoot (oder VirtualDocument ) root zu sein, aber ich kann nicht auf Wildcard zugreifen ServerAlias. Zum Beispiel,

http://test.dev löst in Apache nicht auf, trotz:

  • Es existiert in meiner Host-Datei.
  • In der Lage zu sein, es zu pingen.

Ich beginne zu glauben, dass das Problem nicht ausschließlich mit Apache zusammenhängt. Möglicherweise DNS / IPv6-Probleme?

Hier ist ein Dump von netstat -amp tcp | grep 80

tcp4       0      0  192.168.0.108.49632    151.101.193.69.80      ESTABLISHED
tcp4       0      0  192.168.0.108.49608    151.101.193.69.80      ESTABLISHED
tcp6       0      0  ::1.49567              ::1.80                 CLOSE_WAIT 
tcp4       0      0  192.168.0.108.49566    192.168.0.101.8060     CLOSE_WAIT
tcp46      0      0  *.80                   *.*                    LISTEN
tcp4       0      0  127.0.0.1.18800        *.*                    LISTEN

Ausgabe von sudoapachectl -v

Server version: Apache/2.4.23 (Unix)
Server built:   Dec 22 2016 18:07:11

Ausgabe von cat /etc/resolv.conf

nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4

Ausgabe von brew services list

Name    Status  User Plist
httpd24 started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.httpd24.plist
jack    started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.jack.plist
mongodb started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
mysql   started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.mysql.plist
php70   started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.php70.plist

Ausgabe von sudo apachectl -S

VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server localhost (/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf:3)
         port 80 namevhost localhost (/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf:3)
         port 80 namevhost dev (/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf:8)
                 wild alias *.dev
ServerRoot: "/usr/local/opt/httpd24"
Main DocumentRoot: "/Users/elzi/Sites"
Main ErrorLog: "/usr/local/var/log/apache2/error_log"
Mutex rewrite-map: using_defaults
Mutex default: dir="/usr/local/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
PidFile: "/usr/local/var/run/apache2/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="elzi" id=501
Group: name="staff" id=20
elzi
quelle
Bearbeiten Sie Ihre Frage so, dass Sie genau wissen, was Sie unter "funktioniert nicht" und "Ich habe Fehler" verstehen. Was haben Sie versucht, welche Ergebnisse haben Sie erwartet und welche Ergebnisse haben Sie erzielt?
Spiff
Wenn ich also Ihre Konfigurationsdatei richtig interpretiere, möchten Sie Verbindungen zu unbekannten Hostnamen sowie "localhost" und "dev" verwenden /Users/elzi/Sites, aber Sie möchten Verbindungen zu example.dev benutzen /Users/elzi/sites/example/ aber Verbindungen zu www.example.dev sollte nutzen /Users/elzi/Sites/www.example. Ist das richtig? Können Sie ein Beispiel geben, was Sie versucht haben und was passiert ist?
Spiff
@Spiff aus Gründen der Übersichtlichkeit bearbeitet. Das tut mir leid. Das ist genau richtig, außer ich mache mir keine Sorgen www.example.dev Entschlossenheit, einfach example.dev Dies war eine Konfiguration, die gut mit Apache 2.2 funktionierte. Es ist geradezu magisch, wenn es funktioniert. Ich erstelle einfach einen neuen Ordner in meinen ~ / Sites und kann automatisch mit der Wildcard * -Regel und dem darauf zugreifen %-2+ String-Formatierung. Jetzt löst sich nichts auf. Auch wenn ich eine VirtualHost-Regel manuell direkt einem Ordner hinzufüge, wird sie nicht aufgelöst.
elzi
1
@JakeGould ich habe es funktioniert. Vertrauen Sie mir, es ist wirklich magisch, wenn es funktioniert. Ich benutze Vagrant für viele andere Arten von Projekten, weil ich glaube, niemand hasst Apache Configs mehr als ich.
elzi
1
@LukasKawerau Ich sollte diese Frage wahrscheinlich einfach löschen, da die Konfiguration, mit der ich endete, ganz anders ist als die, die mein ursprünglicher Beitrag beinhaltet, aber ich folgte mehr oder weniger dieser Anleitung: echo.co/blog/… mit zwei wichtigen unterschieden: 1) apache version ergänzen um 2.4 zu benutzen und mit installiert brew install --with privledged-ports 2) Kümmern Sie sich nicht um die Installation seines co.echo.httpdfwd.plist Daemon starten seit 2.4 kann privilegierte Ports verwenden. und 2a) 80 anstelle von 8080, falls zutreffend.
elzi