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
/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?
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.
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.