Heim  >  Fragen und Antworten  >  Hauptteil

macos - Brew-Installation von Nginx kann nicht über Launchctl gestartet werden?

Es hat nicht funktioniert, als ich es zum ersten Mal installiert habe, und es hat nicht funktioniert, als ich es auf die Entwicklungsversion geändert habe:

brew install nginx
brew upgrade --devel nginx

Von launchctl 命令来启动, 还试过多次 unloadload:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

Der Inhalt der Konfigurationsdatei ist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.nginx</string>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/opt/nginx/bin/nginx</string>
        <string>-g</string>
        <string>daemon off;</string>
    </array>
    <key>WorkingDirectory</key>
    <string>/usr/local</string>
  </dict>
</plist>

Beim Anhören des Protokolls ist mir ein Fehler aufgefallen, aber ich konnte die spezifischen Informationen nicht sehen:

➤➤ tail -f /var/log/system.log
Feb 20 18:28:14 Air com.apple.launchd.peruser.501[244] (homebrew.mxcl.nginx[1200]): Exited with code: 1

Außerdem manuell sudo nginx oder der Pfad in der Konfigurationsdatei ist korrekt,
Vergleicht man den Code von Homebrew auf GitHub, sollte meine Nginx-Konfiguration nicht falsch sein...
https://github.com/Homebrew/homebrew/blob/master/Library/Formula/nginx.rb#L138

Die Berechtigungen zum Anzeigen von Dateien sind jetzt:

➤➤ ls -l /usr/local/opt/nginx/bin/nginx
-r-xr-xr-x  1 chen  admin  675992 Feb 11 10:16 /usr/local/opt/nginx/bin/nginx
➤➤ l -l /usr/local/Cellar/nginx/1.5.8/bin/nginx
-r-xr-xr-x  1 chen  admin  675992 Feb 11 10:16 /usr/local/Cellar/nginx/1.5.8/bin/nginx

Die in Visudo geschriebenen Berechtigungen sind:

 32
 33 # User privilege specification
 34 root    ALL=(ALL) ALL
 35 %admin  ALL=(ALL) ALL
 36
 37 # Uncomment to allow people in group wheel to run all commands
 38 # %wheel        ALL=(ALL) ALL
 39
 40 # Same thing without a password
 41 # %wheel        ALL=(ALL) NOPASSWD: ALL
 42 chen ALL=(ALL) NOPASSWD: ALL

Bitte gebt mir einen Rat...


chmod u+s Erfolglos..

➤➤ sudo chmod u+s /usr/local/Cellar/nginx/1.5.8/bin/nginx
➤➤ ps aux | grep nginx
nobody           7254   0.0  0.0  2458140    916   ??  S     7:49PM   0:00.00 nginx: worker process
root             7253   0.0  0.0  2448924    360   ??  Ss    7:49PM   0:00.00 nginx: master process nginx
chen             7293   0.0  0.0  2432784    604 s002  S+    7:52PM   0:00.00 grep nginx
➤➤ sudo nginx -s stop
➤➤ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
homebrew.mxcl.nginx: Already loaded
➤➤ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
➤➤ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
➤➤ ps aux | grep nginx
chen             7316   0.0  0.0  2432784    608 s002  S+    7:52PM   0:00.00 grep nginx
➤➤ sudo nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
➤➤ nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
➤➤ sudo chmod u-s /usr/local/Cellar/nginx/1.5.8/bin/nginx
➤➤ nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
➤➤ sudo nginx
➤➤
迷茫迷茫2712 Tage vor773

Antworte allen(1)Ich werde antworten

  • 为情所困

    为情所困2017-05-16 17:30:06

    估计是nginx执行权限问题,参见这篇文章。

    sudo chown root:wheel /usr/local/Cellar/nginx/1.2.6/sbin/nginx
    sudo chmod u+s /usr/local/Cellar/nginx/1.2.6/sbin/nginx
    

    Antwort
    0
  • StornierenAntwort