Lokasi yang dipilih untuk executable cgi di Lion Server


2

Pertanyaan ini berkaitan dengan penggunaan Server Singa hanya untuk pengujian dan pembuatan prototipe, jadi saya tidak perlu beberapa situs hosting domain terpisah. Semua proyek saya memiliki direktori di direktori root, bukan di sub-direktori "Situs" yang terpisah.

Di Lion Server, Apple telah membatalkan pengaturan direktori sebelumnya:

/ Library / WebServer / CGI-Executables [alias sebagai cgi-bin]

/ Library / WebServer / Documents [alias direktori root]

Sekarang, server web cukup:

/ Perpustakaan / Server / Web / Data / Situs / Default

Setelah saya menginstal Lion Server, Apache masih dikonfigurasi dengan cgi-bin alias ke / Library / WebServer / CGI-executable dan direktori root ke / Library / WebServer / Documents. Saya mengubah yang terakhir di bagian Web Lion's Server.app ke / Library / Server / Web / Data / Sites / Default.

Saya ingin parit / Library / Webserver. Saya tidak dapat menemukan referensi ke direktori yang disukai / direkomendasikan untuk executable saya. Saya berpikir: / Library / Server / Web / Data / Exec [alias dalam konfigurasi Apache sebagai cgi-bin atau apa pun]

Saya terbiasa memiliki semua executable saya di satu tempat, dan mereka biasanya berbagi banyak modul yang sama, jadi saya tidak cenderung untuk menempatkan direktori cgi di direktori masing-masing proyek sendiri.

Saran? Praktik terbaik saat ini?

Terima kasih.


Mengapa meninggalkan lokasi default / Library / Webserver? Ketika saya mendapatkan grayer, saya menolak mengubah apa pun kecuali alasannya solid dan benar-benar jelas mengapa yang baru lebih baik.
bmike

1
Saya terbiasa menerima struktur direktori yang disajikan kepada saya. Dengan semangat yang sama saya masuk menggunakan / Library / Webserver / Documents dan / Library / Webserver / CGI-Executables di komputer saya sendiri saat OS X pertama kali keluar. Itu sepertinya telah ditinggalkan di / Library ketika saya menginstal Lion Server. Berharap saya akan menemukan beberapa pencerahan tentang mengapa tidak ada dir terpisah sekarang untuk CGI, dan secara implisit pertanyaan bagus yang Anda ajukan - mengapa itu berubah?
Bruce Van Allen

Jawaban:


1

OS X menjadi sistem berbasis unix, Anda dapat menggunakan struktur file unix standar untuk itu.

Secara umum, kebanyakan distro unix / linux menggunakan / var / www / untuk penyimpanan server web, Anda bisa membayangkan sesuatu seperti / var / www / html untuk halaman dan media dan / var / www / cgi-bin untuk cgi executable.

Ada lokasi lain yang tersedia (/ srv misalnya), lihat daftar ini di wikipedia untuk penjelasan tentang struktur direktori (jika perlu)


Saya menghargai jawabannya - tetapi mac secara teknis tidak memiliki semua struktur direktori standar karena semuanya hidup di / private dan jumlah tautan ada untuk "kompatibilitas" - Konvensi ini adalah untuk tidak meletakkan apa pun di var selain file sementara di mac, itulah sebabnya kita semua cari konvensi untuk menemukan "tempat terbaik berikutnya" untuk membiarkan file-file ini hidup.
bmike

1
Saya tidak pernah mendengar tentang konvensi itu (hanya file tmp di / var), maaf. Namun, mengapa Anda tidak menggunakan struktur yang sama dengan yang Anda miliki di SL?
Benjamin Dubois

Mengingat bahwa hanya ada tiga symlinks / private, saya menemukan komentar 'mac secara teknis tidak memiliki semua struktur direktori standar' menjadi sedikit berlebihan (ya, saya bersikap sopan). OS X tidak hanya berbasis unix, tapi juga aku s sistem operasi Unix yang sesuai dengan POSIX. Fakta bahwa ia menggunakan beberapa symlink tidak mengurangi sama sekali. Saya pikir komentar Benjamin adalah komentar yang bagus meskipun saya tidak akan menggunakan / var. Aturan saya sendiri (sekitar 30 tahun sekarang - terima kasih Melinda) adalah untuk tidak pernah mencampur barang saya dengan barang vendor.
zzz

Saya kira saya berharap orang akan menjelaskan mengapa mereka merasa lokasi tertentu lebih disukai. Konsep Anda untuk tidak menggabungkan data server atau pengguna dengan dokumen vendor sangat bagus! Pertanyaannya tidak banyak di mana Anda mungkin menyimpan barang, tetapi di mana dan mengapa satu lokasi mungkin lebih disukai daripada yang lain. Saya akan mencoba mengedit jawaban saya ke alamat yang lebih baik mengapa saya merasa itu lebih unggul daripada alternatif. Ini bukan tentang sopan - saya lebih suka saya mendengar bagaimana dan mengapa saya salah dan diyakinkan atau setidaknya mengerti mengapa / var atau / srv atau / Library / WebServer / CGI-Executables adalah lebih disukai.
bmike

2
Masalahnya adalah: tidak ada alasan obyektif untuk lebih memilih lokasi daripada yang lain. Selama instalasi Anda didokumentasikan dengan baik, diamankan, dan sesuai dengan kebutuhan Anda, mengapa Anda harus peduli? Anda dapat menggunakan / srv, / opt, / var, / srv, / usr / local atau lokasi spesifik OSX ... Berhati-hatilah dengan pembaruan untuk menghindari masalah.
Benjamin Dubois

0

Preferensi saya adalah menempatkan executable CGI yang umum digunakan di seluruh sistem /Library/Server/Web/Data/Exec

Beberapa konsep muncul di benak saya ketika memikirkan folder apa yang terbaik:

  1. Hindari menyimpan CGI saya di antara sistem yang disampaikan Apple CGI.
  2. Hindari menyimpan CGI saya di folder di mana Server Admin dan Finder disembunyikan secara default.

    Yang kurang penting adalah tindakan yang diambil oleh Apple untuk tidak lagi mengirim atau menyembunyikan beberapa folder dari tampilan (Saya senang bisa keluar dari pimpinan vendor - tetapi umumnya perlu alasan yang baik untuk melakukannya)

  3. Jangan ubah dari lokasi Snow Leopard di /Library/WebServer/CGI-Executables (Prinsip sysadmin malas - mengapa mengubah apa pun yang Anda tidak perlu)

  4. Upaya paling tidak - jika saya harus melakukan sesuatu - sedikit perubahan lebih baik.

Tampak jelas itu /Library/Server/Web/Data/Sites akan berisi data bahwa server web akan melayani secara berbeda berdasarkan kebutuhan setiap situs. Jadi, jika saya Jeruk situs memiliki CGI yang hanya dimaksudkan untuk satu situs itu, saya mungkin menyimpannya /Library/Server/Web/Data/Sites/Orange/Exec daripada di lokasi "default".

Saya tidak melihat alasan yang baik untuk menyimpannya /Library/WebServer sekitar sejak saya akan mengedit file konfigurasi Apache saya untuk menambahkan situs saya - dan saya kira kita akan melihatnya berubah dalam rilis titik dan tidak perlu menebak.

Saya akan mengabaikan folder apa pun yang disembunyikan secara default di Finder dan Server Manager - jadi bagi saya /private akan keluar. Saya tidak mengatakan itu salah bagi siapa pun untuk menyimpan barang-barang di sana - terutama jika menghemat Anda bekerja atau otak dengan menggunakan kembali struktur kode dari OS UNIX lain yang tidak menggunakan Mac OS X yang unik /System dan /Library struktur direktori.


0

Menjawab pertanyaan saya sendiri seandainya kesimpulannya tidak jelas. Tidak ada yang mengklarifikasi Mengapa Apple mengubah struktur direktori untuk server web di Server OS X Lion (& amp; Mountain Lion). Namun, bagi saya pertanyaan yang menonjol adalah apakah ada lokasi "praktik terbaik" untuk dieksekusi web - atau lokasi "pilihan" seperti yang dikatakan oleh @bmike. Kesimpulan saya dari beberapa komentar yang berguna dan dari pengujian saya sendiri adalah bahwa pilihan lokasi arbitrer, dan oleh karena itu yang dianggap sebagai praktik terbaik adalah untuk menemukan executable web Anda di mana mereka melayani situs Anda, mengikuti kriteria dan saran yang disebutkan oleh komentator .

Bagi saya, server saya sendiri hanyalah langkah menuju lokasi akhir barang saya di server orang lain atau di beberapa ISP. Jadi setiap build membuat dua konfigurasi berbeda: satu untuk struktur direktori server pengujian (sekarang Mountain Lion) saya dan yang lainnya untuk struktur direktori tempat aplikasi akan digunakan. Yang lainnya sama.

Jadi saya mengatur struktur direktori untuk server web saya yang membuatnya mudah untuk melacak proyek saya, dan mencatat jalurnya dalam sistem build saya. Itu dan aliasing gaya Apache (mis. Menggunakan 'cgi-bin' sebagai alias untuk direktori executable) berarti saya tidak akan benar-benar melihat ke belakang sekarang karena struktur direktori saya sendiri sudah ada. Saya hanya membangun aplikasi dan mendarat di tempat yang tepat untuk berjalan di server saya. Jadi itulah jawabannya bagi saya.

Dalam server produksi, praktik terbaik mungkin akan memasukkan saran komentator tentang perubahan minimal, kejutan minimal untuk pengelola berikutnya, dan kegigihan melalui peningkatan sistem. Terima kasih semuanya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.