เปลี่ยนโฟลเดอร์รูทเว็บ htdocs ของ XAMPP เป็นอีกโฟลเดอร์หนึ่ง


18

ฉันกำลังพยายามเปลี่ยนXAMPPไดเรกทอรีเริ่มต้นของเว็บรูทเป็นไดเรกทอรี/opt/lampp/htdocsอื่นที่/home/me/Dropbox/public_htmlไม่สำเร็จ

ฉันแก้ไขไฟล์แล้ว /opt/lampp/etc/httpd.conf

# old line: DocumentRoot "/opt/lampp/htdocs"
DocumentRoot "/home/me/Dropbox/public_html"

#...etc...

# old line: <Directory "/opt/lampp/htdocs">
<Directory "/home/me/Dropbox/Work/public_html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# etc...

ฉันทำสิ่งนี้ตามที่กล่าวไว้ในบทความนี้: การใช้ Ubuntu One เพื่อซิงโครไนซ์ htdocs หรือไม่

จากนั้นฉันเริ่มต้นใหม่Apacheและฉันได้รับข้อผิดพลาดการอนุญาต403ในทุก ๆ หน้าที่ฉันเรียกด้วยเว็บเบราว์เซอร์

755ดังนั้นผมจึงได้เปลี่ยนโฟลเดอร์และไฟล์ที่ได้รับอนุญาตให้

ฉันทำสิ่งนี้ตามที่กล่าวไว้ในบทความนี้:
ฉันควรตั้งค่าการอนุญาตไฟล์ใดบนเว็บรูท

ปัญหายังคงเหมือนเดิมฉันมี403ข้อผิดพลาดในทุกหน้าที่ฉันพยายามเข้าถึงด้วยเว็บเบราว์เซอร์

ฉันมีปัญหาเดียวกันในการใช้MacXAMPP

ดังนั้น everythig /opt/lampp/htdocsทำงานได้ดีถ้าโฟลเดอร์ยังคงเดิม

ฉันจะเปลี่ยนอย่างถูกต้องได้อย่างไร


ฉันหาโฟลเดอร์ opt ไม่พบมันอยู่ในโฟลเดอร์อื่นหรือบางอย่าง? ฉันค้นหาโฟลเดอร์การติดตั้ง xampp เกือบทั้งหมดแล้วและหาไม่พบโปรดช่วยด้วย :(

ฉันได้ทำมันในการUbuntuกระจายคุณอาจใช้ distro อื่นหรือไม่? เริ่มจากโฟลเดอร์รูท/ฉันจะหาoptโฟลเดอร์นั้น
vitto

คำตอบ:


15

เปิด/opt/lampp/etc/httpd.conf การเปลี่ยนแปลงไม่มีใครและกลุ่ม nogroup

<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User nobody
Group nogroup
</IfModule>

ชื่อผู้ใช้และกลุ่มของคุณ


2

มีปัญหาเดียวกันและนี่คือสิ่งที่ฉันทำ:

เรียกใช้คำสั่งนี้เพื่อหยุด xampp:

sudo /opt/lampp/lampp stop

เปิด /opt/lampp/etc/httpd.conf

เปลี่ยนyour_folderเป็นโฟลเดอร์ที่คุณต้องการใช้

 DocumentRoot "/home/username/your_folder"
 <Directory "/home/username/your_folder">

เปลี่ยนUser& Groupค่าจากdaemonเป็น:

User nobody
Group nogroup

ตั้ง chmod เป็นyour_folderด้วยคำสั่งนี้

sudo chmod 777 /home/username/your_folder

บันทึกไฟล์และเริ่ม xampp ด้วยคำสั่งนี้:

sudo /opt/lampp/lampp start

เปิดเบราว์เซอร์ของคุณและป้อน URL นี้:

http://localhost/your_folder/

เสร็จแล้วหวังว่านี่จะช่วยได้


1

ปัญหาเกิดขึ้นกับประเภทกลุ่มผู้ใช้ในhttpd.confไฟล์ที่ต้องตั้งค่าstaffและจากนั้นฉันไม่จำเป็นต้องเปลี่ยนการอนุญาตของโฟลเดอร์ในโฟลเดอร์ที่ฉันต้องการใช้เป็นเว็บรูท


1

หากคุณกำลังทำเช่นนี้เพื่อให้คุณสามารถสร้างไฟล์ในโฟลเดอร์ htdocs เพียงแค่นำทางไปยัง opt / lampp แล้วเปิดใน terminal และเขียน

sudo chmod 777 htdocs /

แค่นั้นแหละ!


0

คุณสามารถสร้างลิงค์สัญลักษณ์

ln -s /home/username/public_html/ /opt/lampp/yoursymlink 

ด้วยชื่อผู้ใช้ของคุณ "~ ชื่อผู้ใช้" เป็นลิงก์สัญลักษณ์เพื่อให้คุณสามารถเก็บตำแหน่ง URL เดิมไว้ได้

localhost/~username สำหรับไฟล์เช่นถ้าคุณใช้เซิร์ฟเวอร์ Apache ปริยายและไม่ใช่ XAMPP


0

เพิ่งแก้ไขได้โดยทำตามขั้นตอนการร้อง:

  1. ก่อนติดตั้ง xampp โดยทำตามขั้นตอน

    $ sudo cd Downloads && sudo chmod a+x ./your-downloaded-xampp-file.run && sudo ./your-downloaded-xampp-file.run
    
  2. เปลี่ยนเจ้าของไฟล์ของ / opt / lampp directory ชื่อผู้ใช้ควรเป็นชื่อผู้ใช้ของชื่อเอกสารของคุณเอง

    sudo chown -hR  username:root /opt/lampp
    
  3. แก้ไข /opt/lampp/etc/httpd.conf

    sudo gedit /opt/lampp/etc/httpd.conf
    
  4. แก้ไขเส้นทางของเอกสารของคุณไปยัง windows documentroot และบรรทัดต่อไปนี้

    <IfModule unixd_module>
       User nobody
       Group nogroup
    </IfModule>
    
  5. รีสตาร์ท xampp และคุณจะพบข้อผิดพลาดที่ต้องห้ามได้หายไป


0

พบปัญหาเดียวกันภายใต้ linux 18.3 ไม่มีการทำงานใด ๆ ข้างต้นตรงตามที่อธิบายไว้ แต่ชุดค่าผสมต่อไปนี้ทำงานได้:

ในไฟล์ /opt/lampp/etc/httpd.conf ฉันทำการเปลี่ยนแปลงต่อไปนี้:

แทนที่:

    <IfModule unixd_module>
    User daemon 
    Group daemon
    </IfModule>

โดย:

    <IfModule unixd_module>
    User myusername 
    Group myusername
    </IfModule>

และเพิ่มเติมลงแทน:

    DocumentRoot "/opt/lampp/htdocs"
    <Directory "/opt/lampp/htdocs">

โดย

    DocumentRoot "/home/myusername/webdir" 
    <Directory "/home/myusername/webdir"

ดังนั้น "myusername" คือชื่อผู้ใช้ linux ของฉันและ "webdir" เป็นชื่อไดเรกทอรีในไดเรกทอรีบ้านของฉันซึ่งจัดเก็บไฟล์ php ไว้

ในเทอร์มินัลหยุด lampp ก่อนบันทึกไฟล์เริ่มใหม่อีกครั้ง ใน localhost ของเบราว์เซอร์จะชี้ไปที่ "webdir"


-1

ในรูปแบบ NTFS คุณไม่สามารถตั้งค่าการอนุญาตของโฟลเดอร์ได้ เปิด/opt/lampp/etc/httpd.confเปิด

แก้ไขชื่อ
ผู้ใช้คอมพิวเตอร์
กลุ่มชื่อคอมพิวเตอร์

และหลังจากนั้นคุณสามารถเข้าถึงลิงก์สัญลักษณ์ใน htdocs


1
มีการNTFS formatบอกในคำถามที่ไหน ส่วนที่เหลือของคำตอบดูเหมือนจะไม่ตอบคำถามของ OP
saji89

-2

เพียงสร้างไฟล์ดัชนีในhtdocsโฟลเดอร์ใหม่ของคุณ


คุณสามารถแก้ไขสิ่งนี้เพื่อให้รายละเอียดอธิบายวิธีการดังกล่าวได้หรือไม่?
Eliah Kagan

ไม่เข้าใจสิ่งที่เขาพยายามอธิบายเพียงหนึ่งบรรทัด
nmrony

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