Làm cách nào để thư mục người dùng của tôi hoạt động để chia sẻ lại web?


26

Tôi đã bật tính năng chia sẻ web trong Lion và một trang web tại http://localhost/~user, userthư mục Người dùng của tôi ở đâu. Khi tôi nâng cấp lên Mountain Lion, tính năng chia sẻ web (Apache) vẫn được bật và tôi có thể truy cập localhost và nhận được "Nó hoạt động!" trang web mặc định, nhưng tôi không thể truy cập trang người dùng của mình nữa. Lỗi là

Cấm

Bạn không có quyền truy cập / ~ người dùng / trên máy chủ này.

Làm cách nào để kích hoạt lại trang web của thư mục người dùng?

Câu trả lời:


18

Đây là cách bạn có thể kích hoạt lại trang web bằng dòng lệnh bằng Terminal.

Đầu tiên sao chép nó và dán nó vào Terminal. Bạn có thể phải nhấn entersau khi dán để chạy nó. Nó sẽ hỏi mật khẩu của bạn vì nó đang thêm một tập tin vào thư mục hệ thống của bạn.

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

Sau đó chạy lệnh này để khởi động lại máy chủ web:

sudo apachectl restart

Xin lỗi, lỗi của tôi, bạn cũng cần nó cho tên của tệp conf. Tuy nhiên, $ (tên cơ sở ~) cũng sẽ hoạt động tốt
nohillside

1
Tôi đã làm một cái gì đó hơi khác so với điều này. Cảm ơn indiv về thông tin đã giúp tôi tạo ra một giải pháp tùy chỉnh cho thiết lập của mình. Tôi đã thêm khối "Thư mục" mà bạn phải /etc/apache2/extra/httpd-userdir.conf với "*" thay cho "$ USER_DIR". Điều này cho phép thư mục người dùng cho tất cả người dùng có thư mục "Trang web".
Jason

1

Tôi đã phải thêm FollowSymLinksnhư sau vào /etc/apache2/users/username.conf:

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

( usernamephải được thay thế bằng tên người dùng thực sự của bạn)


1

Dưới đây là một trong những dòng lệnh terminal sẽ cho phép hệ điều hành MacOS tích hợp trong apache server, và cho phép bạn sử dụng thư mục trang web trong thư mục người dùng của bạn. Nó tương thích với phiên bản macOS mới nhất kể từ khi viết bài này (Mojave), và cũng đã được thử nghiệm để hoạt động với Sierra và High Sierra. Tôi nghi ngờ nó sẽ hoạt động với các phiên bản khác cũng như tôi đã cố hết sức để viết nó theo cách chứng minh trong tương lai.

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"

Chà, về mặt kỹ thuật là một dòng, ngay cả khi nó thực sự rất dài ...



0

Mountain Lion xóa tệp cấu hình cho phép truy cập web vào thư mục người dùng của bạn. Các tập tin cấu hình là trong /etc/apache2/users/. Cái còn thiếu là user.conf, nơi người dùng là tên người dùng ngắn của bạn.

Nếu bạn không muốn sử dụng dòng lệnh, đây là một Applescript bạn có thể chạy để tạo tệp cấu hình cho người dùng của mình. Nó sẽ yêu cầu mật khẩu của bạn vì nó phải tạo tệp trong thư mục cấp hệ thống và cần các đặc quyền nâng cao.

Trong thư mục ứng dụng hoặc Launchpad, hãy mở Other > Applescript Editor. Sao chép tập lệnh bên dưới và dán nó vào vùng văn bản của trình soạn thảo Applescript. Sau đó nhấp vào nút 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

Khi tập lệnh kết thúc, bạn sẽ có thể truy cập trang web cấp người dùng của mình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.