ฉันจะสร้างหน้าเว็บในโฮมไดเร็กตอรี่ของฉันและมีเว็บเซิร์ฟเวอร์ให้บริการในเว็บเบราว์เซอร์ของฉันได้อย่างไร?


9

ฉันเพิ่งติดตั้ง Apache เว็บเบราว์เซอร์ใน Debian Squeeze ของฉัน (ใช้คำสั่งtaskselและเลือก[ ] Web server) ตอนนี้ฉันได้รับมันเพื่อเริ่มต้นsudo /etc/init.d/apache2 startจากนั้นฉันไปที่เบราว์เซอร์และคีย์http://localhostและหน้า "ใช้งานได้! " ปรากฏขึ้นแสดงว่าฉันได้ติดตั้งและเริ่มต้นเว็บเซิร์ฟเวอร์เรียบร้อยแล้ว

ตอนนี้ฉันรู้แล้วว่าไฟล์ HTML สำหรับหน้า "ใช้งานได้! " อยู่ในนั้น/var/wwwและฉันเชื่อว่าหากฉันสร้างหน้าใหม่ขึ้นมาฉันต้องใส่มันลงในสารบบนี้ การสร้างหน้าจะง่าย แต่ในการทำเช่นนั้นฉันต้องออกsudoคำสั่งทุกครั้งที่ฉันสร้าง / แก้ไขไฟล์ภายใต้/var/wwwไดเรกทอรี

ฉันต้องการจะรู้วิธีสร้างไดเรกทอรีในหน้าแรกของฉันได้อย่างไร~/html/test/index.htmlและแสดงหน้านั้นเมื่อฉันป้อนที่อยู่http://localhost/html/testในที่อยู่เบราว์เซอร์ของฉัน

คำตอบ:


6

ดังที่ Ulrich กล่าวคุณสามารถทำได้โดยเปิดใช้งานuserdirโมดูล

บน Debian สามารถทำได้โดยใช้a2enmodยูทิลิตีซึ่งเปิดใช้งานหรือปิดใช้งานโมดูล Apache man a2enmodดู

ในกรณีนี้คุณเพียงแค่ต้องเรียกใช้

sudo a2enmod userdir

จากนั้นรีสตาร์ทเซิร์ฟเวอร์ Apache เพื่อให้การเปลี่ยนแปลงมีผล โปรดทราบว่าโมดูล userdir นั้นอยู่ใน Apache พื้นฐานดังนั้นคุณไม่จำเป็นต้องติดตั้งอะไรเพิ่มเติม การตั้งค่าสำหรับการอ้างอิง userdir /etc/apache2/mods-available/userdir.confอยู่ใน

ทั้งหมดa2enmodจะทำที่นี่คือการสร้างการเชื่อมโยงสัญลักษณ์จากไดเรกทอรีไปยังแฟ้ม/etc/apache2/mods-enabled /etc/apache2/mods-available/{userdir.conf/userdir.load}คุณสามารถทำได้ด้วยตนเอง กล่าวคือ

faheem@orwell:/etc/apache2/mods-enabled$ ls -la userdir.*
lrwxrwxrwx 1 root root 30 Feb  6 03:11 userdir.conf -> ../mods-available/userdir.conf
lrwxrwxrwx 1 root root 30 Feb  6 03:11 userdir.load -> ../mods-available/userdir.load

แล้วใส่สิ่งใดเว็บที่คุณต้องการให้อยู่ภายใต้ที่มีอยู่~/public_htmlแล้วก็ควรจะ acccessible http://servername/~usernameจาก


1
ถึงแม้ว่า Ulrich จะตอบแบบนี้เหมือนกัน แต่ฉันก็เลือกคำตอบนี้เพราะมันมีรายละเอียดมากกว่า
Eric

6

คุณอาจกำลังมองหาmod_userdir : "โมดูลนี้อนุญาตให้เข้าถึงไดเรกทอรีเฉพาะผู้ใช้โดยใช้http://example.com/~user/ไวยากรณ์"

อย่ากลัวที่จะเล่นซอกับการตั้งค่าเพียงแค่ทำการแบ็คอัพไฟล์กำหนดค่าและตรวจสอบให้แน่ใจว่าไฟร์วอลล์ของคุณบล็อกอาปาเช่กับโลกภายนอก


1
ขอบคุณ @Ulrich Schwarz ฉันคิดว่านี่คือสิ่งที่ฉันต้องการ ดังนั้นฉันจะตั้งค่านี้ได้อย่างไร ฉันยังไม่คุ้นเคยกับ Apache (ติดตั้งตอนนี้เท่านั้น) และฉันไม่รู้วิธีดำเนินการตามคำแนะนำของคุณ
Eric

2

ส่วนตัวผมเคยใช้การเชื่อมโยงสัญลักษณ์ขึ้นอยู่กับโครงการอย่างใดอย่างหนึ่งที่จะมีการเชื่อมโยงภายใน/var/www/หรือ/var/wwwตัวเองถูกเชื่อมโยงไปยังโฟลเดอร์ในไดเรกทอรีบ้านเหมือง (ตัวอย่างเช่น: ~/projects/www) ด้วยวิธีนี้ฉันสามารถกำจัดตัวละคร "~" บางครั้งมันก็มีประโยชน์สำหรับฉันเมื่อฉันต้องการที่จะแสดงบางสิ่งบางอย่างให้กับผู้ชมอื่น ๆ (ผ่านสิ่งที่ชอบ:) http://253.153.87.231/page.htmlและคนที่ไม่คุ้นเคยกับแป้นพิมพ์ดังนั้นเขาจึงไม่สามารถหาสัญลักษณ์ "~" จากแป้นพิมพ์(- kinda เช่นมองหากุญแจสำคัญในการระบุว่า "ใด ๆ")

Faheem และ Ulrich อาจเป็นคำตอบที่ดีที่สุดและเป็นที่รู้จักมากที่สุดสำหรับคุณอยู่แล้ว (อย่างน้อยเมื่อมีการรักษาความปลอดภัย)


นี่คือสิ่งที่ฉันต้องการจะทำมันทำงานได้ดี? คุณสามารถกำหนดไวยากรณ์เพื่อสร้างลิงก์เหล่านั้นได้หรือไม่
Menasheh

0

ตอนนี้คุณสามารถทำได้โดยการเปลี่ยนเว็บรูท แต่คุณไม่ต้องการและนี่คือเหตุผล:

หากผู้โจมตีพบช่องโหว่ใน Apache หรือในรหัสของคุณเขาอาจสามารถเข้าถึงเว็บรูทได้ สิ่งใดเป็นของคุณทั้งหมด ...

โดยทั่วไปแล้วเว็บรูทจะได้รับการป้องกันพร้อมกับตัวควบคุมเพื่อหยุดการโจมตี บ้านของคุณอาจจะไม่ค่อยปลอดภัยเท่าไหร่นัก

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