Bagaimana cara memulai apache di OSX Mountain Lion / Mavericks?

71

OSX Mountain Lion menghapus GUI untuk berbagi web, tetapi apache masih diinstal.

Bagaimana saya memulai dan menghentikan layanan? Bagaimana cara mendapatkan layanan untuk diluncurkan secara otomatis saat startup?

licin
sumber
Dimulai secara otomatis, setidaknya untuk saya. Cukup ketikkan 0.0.0.0 itu harus ada di sana.
Wojciech Bednarski
@Lri Tidak. Saya melakukan upgrade dari 10,7
Wojciech Bednarski

Jawaban:

79

LaunchDaemon untuk Apache juga masih ada, jadi yang harus Anda lakukan adalah memuatnya:

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

Itu -wmembuatnya permanen, yaitu akan dimuat ulang ketika Anda reboot.

Gordon Davisson
sumber
Bagaimana Anda mematikan ini setelah dimulai dengan cara ini?
James McMahon
9
@JamesMcMahon:sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Gordon Davisson
Hmm, ada sesuatu yang masih berjalan di localhost, saya berasumsi itu adalah Apache, mungkin saya punya sesuatu yang lain berjalan.
James McMahon
@JamesMcMahon: Anda dapat menggunakan mis sudo lsof -i:80untuk melihat proses apa yang sedang mendengarkan pada port yang diberikan. Dari sana, jawaban sebelumnya ini mungkin membantu Anda melacaknya ...
Gordon Davisson
35

Perintah Terminal

Mulai: "sudo apachectl start"

Berhenti: "sudo apachectl stop"

Restart: "sudo apachectl restart"

Meluncurkan saat Startup

(Lihat jawaban yang ditandai di utas ini)

licin
sumber
Apakah ada dir ShutdownItems yang setara? Tidak ada OSX di depanku saat ini ...
Rich Homolka
Dulu ada /etc/rc.shutdown.local - tidak yakin apakah itu masih ada ...
slifty
12

sudo apachectl startjuga mengaktifkan daemon launchd. Itu menimpa Disabledkunci /System/Library/LaunchDaemons/org.apache.httpd.plistdengan memodifikasi /private/var/db/launchd.db/com.apple.launchd/overrides.plist, sama seperti launchctl load -w.

Agar http://localhost/~username/dapat berfungsi, Anda harus membuat /etc/apache2/users/username.confdan menambahkan <Directory>arahan seperti ini:

<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Lri
sumber
1
Saya menemukan artikel yang sangat bagus di sini. Juga mencakup enablation modul php. coolestguyplanettech.com/downtown/…
Peter Ehrlich
8

Slifty dan Lauri mengisyaratkan konsep penting tanpa mengatakannya dengan jelas.

"sudo apachectl start" tidak hanya akan memulai apache tetapi juga akan memodifikasi /private/var/db/launchd.db/com.apple.launchd/overrides.plist sehingga apache akan memulai ulang secara otomatis setiap kali sistem di-boot ulang.

Demikian pula, "sudo apachectl stop" akan menghentikan apache dan memodifikasi file di atas sehingga apache tidak akan mulai ketika sistem di-boot ulang.

Ini tampaknya menjadi cara paling sederhana untuk mengontrol apakah layanan dimulai secara otomatis.

aeropapa17
sumber
3

Bagi mereka yang mencari GUI, Click On Tyler telah mengembangkan aplikasi panel kontrol, http://clickontyler.com/blog/2012/02/web-sharing-mountain-lion/

Sampel GUI

James McMahon
sumber
Widget yang bagus .. namun di sistem saya ada yang tidak beres dan apache tidak dimulai .. :(
Dilip Rajkumar
Sama disini. Tampaknya sedikit kode ceroboh - kebingungan tua yang baik tentang file .pid kurasa ... zzz
conny
Ini keren .. Tapi ketinggalan zaman, tidak berfungsi pada Yosemite. Bagaimana kita menghapus ini dari panel pengaturan kita?
emotalitas
Untuk Menghapus:~/Library/PreferencePanes
emotalitas
Maaf, ini tidak lagi tersedia, atau menjadi bagian dari produk komersial yang hanya dapat Anda unduh secara lengkap - bukan hanya panel preferensi. Ada alternatif?
Motti Shneor
1

Panel preferensi ini memiliki tautan untuk folder situs komputer dan untuk membuka browser: http://stowlake.com/WebServer

Danny Swarzman
sumber
Panel preferensi UI yang jelek ini langsung crash ketika Anda mencoba untuk memulai web-server pada OS-X 10.11 dan 10.12. Log kecelakaan tersedia atas permintaan Anda;)
Motti Shneor