Cara memutakhirkan Apache 2.2 hingga 2.4 di Mac OS X Mavericks

6

ISP saya telah memutakhirkan server ke Apache 2.4.9 dari 2.2.xx. Ini telah merusak beberapa hal dalam pengaturan saya dan saya ingin membawa salinan lokal saya Apache 2.2.26 ke 2.4.9 sehingga saya dapat menguji secara lokal.

Saya sudah mencoba mencari beberapa informasi online, tetapi sepertinya saya tidak dapat menemukan petunjuk langkah demi langkah tentang cara melakukannya, dan kebanyakan saya menemukan rekomendasi untuk TIDAK melakukannya. Alih-alih, saya menemukan orang-orang menyarankan Homebrew, MacPorts, atau Fink.

Mengingat saya memiliki sejumlah situs yang bekerja dengan local.xxxx.com dan semuanya bekerja dengan baik (sunting secara lokal, uji dengan mengunjungi url mereka yang sesuai dengan awalan lokal.) Dan semuanya cukup nyaman dan menyenangkan, saya ingin melanjutkan melakukan hal yang sama, tetapi dengan Apache 2.4.9. Saran apa pun cara terbaik untuk melakukan ini, atau petunjuk petunjuk akan sangat dihargai.

Jose
sumber
Versi ampps.com saat ini termasuk Apache 2.4.7
Sergei

Jawaban:

2

Jika Anda berhasil, Anda akan merusak bagian dari Sistem

Anda tidak ingin melakukan itu. Apache2 adalah bagian dari OS. Jika Anda entah bagaimana mencapai apa yang Anda cari, Anda akan mematahkan kemampuan apa pun untuk memutakhirkan Apache2 atau mengeluarkan pembaruan keamanan peran Apple yang diterapkan menggunakan Mac App Store bawaan atau pembaruan perangkat lunak dari Apple. Anda harus membiarkannya dan menginstal Apache2 yang berbeda. Selain itu, dengan cara itu Anda akan yakin bahwa pembaruan Apple selanjutnya juga tidak merusak versi peningkatan Apache2 Anda, yang kemungkinan besar (jika tidak bisa dihindari).


MacPorts

MacPorts adalah solusi manajemen paket yang kuat, stabil, matang dan mudah digunakan, untuk OS X. Ini dimodelkan setelah sistem port FreeBSD , yang telah diadopsi sebagai dasar pkgsrc NetBSD . Saya sangat merekomendasikan MacPorts .

instal Xcode 5.1.1

MacPorts membutuhkan versi xcode yang sesuai; xcode_5.1.1.dmg adalah versi terbaru untuk Mavericks (setelah mendaftar untuk akun pengembang gratis, dan masuk ke developer.apple.com, tautan itu akan memulai unduhan xcode Anda). Setelah pengunduhan selesai:

 hdiutil attach -quiet -noverify -nobrowse -noautoopen ~/Downloads/xcode_5.1.1.dmg
 cp -npR /Volumes/Xcode/Xcode.app /Applications/
 hdiutil detach -quiet /Volumes/Xcode
 open -g /Applications/Xcode.app
 sleep 8
 killall Xcode.app

Instal MacPorts

Dapatkan untuk tahu MacPorts

 curl -Ok https://distfiles.macports.org/MacPorts/MacPorts-2.2.1.tar.bz2
 tar xf MacPorts-2.2.1.tar.bz2
 cd MacPorts-2.2.1
 ./configure
 make
 sudo make install     # *not war!*
 cd ..
 rm -rf Macports-*
 sudo /opt/local/bin/port -v selfupdate
 diskutil quiet repairPermissions /

tambahkan MacPorts ke $ PATH Anda:

 export PATH=/opt/local/bin:/opt/local/sbin:$PATH
 export MANPATH=/opt/local/share/man:$MANPATH

instal Apache 2.4.9

 Jose@stack:~$
 Jose@stack:~$
 Jose@stack:~$ port info apache24-devel
  apache24-devel @2.4.9 (www)
  Variants:       eventmpm, openldap, [+]preforkmpm, universal, workermpm

  Description:    Apache is an HTTP server designed as a plug-in replacement for the NCSA server version 1.3
                  (or 1.4). It fixes numerous bugs in the NCSA server and includes many frequently requested
                  new features, and has an API which allows it to be extended to meet users' needs more
                  easily.
  Homepage:       http://httpd.apache.org/

  Library Dependencies: apr, apr-util, expat, openssl, pcre, perl5, zlib
  Platforms:            darwin, freebsd, openbsd
  License:              Apache-2
  Maintainers:          [email protected], [email protected], [email protected],
                        [email protected]
 Jose@stack:~$
 Jose@stack:~$
 Jose@stack:~$ sudo port -vsc install apache24-devel

Itu benar-benar semua yang ada untuk itu. Jika Anda dapat mengkonfigurasi httpd.conf, Anda dapat melakukannya juga. Dan Anda dapat tetap memperbaruinya ke ujung mimisan hanya dengan:

 sudo port -vsc selfupdate
 sudo port -vsc upgrade installed

MacPorts tidak akan mengganggu penggunaan server Apache2 internal OS X, atau dengan perangkat lunak lain. Itu membuat semua yang diinstal di direktori / opt-nya.

Jika karena alasan apa pun Anda tidak puas dan / atau perlu menghapus MacPort:

untuk benar-benar menghapus MacPorts

 sudo port -dfp uninstall --follow-dependencies installed
 sudo port -dfp uninstall all
 sudo rm -rf /opt/local  
 sudo rm -rf /Library/Tcl/macports*
chillin
sumber
Bagi saya, ini sepertinya serangkaian langkah paling lengkap. Saya sudah mulai dengan tautan "know MacPorts" dan jalankan xcode-select --install (yang menginstal utilitas baris perintah, setelah saya menginstal XCode). Selanjutnya saya mengunduh .pkg sesuai petunjuk di situs MacPorts dan melanjutkan dengan pembaruan otomatis sudo / opt / local / bin / port -v diikuti oleh perbaikan diskutil quietPermissions / Saya kemudian melewatkan penambahan ke PATH (sepertinya instalasi melakukan itu untukku). Seluruh proses butuh beberapa saat dengan satu dialog muncul meminta "javac," membutuhkan Java SE 6, yang saya tolak.
Jose
Mungkin dokumen MacPorts perlu diperbarui. Ini bukan tim pengelola besar, yang merupakan salah satu alasan saya mengambilnya sendiri untuk menginjili tentang hal itu: semakin banyak pengadopsi, semakin baik akan. Saya telah menggunakannya selama hampir 8 tahun, dan saya bukan programmer / pengembang. Setelah terbiasa dengan sintaks (yang saya sedikit menggunakan NetBSD dan pkgsrc) mulai menjadi berguna. Migrasi sangat mudah, "daftar port yang diminta" memberi tahu Anda semua port yang Anda minta, dan Anda dapat menulis daftar itu dengan mudah di sistem baru. Senang menggulir perangkat lunak saya sendiri ke mana pun saya pergi. Kunjungi #macports @freenode irc untuk dukungan realtime.:D
chillin
Sekarang, ini tampaknya berhasil, tetapi browser tampaknya masih pergi ke versi 2.2.26 dari Apache. Di baris perintah, meskipun, menjalankan "apachectl" tampaknya mencari di tempat yang tepat. Saat ini memberi saya kesalahan [Sintaks kesalahan pada baris 53 dari /opt/local/etc/apache2/extra/httpd-vhosts.conf: Perintah 'php_value' tidak valid, mungkin salah eja atau didefinisikan oleh modul yang tidak termasuk dalam server konfigurasi] tapi itu karena saya belum punya modul untuk memuat php, yang akan saya coba gambarkan selanjutnya. Jadi, bagaimana saya "mematikan" 2.2.26 dan memastikan bahwa permintaan local.xxxx.com menggunakan 2.4.9?
Jose
Berpikir bagaimana mematikannya: sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist.
Jose
@Jose versi macports dikontrol sama. sulit dibaca tetapi hal-hal bagus di sana, termasuk perintah launchctl untuk memulai / menghentikan apache2, & saya pikir Anda juga dapat menggunakan apachectl, tetapi mungkin harus mengkonfigurasi untuk versi macports dari cmd itu juga. Semuanya harus di / opt seperti /opt/local/apache2/conf/httpd.conf
chillin
0

Anda dapat memutakhirkan Apache yang dilengkapi dengan Maverics tetapi ada kemungkinan besar bahwa setiap kali Anda menginstal pembaruan sistem, Apache akan rusak.

Ini cukup mudah untuk menggunakan homebrew, tetapi itu adalah hal baris perintah. Dengan homebrew Anda dapat menyematkan versi Apache.

Jika Anda menginginkan solusi dengan antarmuka grafis menggunakan MAMP, gratis. Tetapi Anda harus menggunakan versi Apache yang mereka kirimkan (2.2.26).

Saya akan tinggal jauh dari macport, homebrew adalah raja baru di kota.

Untuk menginstal homebrew ketik ini di terminal

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Menginstal versi tertentu adalah trik lebih lanjut, Anda dapat melihat petunjuk pada pos pertukaran tumpukan ini:

https://stackoverflow.com/questions/3987683/homebrew-install-specific-version-of-formula

Tapi saya bertanya-tanya masalah apa yang Anda dapatkan, perubahan versi Apache biasanya tidak merusak apa pun, apakah Anda yakin itu adalah masalah Apache? Masalahnya bisa karena teknologi lain, seperti PHP, Ruby ...

Tolong posting kesalahan yang Anda dapatkan.

Felipe
sumber
Kesalahan yang saya dapatkan ketika mengunjungi local.xxxxx.com adalah Kesalahan Server Internal. Saat memeriksa konsol, saya melihat ini: [Senin 12 Mei 13:38:18 2014] [lansiran] [klien 127.0.0.1] / Pengguna / Jose / Sites/local.xxxxx.com/html/.htaccess: RewriteRule: unknown tandai 'END'. Daripada mengatasinya, saya lebih memilih untuk menjalankan sistem saya dengan 2.4.9 sehingga saya dapat memiliki pengaturan lokal sedekat mungkin ke pengaturan ISP
Jose
Saya pindah dari MAMP beberapa tahun yang lalu karena dukungan mereka untuk versi terbaru (stabil) dari beberapa paket kurang. Dan saya baru saja memeriksa, dan tentu saja, dengan rilis terbaru mereka, mereka masih menggunakan Apache 2.2.26. Akan melihat apakah Homebrew mencakup instalasi yang mudah dari Apache 2.4.9 dan PHP 5. Akan memeriksa tautan yang disediakan.
Jose