ฉันควรปรับใช้แอพพลิเคชั่นของ Rails อะไร?


24

อะไรจะเป็นไดเรกทอรีที่สมเหตุสมผลและสมเหตุสมผลในการปรับใช้แอพ Rails ที่ใช้งานจริงบนระบบ Linux

ผู้สมัครบางคน ...

/var/rails  <= There's a /var/www so this would be consistent with that 
               pattern. But I.T. guys have complained about stuff in /var 
               before.

/home/my_home_dir/rails  <= OK, not /var, but I'm not the only developer. 
                            Seems like it really ought to be a systemwide
                            location.

/home/rails  <= I don't know. That just seems weird.

/rails  <= Seems even weirder.

อะไรคือสิ่งที่น่าประหลาดใจและธรรมดาที่สุดที่จะทำที่นี่?

(ข้อมูลความเป็นมา - แอพ Rails เป็นโค้ดฝั่งเซิร์ฟเวอร์จำนวนมากที่เขียนใน Ruby พร้อมด้วยpublicdir ที่มี JavaScript, CSS และ HTML เล็กน้อยโดยpublicdir นั้นถูกจับคู่กับ Apache vhost Apache จัดการโค้ด Ruby ผ่านโมดูล เรียกว่าผู้โดยสารหรือmod_rails.)


ขอบคุณสำหรับความช่วยเหลือทุกคน /opt/deployed_rails_appsฉันคิดว่าฉันจะไปกับ (ฉันชอบชื่อไดเรกทอรียาว ๆ และความสมบูรณ์ของแท็บ) /var/...เป็นสถานที่ที่ดี แต่ฉันก็บ่นเรื่องไอทีเมื่อพยายามใช้งานที่นั่น ถ้ามันเป็นเครื่องของฉันเองฉันอาจจะไปด้วยหรือ/var/srv


คุณอาจต้องการดูคำถามที่เกี่ยวข้องอื่น ๆ นี้: serverfault.com/questions/29129/…
chmeee

คำถามข้างเคียง แต่ยังเกี่ยวข้องกับฉันกำลังทำงานในโครงการทางรถไฟที่มีอยู่ใน ~ / เอกสาร / คำพูด (ไดเรกทอรี) และหลังจากการปรับใช้พบมากฉันประหลาดใจบาง 6 เดือนต่อมาว่าโครงสร้างโฟลเดอร์ที่เหมือนกันยังอยู่ใน / var / www / html / quote - เมื่อทำการติดตั้ง Rails จะคัดลอกไปยังโฟลเดอร์ var หรือไม่? ฉันไม่รู้ว่ามันมาจากไดเรกทอรีอื่นได้อย่างไร ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม
BKSpurgeon

คำตอบ:


5

ฉันคิดว่า/ optจะเป็นสถานที่สำหรับแอปพลิเคชันเช่นนี้ ฉันเห็นด้วยกับการติดตาม FHS ตามคำแนะนำของ chmeee แต่ฉันไม่เห็นด้วยว่าแอป Rails เป็นบริการต่อ


เป็นการยากที่จะบอกว่าจริง ๆ แล้วซอฟต์แวร์ Rails นั้นไม่ได้ติดตั้งในระบบบางแห่ง (เป็นอัญมณีหรือแพ็คเกจ) สิ่งที่เขาต้องการวางคือโครงสร้างไดเรกทอรีสำหรับ 'บริการ' แอปพลิเคชันจริงที่ใช้รางเพื่อให้บริการบางอย่าง
chmeee

ฉันจำได้ว่าเขากำลังพูดถึงแอพที่เขาสร้างขึ้น (ดังนั้น "แอป Rails") แทนที่จะใช้ Rails เอง ทั้งสองวิธี / srv ดูเหมือนผิด
Argalatyr

7

บน CentOS Linux ดิสทริบิวชัน (และต่อมา RedHat) เมื่อคุณติดตั้งแพคเกจ httpd (สำหรับ Apache 2) มันจะสร้าง/var/wwwและคาดหวังว่า vhost ของคุณจะชี้ไปที่เนื้อหาเว็บของคุณที่นี่ vhost เริ่มต้นจะถูกทิ้งมักจะอยู่ใน/var/www/htdocsและเว็บไซต์ที่ตามมา / /var/www/sitenameปพลิเคชันควรจะใส่ใน

สถานที่จริงไม่ควรเรื่องมาก แต่มันเป็นธรรมดาที่จะเห็น/opt/www/sitename, /var/www/sitenameหรือเพียงหรือ/opt/www/var/www

คุณได้ระบุเหตุผลบางประการแล้วว่าทำไมสถานที่อื่น (เช่น/home) บางแห่งจึงไม่เหมาะกับสถานที่นี้

โดยส่วนตัวฉันชอบ/var/www/sitenameเพราะมันเป็นมิตรกับ Apache และ Rails และเป็นระบบทั่ว


1
แอพพลิเคชั่นบนเว็บควรเข้าไปใน / var / www โดยเฉพาะหากมีการให้บริการผ่านเว็บเซิร์ฟเวอร์ที่เหมาะสมเช่น Apache of Lighttpd ยิ่งกว่านั้นนโยบาย SELinux จะถูกนำไปใช้อย่างเหมาะสมกับแอพ Rails ใน / var / www และไม่ได้อยู่ใน / opt
wzzrd

6

คุณอาจต้องการทำตามลำดับชั้นของระบบแฟ้ม (FHS)และวางไว้

/srv : Data for services provided by this system

แก้ไข:

ฉันจะไม่ใส่มันใน/opt:

/opt : Add-on application software packages

มันมีวัตถุประสงค์พูดว่า:

/ opt ถูกสงวนไว้สำหรับการติดตั้งชุดโปรแกรมซอฟต์แวร์เสริม

แพ็กเกจที่จะติดตั้งใน / opt ต้องค้นหาไฟล์สแตติกในแผนผัง / แยก / opt / หรือ / opt / ซึ่งมีชื่อที่อธิบายแพคเกจซอฟต์แวร์และเป็นชื่อที่ลงทะเบียน LANANA ของผู้ให้บริการ

ฉันไม่คิดว่าแอปพลิเคชั่นที่พัฒนาขึ้นจะเป็น 'ชุดซอฟต์แวร์'

เหตุผลสำหรับ/srvคือ

วัตถุประสงค์หลักของการระบุสิ่งนี้คือเพื่อให้ผู้ใช้สามารถค้นหาตำแหน่งของไฟล์ข้อมูลสำหรับบริการเฉพาะและเพื่อให้บริการที่ต้องการต้นไม้ต้นเดียวสำหรับข้อมูลที่อ่านได้อย่างเดียวข้อมูลที่เขียนได้และสคริปต์ (เช่นสคริปต์ CGI) สามารถวางได้อย่างสมเหตุสมผล

ผมเข้าใจว่าเป็น app รางเป็นสคริปต์ CGI /srvและควรจะอยู่ใน


ฉันจะไม่คลั่งไคล้มากเกินไปกับสิ่งที่ FHS พูด สิ่งที่สำคัญที่สุดคือการทำให้แพ็คเกจที่กำหนดเองของคุณอยู่ห่างจากไฟล์ระบบปฏิบัติการ และสถานที่ที่ดีที่สุดคือ "/ usr / local" และ "/ opt"
Andrioid

1
ฉันไม่คลั่ง แต่ฉันชอบองค์กรระบบแฟ้มของพวกเขา ในกรณีใด ๆ ผมยอมรับว่า / usr / ท้องถิ่นและ / เลือกที่ดีสำหรับแพคเกจซอฟต์แวร์ แต่ฉันไม่คิดว่าราง app เป็นแพคเกจซอฟต์แวร์
chmeee

1
ขึ้นอยู่กับสิ่งที่ FHS พูด/srvดูเหมือนจะเป็นไดเรกทอรีที่เหมาะสมที่สุดสำหรับฉัน /srv/rails/application_nameฉันใช้
Teemu Leisti


0

ในระบบที่ใช้เดเบียน / อูบุนตูมักจะติดตั้งแอปพลิเคชั่นดังกล่าวในโฟลเดอร์ / usr / share (เช่น / usr / share / ruby) เนื่องจากเป็นไฟล์ที่ไม่ได้รวบรวม (ซึ่งจะเป็น / usr / lib) เนื่องจากแอปพลิเคชันของคุณไม่ใช่แอปพลิเคชันมาตรฐานคุณอาจจะใส่ไว้ใน / usr / local / share เพื่อป้องกันไม่ให้มีการเขียนทับโดยการอัปเดตระบบใด ๆ

/ opt เป็นความเป็นไปได้อย่างแน่นอนเช่นกันที่นี่


0

ฉันเก็บ deploys ไว้

/home/www.example.com/application

ข้อโต้แย้ง:

หน้าแรกจะมีส่วนที่เคลื่อนไหวทั้งหมดของเว็บไซต์เดียว หากฉันมีเว็บไซต์มากขึ้นฉันจะรู้ว่าจะหาได้ที่ไหน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.