วิธีเพิ่มไดเรกทอรีที่กำหนดเองเช่น phpmyadmin


11

เนื่องจากความรู้ของฉันเกี่ยวกับapacheมีน้อย ฉันต้องการให้มันเติบโตขึ้นดังนั้นฉันจึงมีประสบการณ์มากขึ้นกับ LAMP คำถามยอดนิยมของฉันสำหรับวันนี้คือ:

วิธีเพิ่มไดเรกทอรีที่กำหนดเองไปยังเว็บเซิร์ฟเวอร์ (เช่น phpmyadmin)?

เป้าหมายของฉันคือการสร้างที่อยู่ที่กำหนดเองด้วยเว็บไซต์ที่กำหนดเองภายใน สมมติว่าฉันมีไดเรกทอรีที่กำหนดเองของฉันที่: /media/my/web/portal1และฉันต้องการโหลดเมื่อลูกค้าโทร

http://localhost/myportal1 at webbrowser. 

คุณช่วยบอกรายการขั้นตอนที่มีคำอธิบายไม่กี่คำได้ไหม

คำตอบ:


26

แก้ไขไฟล์กำหนดค่า Apache ของคุณและเพิ่มนามแฝงคำสั่ง ตัวอย่างเช่นลองใช้ไฟล์เริ่มต้น

sudo -e /etc/apache2/sites-available/default

สร้างนามแฝงของคุณโดยเพิ่มหัวข้อในVirtualHost directive:

Alias /database/ "/usr/share/php5/phpmyadmin/"
<Directory "/usr/share/php5/phpmyadmin/">
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3: 
    Require all granted
</Directory>

บันทึกและรีสตาร์ท: sudo /etc/init.d/apache2 restart

หรือสำหรับการอ้างอิงอื่น ๆ :

sudo -e /etc/apache2/sites-available/default

และเนื้อหา ...

Alias /myportal1/ "/media/my/web/portal1/"
<Directory "/media/my/web/portal1/">
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3: 
    Require all granted
</Directory>

บันทึกและรีสตาร์ท: sudo /etc/init.d/apache2 restart

เพิ่มคำสั่งเพิ่มเติมภายในคำสั่งไดเรกทอรีเช่น

Options Indexes FollowSymLinks 

ดูhttp://httpd.apache.org/docs/2.2/mod/core.html#directory

นั่นคือสิ่งที่คุณเป็น


ฉันคิดว่ามันเพียงพอที่จะรีโหลด apache หลังจากทำการเปลี่ยนแปลงเหล่านั้นหรือไม่
Jo-Erlend Schinstad

โอ้ - ใช่ ... ขอบคุณ Jo-Erland Schinstad

ขอบคุณคริสโตเฟอร์! นั่นคือสิ่งที่ฉันกำลังมองหา! :)
Adrian K.

ฉันเพิ่มบรรทัดนี้ insde ส่วน <Directory> เพื่อป้องกันข้อผิดพลาดที่ต้องห้ามหวังว่าการแก้ไขจะได้รับการยอมรับในเร็ว ๆ นี้: ต้องการสิทธิ์ทั้งหมด
Richard

3
ไม่จำเป็นต้องต่อท้ายสแลชต่อท้ายในชื่อนามแฝง มันบังคับให้ผู้ใช้พิมพ์อย่างเคร่งครัดไปยัง URL ในกรณีเช่นนี้ Alias ​​/ myportal1 นอกเหนือจาก Alias ​​/ myportal1 / หมายเหตุขาดเครื่องหมายทับจบ
Gilberto Albino

6

ทางเลือกที่ง่ายกว่าคือการสร้างลิงค์นุ่มนวลจากรูทเอกสาร ตัวอย่างเช่นหาก root ของเอกสารคือ "/ var / www" (ค่าเริ่มต้นในระบบ Linux ส่วนใหญ่) คำสั่งต่อไปนี้จะทำการหลอกลวง:

sudo ln -s /media/my/web/portal1 /var/www/myportal1

ใช้งานได้ทันที - คุณไม่จำเป็นต้องโหลดเซิร์ฟเวอร์ Apache อีกครั้ง


1

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

ประการที่สองเพื่อตั้งค่าเว็บไซต์ที่ใช้ไดเรกทอรีนี้เป็นบ้านคุณสร้างเว็บไซต์ไฟล์เช่น / etc / apache2 / sites-available / your-site นี่เป็นส่วนหนึ่งของสิ่งที่เรียกว่า vhosting มีสองประเภทแตกต่างกัน หนึ่งอันขึ้นอยู่กับชื่อ (ชื่อโดเมน) และอีกอันอิงตาม IP การตั้งค่าที่พบมากที่สุดคือการใช้ vhosts ตามชื่อ คุณสามารถอ่านเพิ่มเติมได้ที่นี่: http://httpd.apache.org/docs/2.2/vhosts/


ขอบคุณสำหรับการอ้างอิง ฉันจะขุดลงไปอย่างแน่นอน! :)
Adrian K.

0

ง่ายมากในสองบรรทัด:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

หลังจาก

เพียงแก้ไขไฟล์ "phpmyadmin.conf"

pico /etc/apache2/conf.d/phpmyadmin.conf

และเปลี่ยนเป็น 'loool' หรืออะไรก็ได้ :)

Alias /loooool /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>

SetEnvIfNoCase User-Agent "^ZmEu" bad_bot
SetEnvIfNoCase User-Agent "^BackDoorBot" bad_bot
SetEnvIfNoCase user-agent "^BlackWidow" bad_bot 
SetEnvIfNoCase User-Agent "^BotALot" bad_bot

หลังจาก Apache reload นี้ทั้งหมด: D

service apache2 reload

tadaaa: D ciao :)

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