Bagaimana cara membuat direktori pengguna saya berfungsi untuk berbagi web lagi?

26

Saya mengaktifkan berbagi web di Lion dan situs web di http://localhost/~user, di mana userdirektori Pengguna saya. Ketika saya memutakhirkan ke Mountain Lion, berbagi web (Apache) tetap diaktifkan dan saya bisa pergi ke localhost dan mendapatkan "Berhasil!" halaman web default, tapi saya tidak bisa mengakses halaman pengguna saya lagi. Kesalahannya adalah

Terlarang

Anda tidak memiliki izin untuk mengakses / ~ pengguna / di server ini.

Bagaimana cara mengaktifkan kembali halaman web direktori pengguna saya?

indiv
sumber

Jawaban:

18

Inilah cara Anda mengaktifkan kembali halaman web dengan baris perintah menggunakan Terminal.

Pertama-tama salin ini dan tempel ke Terminal. Anda mungkin harus menekan entersetelah menempel untuk menjalankannya. Itu akan meminta kata sandi Anda karena itu menambahkan file ke direktori sistem Anda.

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

Kemudian jalankan perintah ini untuk me-restart server web:

sudo apachectl restart
indiv
sumber
Maaf, kesalahan saya, Anda memerlukannya untuk nama file conf juga. Namun demikian, $ (basename ~) juga dapat digunakan
nohillside
1
Saya melakukan sesuatu yang sedikit berbeda dari ini. Terima kasih indiv untuk info yang membantu saya membuat solusi khusus untuk pengaturan saya. Saya menambahkan blok "Direktori" yang Anda harus ke /etc/apache2/extra/httpd-userdir.conf dengan "*" sebagai pengganti "$ USER_DIR". Ini memungkinkan direktori pengguna untuk semua pengguna yang memiliki direktori "Situs".
Jason
1

Saya harus menambahkan FollowSymLinkssebagai berikut ke /etc/apache2/users/username.conf:

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

( usernameharus diganti dengan nama pengguna asli Anda)

Matthieu Riegler
sumber
1

Berikut adalah perintah terminal satu baris yang akan mengaktifkan server apache bawaan macOS, dan memungkinkan Anda untuk menggunakan direktori Sites di folder Pengguna Anda. Ini kompatibel dengan versi terbaru dari MacOS pada tulisan ini (Mojave), dan juga telah diuji untuk bekerja dengan Sierra dan High Sierra. Saya curiga ini akan bekerja dengan versi lain juga — saya melakukan yang terbaik untuk menulisnya dengan cara yang bukti di masa depan.

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"

† Yah, secara teknis satu baris, bahkan jika itu sangat panjang ...

Wowfunhappy
sumber
0

Lihat /apple//a/57555/9058 , pada dasarnya Anda harus mengaktifkan berbagi web per pengguna secara manual (dengan Terminal.app).

nohillside
sumber
0

Mountain Lion menghapus file konfigurasi yang memberikan akses web ke direktori pengguna Anda. File konfigurasi ada di /etc/apache2/users/. Yang hilang adalah user.conf, di mana pengguna adalah nama pengguna pendek Anda.

Jika Anda tidak ingin mengutak-atik baris perintah, inilah Applescript yang dapat Anda jalankan untuk membuat file konfigurasi untuk pengguna Anda. Ia akan meminta kata sandi Anda karena harus membuat file di direktori tingkat sistem dan memerlukan hak istimewa yang ditingkatkan.

Di folder aplikasi atau Launchpad Anda, buka Other > Applescript Editor. Salin skrip di bawah ini dan rekatkan ke area teks editor Applescript. Kemudian klik tombol 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

Ketika skrip selesai, Anda harus dapat mengakses halaman web tingkat pengguna Anda.

indiv
sumber