โดเมนย่อยบน apache ที่มี DNS ภายนอก


0

ก่อนอื่นฉันจะอธิบายการตั้งค่าของฉันหลังจากนั้นปัญหาของฉันและคำถามสุดท้ายของฉันสำหรับการแก้ปัญหา

ฉันมีโซลูชันเซิร์ฟเวอร์ DNS ภายนอก (ไม่ได้ใช้ DNS ใน UBUNTU ของฉัน) ที่ฉันควบคุม DNS หลักของฉันทั้งหมดและอื่น ๆ ฉันมีระเบียน A ของฉันที่จัดตั้งขึ้นเช่นนี้:

localhost.itaportalen.dk    127.0.0.1   43200   
itaportalen.dk  5.196.14.205    43200

นอกจากนี้ฉันมีCNAME:

.itaportalen.dk itaportalen.dk 43200

ฉันมีเซิร์ฟเวอร์ UBUNTU ที่มี apache2 ทำงานอยู่และเว็บไซต์ของฉันอยู่ใน/var/www/html- นั่นใช้งานได้ดี

ฉันได้ติดตั้งMySQLและใช้VSFTPDงานได้ดีเช่นกัน

ปัญหาของฉันที่ฉันต้องการจะเรียกใช้เว็บไซต์ของผู้ใช้หลายคนและผู้ใช้ทุกคนควรจะมีการsubdomain itaportalen.dkเมื่อฉันสร้างผู้ใช้เช่น "ทดสอบ" ผู้ใช้นั้นควรมีโฮมไดเรกทอรีตามโดเมนย่อยที่test.itaportalen.dkมีการเข้าถึง FTP ไปยังโฟลเดอร์นั้นเท่านั้น (และไดเรกทอรีย่อยที่ผู้ใช้อาจสร้าง)

คำถามของฉันมีดังนี้:

ฉันจะวางโฟลเดอร์สำหรับโดเมนย่อยtest.itaportalen.dkเพื่อที่CNAMEจะตรงไปยังโฟลเดอร์นั้นได้อย่างไร ฉันไม่สามารถใช้งานได้กับ UBUNTU และ APACHE2

ฉันมีchrootedผู้ใช้ของฉันเพื่อให้พวกเขาเห็นเฉพาะเจ้าบ้านของพวกเขา (ในกรณีนี้คือโดเมนย่อย) วิธีที่ถูกต้องในการให้สิทธิ์การเข้าถึง RW เพื่อให้พวกเขาสามารถอัปโหลดไฟล์ไปยังเว็บไซต์ของพวกเขาได้อย่างไร

ฉันรู้ว่านี่เป็นสิ่งพื้นฐานที่สวย แต่ฉันไม่สามารถใช้งานได้กับการติดตั้ง UBUNTU นี้


คำตอบสำหรับคำถามของคุณ 1 คือคุณไม่สามารถทำได้ สำหรับคำถามที่ 2 ของคุณคุณสามารถทำสิ่งต่างๆผ่านทางโฮสต์เสมือน apache แต่ทำไมต้องกังวล ทำไมไม่เพียงทำตามวิธีที่ตั้งค่าไว้ให้เรียบร้อย itaportalen.dk/~testสำหรับการทดสอบผู้ใช้ จากนั้นการทดสอบจะสร้างและใช้ไดเรกทอรี public_html เมื่อคุณเปิดใช้งานข้อมูลผู้ใช้
Doug Smythies

ขอบคุณสำหรับความคิดเห็นของดั๊ก เป็นข้อมูลเฉพาะสำหรับ apache บน Ubuntu หรือไม่ที่ * ใน cname จะไม่เปลี่ยนเส้นทางไปยังโดเมนย่อยที่ถูกต้อง? มีมันทำงานอย่างนั้นภายใต้ระบบปฏิบัติการอื่น ฉันไม่แน่ใจว่าฉันเข้าใจคำตอบของคุณสำหรับคำถามที่สอง คุณช่วยอธิบายฉันหน่อยได้ไหม?
Bjarke Bundgaard

ไม่มันไม่เฉพาะเจาะจงกับ Apace บน Ubuntu DNS ไม่สามารถนำไปยังโฟลเดอร์เฉพาะที่อยู่ IP ได้ มันสามารถชี้ไปที่ที่อยู่ IP เท่านั้น ฉันไม่ทราบว่าคุณกำลังทำอะไรอยู่ภายใต้ระบบปฏิบัติการอื่น คำถามที่สอง: ฉันแค่บอกว่าสวยมากโดยค่าเริ่มต้นสิ่งที่มีการติดตั้งเช่นผู้ใช้แต่ละคนมี URL เริ่มต้นแล้ว sudo a2enmod userdirทั้งหมดที่คุณต้องทำคือการเปิดใช้งานได้
Doug Smythies

สวัสดี Doug และขอบคุณสำหรับการตอบกลับของคุณ ก่อนหน้านี้ฉันมีการตั้งค่า CNAME เช่นนี้ (ด้วยการแก้ไขระเบียน) * .domain.dk บน IIS ของฉันฉันเพิ่งสร้างโดเมนย่อยบนเว็บเซิร์ฟเวอร์และถ้ามีการป้อนโดเมนย่อยในเว็บเบราว์เซอร์จะถูกส่งไปยังโดเมนย่อยที่สร้างขึ้นบน IIS ฉันไม่ทราบว่า IIS ทำ DNS บางอย่างที่ฉันไม่ทราบหรือไม่
Bjarke Bundgaard

คำตอบ:


0

โดยค่าเริ่มต้น apache มีการตั้งค่าให้ผู้ใช้แต่ละคนมี URL ของตัวเองสิ่งที่คุณต้องทำคือเปิดใช้งาน:

sudo a2enmod userdir

แล้วบอกว่าผู้ใช้สามารถเข้าถึง test01 จะผ่านและไดเรกทอรีของพวกเขาจะitaportalen.dk/~test01 /home/test01/public_htmlอย่างไรก็ตามฉันรวบรวมคุณไม่ต้องการที่จะทำอย่างนั้น

ตัวอย่างเช่นสมมติว่าชื่อผู้ใช้คือ test01, test02, test03, test04 เพิ่มระเบียน A (หรือระเบียน CNAME หากคุณต้องการ) ลงในไฟล์โซน DNS ของคุณ:

epson-wp2       IN      A       192.168.111.111
s15             IN      A       192.168.111.112
bla             IN      A       192.168.111.112
test01          IN      A       192.168.111.112
test02          IN      A       192.168.111.112
test03          IN      A       192.168.111.112
test04          IN      A       192.168.111.112
s16             IN      A       192.168.111.113

ทั้งหมดชี้ไปที่ที่อยู่ IP เดียวกัน ในกรณีของคุณ 5.196.14.205 จากนั้น/etc/apache2/sites-availableคุณจะต้องสร้างไฟล์ใหม่ 4 ไฟล์ เริ่มต้นด้วยการคัดลอกไฟล์เริ่มต้น:

sudo cp 000-default.conf test01.conf

แก้ไขไฟล์ใหม่เช่น:

<VirtualHost *:80>
    ServerName test01.smythies.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/test01

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/html/test01>
            Options Indexes FollowSymLinks MultiViews Includes
            AllowOverride All
            ...

/var/www/htmlซึ่งเราได้เลือกที่จะให้แต่ละไดเรกทอรีภายใต้ คุณทำสิ่งที่คุณต้องการ อย่างไรก็ตามคุณอาจจำเป็นต้องแก้ไข/etc/apache2/apache2.confขึ้นอยู่กับตำแหน่งที่คุณค้นหาไดเรกทอรี ทำซ้ำสำหรับผู้ใช้อื่น จากนั้นเปิดใช้งานแต่ละโฮสต์เสมือน:

sudo a2ensite test01
sudo a2ensite test02
sudo a2ensite test03
sudo a2ensite test04

เริ่มต้นใหม่:

sudo service apache2 restart

ฉันทำสิ่งนี้บนเซิร์ฟเวอร์ทดสอบภายในของฉันและทำงานได้ตามที่คาดไว้ ฉันใช้Ubuntu Serverguideเป็นข้อมูลอ้างอิงเท่านั้น

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