Bagaimana saya bisa memulai apache yang diinstal khusus saat boot di OSX

1

Saya harus menginstal Apache kustom di OSX karena saya memerlukan konfigurasi yang sangat spesifik untuk klien dan saya tidak dapat membuat yang default berfungsi dengan benar, sayangnya.

Jadi, saya melihat cara memulai secara manual, menggunakan apachectl binary:

sudo /usr/local/apache2/bin/apachectl start

Dan saya juga melihat saya dapat membuat Apache default mulai dengan perintah launchctl .

Tapi, bagaimana saya bisa membuat custom yang diinstal untuk mulai saat boot , bukan yang default? Jika memungkinkan, saya ingin menggunakan launchctl sistem .

lucasarruda
sumber
Terima kasih. Menambahkan solusi di atas dan ditandai sebagai jawaban yang benar.
lucasarruda

Jawaban:

3

Larutan:

Bongkar Apache default:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Buat file LaunchDaemon ( /Library/LaunchDaemons/com.aaa.launchd.apache2.plist):

<?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>com.aaa.launchd.apache2</string>
<key>ProgramArguments</key>
<array>
    <string>/usr/local/apache2/bin/apachectl</string>
    <string>start</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

Ubah pemilik file:

sudo chown root:wheel /Library/LaunchDaemons/com.aaa.launchd.apache2.plist

Dan, akhirnya, tambahkan untuk dimuat saat boot:

sudo launchctl load -w /Library/LaunchDaemons/com.aaa.launchd.apache2.plist
lucasarruda
sumber
2

Anda akan melakukan hal yang sama dengan prosedur launchctl yang Anda tautkan. Bagian yang hilang adalah bahwa Anda perlu membuat launchd.plist Anda sendiri dan menyimpannya di direktori LaunchDaemons /. man launchd.plistuntuk informasi tentang format plist; atau, Anda mungkin dapat menyalin apache asli dan mengubah jalur sesuai kebutuhan Anda.

Kent
sumber
1
Simpan file plist Anda sendiri (atau disalin) di / Library / LaunchDaemons. Dan jangan lupa untuk menonaktifkan sistem httpd-plist atau gunakan port lain di httpd.conf kustom Anda jika tidak kedua webservers mencoba menggunakan port yang sama. Dan Anda harus mengadaptasi file apachectl ketika Anda ingin menggunakannya untuk memulai apache Anda sendiri.
heiglandreas