ฉันจะทำให้ไดเรกทอรีผู้ใช้ของฉันทำงานเพื่อการแบ่งปันทางเว็บได้อีกครั้งได้อย่างไร


26

ฉันเปิดใช้งานการแบ่งปันเว็บใน Lion และเว็บไซต์ที่http://localhost/~userอยู่ที่ไหนuserไดเรกทอรีผู้ใช้ของฉันอยู่ที่ไหน เมื่อฉันอัพเกรดเป็น Mountain Lion การแชร์เว็บ (Apache) ยังคงเปิดใช้งานอยู่และฉันสามารถไปที่ localhost และรับ "มันใช้งานได้!" หน้าเว็บเริ่มต้น แต่ฉันไม่สามารถเข้าถึงหน้าผู้ใช้ของฉันได้อีกต่อไป ข้อผิดพลาดคือ

พระราชวังต้องห้าม

คุณไม่ได้รับอนุญาตให้เข้าถึง / ~ ผู้ใช้ / บนเซิร์ฟเวอร์นี้

ฉันจะเปิดใช้งานหน้าเว็บไดเรกทอรีผู้ใช้ของฉันได้อย่างไร

คำตอบ:


18

นี่คือวิธีที่คุณสามารถเปิดใช้งานหน้าเว็บอีกครั้งด้วยบรรทัดคำสั่งโดยใช้ Terminal

ก่อนอื่นให้คัดลอกและวางลงในเทอร์มินัล คุณอาจต้องกดenterหลังจากวางเพื่อเรียกใช้ มันจะถามรหัสผ่านของคุณเพราะมันจะเพิ่มไฟล์ไปยังไดเรกทอรีระบบของคุณ

USER_DIR=$(basename $(echo ~))
sudo bash -c "cat > /etc/apache2/users/$USER_DIR.conf" <<TEXT
<Directory "/Users/$USER_DIR/Sites">
     Options Indexes MultiViews
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>
TEXT

จากนั้นรันคำสั่งนี้เพื่อรีสตาร์ทเว็บเซิร์ฟเวอร์:

sudo apachectl restart

ขออภัยที่ฉันทำผิดคุณต้องการชื่อไฟล์ conf เช่นกัน อย่างไรก็ตาม $ (basename ~) ควรใช้ได้เช่นกัน
nohillside

1
ฉันทำอะไรที่แตกต่างจากนี้เล็กน้อย ขอบคุณ indiv สำหรับข้อมูลที่ช่วยให้ฉันสร้างโซลูชันที่กำหนดเองสำหรับการตั้งค่าของฉัน ฉันเพิ่มบล็อก "ไดเรกทอรี" คุณต้อง /etc/apache2/extra/httpd-userdir.conf ด้วย "*" แทนที่ "$ USER_DIR" สิ่งนี้ทำให้ไดเรกทอรีผู้ใช้สำหรับผู้ใช้ทั้งหมดที่มีไดเรกทอรี "ไซต์"
Jason

1

ฉันต้องเพิ่มFollowSymLinksดังนี้/etc/apache2/users/username.conf:

<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

( usernameต้องถูกแทนที่ด้วยชื่อผู้ใช้จริงของคุณ)


1

นี่คือหนึ่งบรรทัดคำสั่งมินัลที่จะช่วยให้ MacOS ในตัวเซิร์ฟเวอร์ Apache และช่วยให้คุณสามารถใช้ไดเรกทอรีไซต์ในโฟลเดอร์ผู้ใช้ของคุณ มันเข้ากันได้กับ macOS เวอร์ชั่นล่าสุดขณะที่เขียนนี้ (โมฮาวี) และยังได้รับการทดสอบการทำงานกับเซียร์ราและเซียร์รา ฉันสงสัยว่ามันจะทำงานร่วมกับเวอร์ชันอื่นได้เช่นกัน - ฉันพยายามอย่างเต็มที่ที่จะเขียนมันในลักษณะที่พิสูจน์ได้ในอนาคต

mkdir ~/Sites ; sudo bash -c "printf '<Directory \"/Users/`whoami`/Sites/\">\n\tAddLanguage en .en\n\tAllowOverride All\n\tOptions Indexes MultiViews FollowSymLinks\n\tRequire all granted\n</Directory>' > /etc/apache2/users/`whoami`.conf ; echo 'AddDefaultCharset utf-8' >> /etc/apache2/httpd.conf ; sed -i '' '/LoadModule userdir_module libexec\/apache2\/mod_userdir.so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/LoadModule php[0-9]_module libexec\/apache2\/libphp[0-9].so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/extra\/httpd-userdir.conf/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/users\/\*.conf/s/^#*//g' /etc/apache2/extra/httpd-userdir.conf ; apachectl start"

†มันเป็นเทคนิคหนึ่งบรรทัดแม้ว่ามันจะยาวจริงๆ ...



0

Mountain Lion ลบไฟล์การกำหนดค่าที่ให้การเข้าถึงเว็บไปยังไดเรกทอรีผู้ใช้ของคุณ /etc/apache2/users/แฟ้มการกำหนดค่าที่อยู่ใน สิ่งที่ขาดหายไปคือuser.confที่ซึ่งผู้ใช้เป็นชื่อผู้ใช้สั้น ๆ ของคุณ

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

ในการใช้งานของคุณโฟลเดอร์หรือ Launchpad Other > Applescript Editorเปิด คัดลอกสคริปต์ด้านล่างและวางลงในพื้นที่ข้อความของตัวแก้ไขแอปเปิ้ล จากนั้นคลิกปุ่มRun

set userHome to (short user name of (system info))
set configFile to "/etc/apache2/users/" & userHome & ".conf"
set configFileContents to "<Directory \"/Users/" & userHome & "/Sites/\">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>"

do shell script "echo '" & configFileContents & "' > " & configFile with administrator privileges
do shell script "/usr/sbin/apachectl restart" with administrator privileges

เมื่อสคริปต์เสร็จสิ้นคุณควรจะสามารถเข้าถึงเว็บเพจระดับผู้ใช้ของคุณ

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