วัตถุประสงค์ของเอกสารนี้เขียนไลบรารีเขียนโค้ดง่ายๆสำหรับไลบรารี AddNumbers ซึ่งอนุญาตให้เก็บและเพิ่มสองจำนวนเต็ม ประกอบด้วยไฟล์อินเตอร์เฟสและซอร์สโค้ด สร้างไลบรารีแบบสถิตแรกไฟล์ต้นฉบับ srcAddNumbers. cpp จะกลายเป็นไฟล์อ็อบเจ็กต์ ไลบรารีแบบสแตติกคือชุดของไฟล์อ็อบเจ็กต์ที่คัดลอกลงในไฟล์เดียว มันถูกสร้างขึ้นอ้างถึง Archiver ar ชื่อไลบรารีต้องขึ้นต้นด้วยตัวอักษรสามตัว lib และมีส่วนต่อท้าย a. นอกจากนี้คุณยังสามารถเขียนกฎที่คล้ายกันใน makefile ดูไฟล์ Makefile. static ที่ระบุในไฟล์ AddNumbers. tar. bz2 สร้างไลบรารีที่ใช้ร่วมกันตัวเลือก - fpic บอกว่า g สร้างโค้ดอิสระที่ต้องการสำหรับไลบรารีที่ใช้ร่วมกัน ในที่สุดห้องสมุดสาธารณะจะถูกสร้างขึ้น โปรดทราบว่าชื่อห้องสมุดต้องขึ้นต้นด้วยอักษร lib สามตัวและมีส่วนต่อท้ายด้วยเช่นกัน เป็นตัวอย่าง Makefile ดูไฟล์ Makefile. shared ที่ระบุในไฟล์ AddNumbers. tar. bz2 C สัญลักษณ์คำสั่ง nm และ cfilt อนุญาตให้แสดงรายการและลบล้างสัญลักษณ์ C จากไฟล์อ็อบเจ็กต์ ลองใช้คำสั่งเหล่านั้นกับไลบรารี libAddNumbers. a แบบคงที่ หมายความว่าไลบรารี libAddNumbers. a ถูกสร้างขึ้นด้วยไฟล์อ็อบเจ็กต์ AddNumbers. o ที่มีสัญลักษณ์บางตัว คอลัมน์แรกคือค่าสัญลักษณ์ (แสดงตำแหน่งของสัญลักษณ์ในไลบรารี) คอลัมน์ที่สองคือประเภทสัญลักษณ์ และคอลัมน์ที่สามเป็นชื่อสัญลักษณ์ ดูตารางต่อไปนี้ที่อธิบายถึงประเภทสัญลักษณ์บางอย่างตามปกติ สัญลักษณ์นี้เป็นสัญลักษณ์ที่อ่อนแอซึ่งไม่ได้รับการติดแท็กเป็นสัญลักษณ์ของวัตถุที่อ่อนแอ เมื่อสัญลักษณ์ที่กำหนดไว้ที่อ่อนแอถูกเชื่อมโยงกับสัญลักษณ์ที่กำหนดไว้ตามปกติสัญลักษณ์ที่กำหนดไว้ตามปกติถูกใช้โดยไม่มีข้อผิดพลาด เมื่อมีการเชื่อมโยงสัญลักษณ์ที่ไม่ได้ระบุอย่างอ่อนและไม่ได้กำหนดสัญลักษณ์ไว้ค่าของสัญลักษณ์จะถูกกำหนดในลักษณะเฉพาะของระบบโดยไม่มีข้อผิดพลาด ตัวพิมพ์ใหญ่ระบุว่ามีการระบุค่าดีฟอลต์ ไม่รู้จักประเภทสัญลักษณ์ หรือรูปแบบไฟล์วัตถุเฉพาะ ดูรายละเอียดเพิ่มเติมจากคู่มือ nm สัญลักษณ์ไม่เข้าใจมนุษย์ เป็นภาษา C ให้ฟังก์ชันมากเกินไปซึ่งหมายความว่าคุณสามารถเขียนหลายฟังก์ชันที่มีชื่อเดียวกัน (ให้แต่ละใช้พารามิเตอร์ของประเภทต่างๆ) ชื่อฟังก์ชัน C ทั้งหมดจะถูกเข้ารหัสในฉลากประกอบชุดระดับต่ำ (กระบวนการนี้เรียกว่า mangling) โปรแกรม cfilt ทำแผนที่แบบผกผัน: ถอดรหัส (demangling process) ชื่อระดับต่ำลงในชื่อระดับผู้ใช้ โปรแกรม nm อนุญาตให้ demangle สัญลักษณ์โดยใช้ตัวเลือก - C การใช้ไลบรารีหัวข้อนี้อธิบายวิธีการใช้ไลบรารีแบบสแตติกหรือแชร์ในโปรแกรม ขั้นแรกเราต้องสร้างโปรแกรมหลัก เมื่อต้องการเชื่อมโยงโปรแกรมนี้กับไลบรารีแบบสถิตให้เขียนคำสั่งต่อไปนี้เพื่อรวบรวมและเชื่อมโยงไฟล์ปฏิบัติการหลัก โปรดทราบว่าสามตัวแรก lib และคำต่อท้าย a ไม่ได้ระบุไว้สำหรับชื่อของไลบรารี ตอนนี้โปรแกรม AddNumbersClientstatic สามารถดำเนินการได้ หากต้องการเชื่อมโยงกับไลบรารีที่ใช้ร่วมกันให้ป้อนคำสั่งต่อไปนี้ ตัวอักษรสามตัวแรก lib และส่วนต่อท้าย. so ยังไม่ได้กำหนดไว้สำหรับชื่อของไลบรารี เมื่อต้องการเรียกใช้ AddNumbersClientshared Program คุณจำเป็นต้องแจ้งตัวแปรสภาพแวดล้อม LDLIBRARYPATH ที่พบไลบรารีที่ใช้ร่วมกัน ในโลกแห่งความเป็นจริงจะดีกว่าที่จะใช้เส้นทางที่แน่นอนสำหรับ LDLIBRARYPATH เป็นตัวอย่าง Makefile ดูไฟล์ Makefile. static และ Makefile. shared ที่เก็บในที่เก็บ AddNumbersClient. tar. bz2 รายการไลบรารีที่ใช้ร่วมกันคำสั่ง ldd พิมพ์ไลบรารีที่ใช้ร่วมกันที่กำหนดโดยแต่ละโปรแกรมหรือไลบรารีที่ใช้ร่วมกันที่ระบุไว้ในบรรทัดคำสั่ง ตัวเลือกที่เป็นประโยชน์ของ ar โปรแกรม GNU ar สร้าง, แก้ไขและคัดลอกจากคลัง ไฟล์ที่เก็บถาวรคือไฟล์เดียวที่เก็บไฟล์อื่น ๆ ไว้ในโครงสร้างที่ทำให้สามารถเรียกดูไฟล์ต้นฉบับ (เรียกว่าไฟล์สมาชิกของไฟล์) ไฟล์คอนเทนต์โหมด (สิทธิ์) ลำดับเวลาเจ้าของและกลุ่มจะถูกเก็บไว้ในที่จัดเก็บและสามารถเรียกคืนข้อมูลเมื่อดึงข้อมูล ตัวเลือกที่มีประโยชน์ของ nm Useful linksconfigure - กำหนดค่าซอร์สโค้ดสคริปต์ configure กำหนดค่าซอร์สโค้ดเพื่อรวบรวมและติดตั้ง Apache HTTP Server บนแพลตฟอร์มเฉพาะของคุณ ตัวเลือกต่างๆช่วยให้สามารถรวบรวมเซิร์ฟเวอร์ที่สอดคล้องกับความต้องการส่วนบุคคลของคุณ สคริปต์นี้รวมอยู่ในไดเร็กทอรีรากของการแจกจ่ายที่มาสำหรับการคอมไพล์ในระบบ Unix และ Unix-like เท่านั้น สำหรับแพลตฟอร์มอื่นโปรดดูเอกสารประกอบของแพลตฟอร์ม คุณควรเรียกใช้สคริปต์กำหนดค่าจากภายในไดเรกทอรีรากของการแจกจ่าย ตั้งค่า OPTION ค่า VAR ในการกำหนดตัวแปรสภาพแวดล้อม (เช่น CC CFLAGS) ให้ระบุว่า VAR VALUE ดูด้านล่างสำหรับคำอธิบายของตัวแปรที่เป็นประโยชน์บางประการ ตัวเลือกต่อไปนี้มีอิทธิพลต่อพฤติกรรมการกำหนดค่าเอง - Cconfig-cache นี่คือนามแฝงของ --cache-fileconfig. cache --cache-file FILE ผลการทดสอบจะถูกแคชไว้ในไฟล์ FILE ตัวเลือกนี้ถูกปิดใช้งานโดยค่าเริ่มต้น ช่วยแก้ปัญหาและออกจากระบบ ด้วยอาร์กิวเมนต์เพียงสั้น ๆ ตัวเลือกเฉพาะสำหรับแพคเกจนี้จะปรากฏขึ้น recursive อาร์กิวเมนต์แสดงความช่วยเหลือสั้น ๆ ของแพคเกจรวมทั้งหมด - n --no-create สคริปต์ configure ทำงานตามปกติ แต่ไม่ได้สร้างไฟล์ที่ส่งออก นี้เป็นประโยชน์ในการตรวจสอบผลการทดสอบก่อนที่จะสร้าง makefiles สำหรับการรวบรวม - q --quiet อย่าพิมพ์เช็ค ข้อความระหว่างการกำหนดค่า --srcdir DIR กำหนดไดเรกทอรี DIR เป็นไดเร็กทอรีไฟล์ต้นฉบับ ดีฟอลต์คือไดเร็กทอรีที่ตั้งค่าคอนฟิกหรือไดเรกทอรีหลัก --silent เช่นเดียวกับ --quiet - V-version แสดงข้อมูลลิขสิทธิ์และออก ตัวเลือกเหล่านี้กำหนดไดเร็กทอรีการติดตั้ง โครงสร้างการติดตั้งขึ้นอยู่กับรูปแบบที่เลือก - prefix PREFIX ติดตั้งไฟล์สถาปัตยกรรมที่เป็นอิสระใน PREFIX ไดเรคทอรีการติดตั้งจะถูกตั้งเป็น usrlocalapache2 --exec-คำนำหน้า EPREFIX ติดตั้งไฟล์ที่ขึ้นกับสถาปัตยกรรมใน EPREFIX ไดเรคทอรีการติดตั้งจะถูกกำหนดเป็นไดเร็กทอรี PREFIX โดยค่าเริ่มต้นให้ติดตั้งจะติดตั้งไฟล์ทั้งหมดใน usrlocalapache2bin usrlocalapache2lib ฯลฯ คุณสามารถระบุคำนำหน้าการติดตั้งอื่นที่ไม่ใช่ usrlocalapache2 โดยใช้ --prefix ยกตัวอย่างเช่น --prefixHOME --enable-layout LAYOUT กำหนดค่าซอร์สโค้ดและสร้างสคริปต์เพื่อกำหนดโครงสร้างการติดตั้งตามเค้าโครงเลย์เอาต์ ซึ่งช่วยให้คุณสามารถระบุตำแหน่งของไฟล์แต่ละประเภทภายในการติดตั้ง Apache HTTP Server แยกต่างหาก ไฟล์ config. layout มีการกำหนดค่าตัวอย่างหลายรูปแบบและคุณสามารถสร้างการกำหนดค่าที่กำหนดเองของคุณเองตามตัวอย่างได้เช่นกัน เค้าโครงที่ต่างกันในไฟล์นี้จะถูกจัดกลุ่มเป็น ltLayout FOOgt ltLayoutgt ส่วนและเรียกตามชื่อใน FOO เค้าโครงเริ่มต้นคือ Apache สำหรับการควบคุมไดเรกทอรีการติดตั้งได้ดียิ่งขึ้นให้ใช้ตัวเลือกด้านล่าง โปรดทราบว่าค่าดีฟอลต์ของไดเรกทอรีจะถูกตั้งค่าโดย autoconf และจะถูกเขียนทับโดยการตั้งค่ารูปแบบที่สัมพันธ์กัน --bir DIR ติดตั้ง executables ของผู้ใช้ใน DIR executables ของผู้ใช้สนับสนุนโปรแกรมต่างๆเช่น htpasswd dbmmanage ฯลฯ ซึ่งเป็นประโยชน์สำหรับผู้บริหารไซต์ ตามค่าเริ่มต้น DIR ถูกตั้งค่าเป็น EPREFIX bin - datadir DIR ติดตั้งข้อมูลที่ไม่ซ้ำกันของสถาปัตยกรรมแบบอ่านอย่างเดียวใน DIR โดยค่าเริ่มต้น datadir ถูกตั้งค่าเป็น PREFIX share ตัวเลือกนี้มีให้โดย autoconf และปัจจุบันไม่ได้ใช้งาน --includedir DIR ติดตั้ง C ไฟล์ส่วนหัวใน DIR โดยค่าเริ่มต้น includeir ถูกตั้งค่าเป็น EPREFIX รวมอยู่ด้วย --infodir DIR ติดตั้งเอกสารข้อมูลใน DIR ตั้งค่า infodir ไว้ที่ PREFIX info ขณะนี้ยังไม่ได้ใช้ตัวเลือกนี้ --libdir DIR ติดตั้งไลบรารีโค้ดอ็อบเจ็กต์ใน DIR libdir ถูกตั้งค่าเป็น EPREFIX lib --libexecdir DIR ติดตั้ง executables ของโปรแกรม (เช่น shared modules) ใน DIR โดยค่าเริ่มต้น libexecdir จะถูกตั้งค่าเป็นโมดูล EPREFIX --localstatedir DIR ติดตั้งข้อมูลเครื่องเดียวที่สามารถปรับเปลี่ยนได้ใน DIR โดยค่าเริ่มต้น localstatedir ถูกตั้งค่าเป็น PREFIX var ตัวเลือกนี้มีให้โดย autoconf และปัจจุบันไม่ได้ใช้งาน --mandir DIR ติดตั้งเอกสาร man ใน DIR โดยค่าเริ่มต้น mandir ถูกตั้งค่าให้มนุษย์ EPREFIX --oldincludedir DIR ติดตั้ง C ไฟล์ส่วนหัวสำหรับ non-gcc ใน DIR โดยค่าเริ่มต้น oldincludedir ถูกตั้งค่าเป็น usrinclude ตัวเลือกนี้มีให้โดย autoconf และปัจจุบันไม่ได้ใช้งาน --sbindir DIR ติดตั้ง executables ผู้ดูแลระบบใน DIR นั่นคือโปรแกรมเซิร์ฟเวอร์เช่น httpd apachectl suexec ฯลฯ ซึ่งจำเป็นสำหรับการรัน Apache HTTP Server โดยค่าเริ่มต้น sbindir ถูกตั้งค่าเป็น sbin EPREFIX --sharedstatedir DIR ติดตั้งข้อมูลที่ไม่สามารถเปลี่ยนแปลงได้ใน DIR โดยค่าเริ่มต้น sharedstatedir ถูกตั้งค่าเป็น PREFIX com ตัวเลือกนี้มีให้โดย autoconf และปัจจุบันไม่ได้ใช้งาน --sysconfdir DIR ติดตั้งข้อมูลเครื่องเดียวแบบอ่านอย่างเดียวเช่นไฟล์การกำหนดค่าเซิร์ฟเวอร์ httpd. conf mime. types ฯลฯ ใน DIR โดยค่าเริ่มต้น sysconfdir ถูกตั้งค่าเป็น PREFIX conf ตัวเลือกเหล่านี้ใช้ในการคอมไพล์เซิร์ฟเวอร์ Apache HTTP เพื่อเรียกใช้บนระบบอื่น ในกรณีปกติเมื่อสร้างและใช้งานเซิร์ฟเวอร์บนระบบเดียวกันตัวเลือกเหล่านี้จะไม่ถูกใช้ --build BUILD กำหนดชนิดของระบบของระบบที่มีการสร้างเครื่องมือ ค่าดีฟอลต์คือผลลัพธ์ของสคริปต์ config. guess --host HOST กำหนดชนิดของระบบของระบบที่เซิร์ฟเวอร์จะทำงาน ค่าเริ่มต้น HOST สำหรับ BUILD - เป้าหมายเป้าหมายกำหนดค่าสำหรับคอมไพเลอร์อาคารสำหรับประเภทของระบบ TARGET ค่าเริ่มต้นคือ HOST ตัวเลือกนี้มีให้โดย autoconf และไม่จำเป็นสำหรับเซิร์ฟเวอร์ Apache HTTP ตัวเลือกเหล่านี้ใช้ในการปรับแต่งคุณลักษณะที่เซิร์ฟเวอร์ HTTP ของคุณจะมี โดยทั่วไปคุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเปิดหรือปิดใช้งานคุณลักษณะ: --disable - FEATURE ไม่รวม FEATURE นี่เป็นเช่นเดียวกับ --enable - FEATURE no. - เปิดใช้ FEATURE ARG รวม FEATURE ค่าเริ่มต้นสำหรับ ARG คือใช่ --enable - MODULE shared โมดูลที่เกี่ยวข้องจะสร้างเป็นโมดูล DSO โดยโมดูลที่เปิดใช้งานเริ่มต้นจะเชื่อมโยงแบบไดนามิก --enable - MODULE static โมดูลที่เกี่ยวข้องจะเชื่อมโยงแบบ statically configure จะไม่บ่นเกี่ยวกับ - enable - foo แม้ว่า foo จะไม่มีอยู่ดังนั้นคุณจำเป็นต้องพิมพ์อย่างระมัดระวัง โมดูลส่วนใหญ่จะรวบรวมโดยค่าเริ่มต้นและต้องถูกปิดการใช้งานอย่างชัดเจนหรือโดยการใช้คำหลักน้อย (ดู - เปิดโมดูล - moden-shared และ --enable-mods-static ด้านล่างสำหรับคำอธิบายเพิ่มเติม) หรือ --enable โมเลกุลที่จะถูกลบออกเป็นกลุ่ม โมดูลอื่น ๆ จะไม่ถูกรวบรวมโดยค่าเริ่มต้นและต้องเปิดใช้งานอย่างชัดเจนหรือโดยการใช้คำหลักทั้งหมดหรือทั้งหมดจริงๆที่จะสามารถใช้ได้ เมื่อต้องการค้นหาว่าโมดูลใดที่ถูกคอมไพล์โดยค่าเริ่มต้นให้เรียกใช้.config - h หรือ. configure - ช่วยเหลือและดูที่ Optional Features สมมติว่าคุณสนใจ modexample1 และ modexample2 และคุณจะเห็นข้อความต่อไปนี้: จากนั้น modexample1 จะเปิดใช้งานตามค่าเริ่มต้นและคุณจะใช้ --disable-example1 เพื่อไม่คอมไพล์ modexample2 ถูกปิดใช้งานโดยค่าเริ่มต้นและคุณจะใช้ --enable-example2 เพื่อคอมไพล์ โมดูลการประมวลผลแบบมัลติ หรือ MPMs ใช้พฤติกรรมพื้นฐานของเซิร์ฟเวอร์ MPM เดียวต้องใช้งานอยู่เพื่อให้เซิร์ฟเวอร์สามารถทำงานได้ รายการ MPM ที่มีอยู่จะปรากฏในหน้าดัชนีโมดูล MPM สามารถสร้างเป็น DSO สำหรับการโหลดแบบไดนามิกหรือเชื่อมโยงแบบสถิตกับเซิร์ฟเวอร์และเปิดใช้งานโดยใช้ตัวเลือกต่อไปนี้: เลือก MPM เริ่มต้นสำหรับเซิร์ฟเวอร์ของคุณ ถ้า MPMs ถูกสร้างขึ้นเป็นโมดูล DSO (ดู --enable-mpms-shared) คำสั่งนี้จะเลือก MPM ซึ่งจะถูกโหลดลงในไฟล์คอนฟิกูเรชันค่าดีฟอลต์ มิฉะนั้นคำสั่งนี้จะเลือกเฉพาะ MPM ที่มีอยู่ซึ่งจะเชื่อมโยงแบบสถิตกับเซิร์ฟเวอร์ ถ้าตัวเลือกนี้ถูกละไว้ MPM เริ่มต้นสำหรับระบบปฏิบัติการของคุณจะถูกใช้ เปิดใช้รายการ MPM เป็นโมดูลที่ใช้ร่วมกันแบบไดนามิก หนึ่งในโมดูลเหล่านี้ต้องโหลดแบบไดนามิกโดยใช้คำสั่ง LoadModule MPM-LIST คือรายการ MPM ที่คั่นด้วยช่องว่างโดยล้อมรอบด้วยเครื่องหมายคำพูด ตัวอย่างเช่น: นอกจากนี้คุณสามารถใช้คำหลักพิเศษทั้งหมดได้ ซึ่งจะเลือก MPM ทั้งหมดที่สนับสนุนการโหลดแบบไดนามิกบนแพลตฟอร์มปัจจุบันและสร้างเป็นโมดูล DSO ตัวอย่างเช่นเมื่อต้องการเพิ่มโมดูลของบุคคลที่สามเพิ่มเติมให้ใช้ตัวเลือกต่อไปนี้: - with-module module-type โมดูลโมดูล, ชนิดโมดูล module-file เพิ่มโมดูลของบุคคลที่สามอย่างน้อยหนึ่งรายการลงในรายการโมดูลที่เชื่อมโยงแบบคงที่ โมดูลไฟล์ต้นฉบับโมดูลจะถูกค้นหาในไดเร็กทอรีย่อยโมดูลโมดูลของต้นไม้ต้นทางของเซิร์ฟเวอร์ Apache HTTP ของคุณ ถ้าไม่พบมีการกำหนดค่ากำลังพิจารณาแฟ้มโมดูลเป็นเส้นทางของแฟ้มแน่นอนและพยายามที่จะคัดลอกแฟ้มต้นฉบับลงในไดเรกทอรีย่อยชนิดโมดูล หากไม่มีไดเรกทอรีย่อยอยู่จะมีการสร้างและบรรจุข้อมูลด้วย Makefile. in มาตรฐาน ตัวเลือกนี้มีประโยชน์ในการเพิ่มโมดูลภายนอกขนาดเล็กที่ประกอบด้วยไฟล์ต้นทาง สำหรับโมดูลที่ซับซ้อนมากขึ้นคุณควรอ่านเอกสารผู้ขาย ถ้าคุณต้องการสร้างโมดูล DSO แทน APX ที่ใช้การเชื่อมต่อแบบคงที่ - เปิดโหมดการบำรุงรักษาเปิดการแก้ไขข้อบกพร่องและรวบรวมคำเตือนเวลาและโหลดโมดูลที่คอมไพล์ทั้งหมด --enable-mods-shared MODULE-LIST กำหนดรายการโมดูลที่จะเปิดใช้งานและสร้างเป็นโมดูลที่ใช้ร่วมกันแบบไดนามิก ซึ่งหมายความว่าโมดูลเหล่านี้ต้องโหลดแบบไดนามิกโดยใช้คำสั่ง LoadModule MODULE-LIST คือรายการ modulenames ที่คั่นด้วยช่องว่างล้อมรอบด้วยเครื่องหมายคำพูด ชื่อโมดูลจะได้รับโดยไม่ใช้ mod ก่อนหน้า ตัวอย่างเช่น: --enable-mods-sharedheaders เขียน dav นอกจากนี้คุณสามารถใช้ keyword พิเศษได้เลยครับ ทั้งหมด. มากที่สุดและน้อย ตัวอย่างเช่นจะรวบรวมโมดูลส่วนใหญ่และสร้างเป็นโมดูล DSO จะรวบรวมชุดพื้นฐานของโมดูลเท่านั้น ชุดค่าเริ่มต้นมีค่ามากที่สุด คำสั่ง LoadModule สำหรับโมดูลที่เลือกจะถูกสร้างขึ้นโดยอัตโนมัติในไฟล์คอนฟิกูเรชันหลัก โดยค่าเริ่มต้นคำสั่งเหล่านี้จะถูกแสดงความคิดเห็นออกยกเว้นโมดูลที่จำเป็นหรือเลือกอย่างชัดเจนโดยอาร์กิวเมนต์ configure --enable-foo คุณสามารถเปลี่ยนชุดของโมดูลที่โหลดโดยการเปิดใช้งานหรือยกเลิกการใช้งาน directive LoadModule ใน httpd. conf นอกจากนี้ยังสามารถใช้งานไดอะล็อก LoadModule สำหรับโมดูลที่สร้างขึ้นได้ทั้งหมดผ่านทางตัวเลือกการกำหนดค่า - enable-load-all-modules --enable-mods-static MODULE-LIST ตัวเลือกนี้จะทำงานคล้ายกับ --enable-mods-shared แต่จะเชื่อมโยงโมดูลที่กำหนดแบบสแตติก ซึ่งหมายความว่าโมดูลเหล่านี้จะมีอยู่เสมอในขณะที่รัน httpd ไม่จำเป็นต้องโหลด LoadModule --enable-modules MODULE-LIST ตัวเลือกนี้มีลักษณะเหมือน --enable-mods-shared และจะเชื่อมโยงโมดูลที่กำหนดให้แบบไดนามิก คำหลักพิเศษไม่มีการปิดใช้งานการสร้างโมดูลทั้งหมด - enable-v4-mapped อนุญาตซ็อกเก็ต IPv6 เพื่อจัดการการเชื่อมต่อ IPv4 - พอร์ตที่มีพอร์ตกำหนดพอร์ตที่ httpd จะฟัง หมายเลขพอร์ตนี้ใช้เมื่อสร้างไฟล์การกำหนดค่า httpd. conf ค่าเริ่มต้นคือ 80 - with-program-name กำหนดชื่อปฏิบัติการที่เป็นทางเลือก ค่าเริ่มต้นคือ httpd ตัวเลือกเหล่านี้ใช้ในการกำหนดแพคเกจตัวเลือก โดยทั่วไปคุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อกำหนดแพคเกจที่เป็นทางเลือก: - with-PACKAGE ARG ใช้แพคเกจ PACKAGE ค่าเริ่มต้นสำหรับ ARG คือใช่ - ไม่รวมแพคเกจอย่าใช้แพคเกจ PACKAGE นี่เป็นเช่นเดียวกับ - กับ - PACKAGE no. ตัวเลือกนี้มีให้โดย autoconf แต่ไม่มีประโยชน์มากสำหรับ Apache HTTP Server - with apr DIR FILE Apache Portable Runtime (APR) เป็นส่วนหนึ่งของการกระจายซอร์สโค้ด httpd และจะสร้างขึ้นโดยอัตโนมัติพร้อมกับเซิร์ฟเวอร์ HTTP ถ้าคุณต้องการใช้ APR ที่ติดตั้งไว้แล้วคุณต้องกำหนดค่าเส้นทางไปยังสคริปต์ apr-config คุณสามารถตั้งค่าเส้นทางสัมบูรณ์และชื่อหรือไดเรกทอรีไปยัง APR ที่ติดตั้งได้ apr-config ต้องอยู่ภายในไดเร็กทอรีนี้หรือไดเร็กทอรีย่อย - with apr-util DIR FILE โปรแกรมอรรถประโยชน์รันไทม์แบบพกพา Apache (APU) เป็นส่วนหนึ่งของการกระจายซอร์สโค้ด httpd และจะสร้างขึ้นโดยอัตโนมัติพร้อมกับเซิร์ฟเวอร์ HTTP ถ้าคุณต้องการใช้ APU ที่ติดตั้งไว้แล้วคุณต้องกำหนดค่าเส้นทางไปยังสคริปต์ apu-config คุณสามารถตั้งค่าเส้นทางสมบูรณ์และชื่อหรือไดเรกทอรีไปยัง APU ที่ติดตั้งไว้ apu-config ต้องอยู่ภายในไดเร็กทอรีนี้หรือไดเร็กทอรีย่อย - with-ssl DIR ถ้า modssl ถูกเปิดใช้งานให้กำหนดค่าการค้นหาสำหรับ OpenSSL ที่ติดตั้งไว้ คุณสามารถกำหนดไดเร็กทอรีเส้นทางไปยังชุดเครื่องมือ SSLTLS แทนได้ - with-z DIR กำหนดการค้นหาโดยอัตโนมัติสำหรับไลบรารี zlib ที่ติดตั้งไว้ถ้าการกำหนดค่าต้นทางของคุณต้องใช้หนึ่ง (เช่นเมื่อมีการเปิดใช้ moddeflate) คุณสามารถกำหนดเส้นทางไดเรกทอรีไปยังไลบรารีการบีบอัดแทนได้ คุณลักษณะหลายประการของ Apache HTTP Server ได้แก่ modauthndbm และ modrewrite ของ DBM RewriteMap ใช้ฐานข้อมูล keyvalue แบบง่ายๆสำหรับการค้นหาข้อมูลอย่างรวดเร็ว SDBM มีอยู่ใน APU ดังนั้นฐานข้อมูลนี้จึงพร้อมใช้งานอยู่เสมอ หากคุณไม่ได้ระบุเส้นทางไว้การกำหนดค่าจะค้นหาไฟล์รวมและไลบรารีของการติดตั้ง GNU DBM ในเส้นทางการค้นหาตามปกติหากต้องการระบุเส้นทางดังกล่าวให้ทำตามขั้นตอนต่อไปนี้: --with-gdbm path เส้นทางที่ชัดเจนจะทำให้การกำหนดค่ามองในเส้นทาง lib และเส้นทางรวมถึงไฟล์ที่เกี่ยวข้อง สุดท้ายเส้นทางอาจระบุพา ธ เฉพาะรวมและไลบรารีที่คั่นด้วยเครื่องหมายทวิภาค - ด้วยเส้นทาง ndbm เช่น - with-gdbm แต่จะค้นหาการติดตั้ง DBM ใหม่ - with berkeley-db path ชอบ - ด้วย - gdbm แต่จะค้นหาการติดตั้ง Berkeley DB ตัวเลือก DBM มีให้โดย APU และส่งผ่านไปยังสคริปต์การกำหนดค่า พวกเขาไม่มีประโยชน์เมื่อใช้ APU ที่ติดตั้งไว้แล้วโดย - with apr-util คุณสามารถใช้การใช้งาน DBM ได้มากกว่าหนึ่งชุดร่วมกับเซิร์ฟเวอร์ HTTP ของคุณ ประเภท DBM ที่เหมาะสมจะได้รับการกำหนดค่าภายในการกำหนดค่ารันไทม์ในแต่ละครั้ง --enable-static-support สร้างไบนารีการสนับสนุนที่เชื่อมโยงแบบสแตติก ซึ่งหมายความว่าจะมีการสร้างตัวประมวลผลแบบสแตนด์อะโลนด้วยไลบรารีที่จำเป็นทั้งหมดที่รวมเข้าด้วยกัน มิฉะนั้นไบนารีการสนับสนุนจะถูกเชื่อมโยงแบบไดนามิกโดยค่าเริ่มต้น --enable-suexec ใช้ตัวเลือกนี้เพื่อเปิดใช้ suexec ซึ่งช่วยให้คุณสามารถตั้งค่า uid และ gid สำหรับกระบวนการที่เกิดขึ้น อย่าใช้ตัวเลือกนี้เว้นแต่คุณจะเข้าใจถึงความหมายด้านความปลอดภัยทั้งหมดของการเรียกใช้ไบนารี suid บนเซิร์ฟเวอร์ของคุณ ตัวเลือกเพิ่มเติมในการกำหนดค่า suexec จะอธิบายไว้ด้านล่าง เป็นไปได้ที่จะสร้างไบนารีที่เชื่อมโยงแบบคงที่ของโปรแกรมการสนับสนุนชุดเดียวโดยใช้อ็อพชันต่อไปนี้: --enable-static-ab สร้างเวอร์ชันที่เชื่อมโยงแบบ stat ของ ab - static-checkgid สร้างแบบจำลองที่เชื่อมโยงกันของ checkgid --enable-static-htdbm สร้างเวอร์ชันที่เชื่อมโยงกันแบบสแตนด์อโลนของ htdbm --enable-static-htdigest สร้างเวอร์ชันที่เชื่อมโยงกันแบบสแตนด์อโลนของ htdigest --enable-static-htpasswd สร้าง htpasswd ที่เชื่อมโยงกับเวอร์ชัน statically --enable-static-logresolve สร้างเวอร์ชันที่เชื่อมโยงกันแบบ static ของ logresolve - rotable rotatelogs สร้างแบบ rotatelogs ที่เชื่อมต่อแบบสแตติก ใช้ตัวเลือกต่อไปนี้เพื่อปรับแต่งพฤติกรรมของ suexec ดูข้อมูลเพิ่มเติมที่การกำหนดค่าและติดตั้ง suEXEC - with-suexec-bin กำหนดเส้นทางไปยังไบนารี suexec ค่าเริ่มต้นคือ --sbindir (ดูการปรับค่าดีฟอลต์ของไดเรกทอรีการติดตั้ง) - with-suexec-caller กำหนดให้ผู้ใช้สามารถโทรหา suexec ได้ ควรเป็นเช่นเดียวกับผู้ใช้ที่ httpd ทำงานตามปกติ - with-suexec-docroot นี่กำหนดโครงสร้างไดเร็กทอรีที่อนุญาตให้มีการเข้าถึง suexec สำหรับ executables ค่าดีฟอลต์คือ --datadirhtdocs - with-suexec-gidmin กำหนดให้เป็น GID ต่ำสุดที่อนุญาตให้เป็นผู้ใช้เป้าหมายสำหรับ suexec ค่าดีฟอลต์คือ 100 - with-suexec-logfile ซึ่งกำหนดชื่อไฟล์ของไฟล์บันทึก suexec โดยค่าเริ่มต้น logfile มีชื่อว่า suexeclog และอยู่ใน --logfiledir - with-suexec-safepath กำหนดค่าของ PATH ตัวแปรสภาพแวดล้อมที่จะตั้งค่าสำหรับโพรเซสที่เริ่มต้นโดย suexec ค่าเริ่มต้นคือ usrlocalbin: usrbin: bin --with-suexec-userdir กำหนดไดเร็กทอรีย่อยนี้ภายใต้ไดเร็กทอรีผู้ใช้ที่มีไฟล์ปฏิบัติการทั้งหมดที่สามารถเข้าถึง suexec ได้ การตั้งค่านี้จำเป็นเมื่อคุณต้องการใช้ suexec ร่วมกับไดเร็กทอรีเฉพาะผู้ใช้ (ตามที่ได้รับจาก moduserdir) ค่าเริ่มต้นคือ publichtml - with-suexec-uidmin กำหนดค่านี้เป็น UID ต่ำสุดที่อนุญาตให้เป็นผู้ใช้เป้าหมายสำหรับ suexec ค่าเริ่มต้นคือ 100 - with-suexec-umask ตั้งค่า umask สำหรับโพรเซสที่เริ่มต้นโดย suexec ค่าเริ่มต้นคือการตั้งค่าระบบของคุณ ตัวแปรสภาพแวดล้อมที่เป็นประโยชน์บางอย่างอาจแทนที่ตัวเลือกที่กำหนดโดยการกำหนดค่าหรือช่วยให้สามารถค้นหาไลบรารีและโปรแกรมที่มีชื่อหรือตำแหน่งที่ไม่เป็นมาตรฐานได้ CC กำหนดคำสั่งคอมไพเลอร์ C ที่จะใช้สำหรับการคอมไพล์ CFLAGS ตั้งธงคอมไพเลอร์ C ที่คุณต้องการใช้สำหรับการคอมไพล์ CPP กำหนดคำสั่ง preprocessor C ที่จะใช้ CPPFLAGS ตั้งค่าสถานะ Preprocessor ของ CC เช่น - I includeir ถ้าคุณมีส่วนหัวในไดเร็กทอรีที่ไม่ใช่มาตรฐาน LDFLAGS ตั้งค่าสถานะของตัวเชื่อมโยงเช่น - L libdir ถ้าคุณมีไลบรารีในไดเรกทอรีที่ไม่ได้มาตรฐาน libdir หมายเหตุ: นี่ไม่ใช่ส่วน QampA ความคิดเห็นที่วางไว้ที่นี่ควรจะชี้ไปที่คำแนะนำในการปรับปรุงเอกสารหรือเซิร์ฟเวอร์และผู้ดูแลระบบของเราอาจถูกนำออกอีกครั้งหากมีการนำไปใช้หรือถือว่าเป็นหัวข้อ invalidoff คำถามเกี่ยวกับวิธีจัดการเซิร์ฟเวอร์ Apache HTTP ควรถูกนำไปใช้ที่ช่อง IRC, httpd, บน Freenode หรือส่งไปยังรายชื่อผู้รับจดหมายของเรา Copyright 2017 มูลนิธิซอฟต์แวร์ Apache ได้รับสิทธิการใช้งานภายใต้สัญญาอนุญาต Apache เวอร์ชัน 2.0 ติดตั้งแอปพลิเคชันเช่น. fdisk แต่ต้องใช้ไลบรารีสำหรับการดำเนินการ ฉันกำลังมองหา utilitytool ซึ่งจะช่วยให้ฉันเพื่อสร้างไบนารีคงที่จากไบนารีติดตั้งแล้ว เพื่อให้ฉันสามารถใช้งานได้ทุกที่ เครื่องมือที่น่าเชื่อถือเพียงอย่างเดียวที่ฉันพบคือ ErmineLight จากที่นี่ แต่นี่เป็นเครื่องใช้ร่วมกัน มีซอฟต์แวร์โอเพนซอร์สใดที่ใช้ได้สำหรับ fdisk EDIT แบบเดียวกันหรือไม่ตัวอย่างเช่น ฉันส่วนใหญ่ทำงานเวลาใน LFS ดังนั้นถ้าฉันต้องใช้โปรแกรมอรรถประโยชน์ใด ๆ ฉันต้องทำตามขั้นตอนเป็นเพียงเพื่อประหยัดเวลาฉันกำลังมองหาโซลูชันที่ฉันจะทำให้ไบนารีคงที่จาก debian หรือ จาก fedora หรือจาก distrbution อื่น ๆ ลองบน LFS และถ้าทำงานได้ดีหรือตามความต้องการของฉันฉันจะไปกับ source code สำหรับรวบรวม ถาม 2 พ. ย. นี้เวลา 18:38 กัน ดูเหมือนว่าเป็นความคิดที่ไม่ดีมาก แต่เป็นไปได้ เนื่องจาก fdisk เป็นโอเพนซอร์สเพียงแค่คว้ามาดูที่ Makefile คุณควรหาตัวเลือกที่จะส่งผ่านไปยัง gcc ที่รวบรวม ฉันไม่ใช่ guru CC แต่เท่าที่ฉันรู้ว่าการสร้างไบนารีแบบสแตติกที่เชื่อมโยงจากไบนารีแบบไดนามิกที่มีอยู่เป็นไปไม่ได้ ถ้าคุณต้องการใช้ทุกที่ Id แนะนำให้ใช้การกระจายการบำรุงรักษาเล็ก ๆ ที่เริ่มภายในไม่กี่วินาทีและให้คุณแก้ไขทุกอย่าง มันทำให้รู้สึกมากขึ้นสำหรับฉันเพราะคุณอาจต้องการปรับเปลี่ยนดิสก์ที่ใช้ติดตั้ง LinuxUNIX ของคุณ ลิงค์ทำงานสำหรับฉัน หน้านี้มีจำนวนข้อผิดพลาดเกี่ยวกับข้อผิดพลาดในการทำงานที่คุณอาจคาดหวังจากการทำงานของโปรแกรมเมอร์มืออาชีพมากกว่าที่คุณคาดหวังจากเว็บไซต์ระดับมืออาชีพซึ่งน้อยกว่าที่คุณคาดหวังจากอีเมลฟิชชิ่ง เกี่ยวกับการโพสต์ข้างต้นมาคิดของมัน ดูเหมือนว่าน่าสงสัยว่าผู้ใช้แบรนด์รายนี้จะเข้าร่วม Stack Exchange ในเวลาเพียงเพื่อโพสต์ลิงก์ไปยังสิ่งที่ดูเหมือนจะเป็นเว็บไซต์ใหม่ n-gem G-Man 27 ส. ค. 52 เวลา 22:58 น
No comments:
Post a Comment