Kullanıcı dizinimin web paylaşımı için tekrar çalışmasını nasıl sağlayabilirim?


26

Web paylaşımını Lion'da etkin hale getirdim ve bir web sitesinde, Kullanıcı dizinim http://localhost/~usernerede user. Mountain Lion'a yükselttiğimde, web paylaşımı (Apache) etkin kaldı ve localhost'a gidip "Çalışıyor!" varsayılan web sayfası, ancak kullanıcı sayfama artık erişemiyorum. Hata

yasak

Bu sunucuda / ~ user / dizinine erişim izniniz yok.

Kullanıcı yöneticimin web sayfasını nasıl yeniden etkinleştiririm?

Yanıtlar:


18

Terminal'i kullanarak web sayfasını komut satırıyla nasıl yeniden etkinleştireceğiniz aşağıda açıklanmıştır.

Önce bunu kopyalayın ve Terminal'e yapıştırın. enterÇalıştırmak için yapıştırdıktan sonra basmanız gerekebilir . Parolanızı sorar çünkü sistem dizininize bir dosya ekler.

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

Ardından web sunucusunu yeniden başlatmak için bu komutu çalıştırın:

sudo apachectl restart

Üzgünüm, hatam, conf dosyasının adı için de ihtiyacınız var. Bununla birlikte, $ (basename ~) de çalışmalıdır
yokuş yukarı

1
Bundan biraz farklı bir şey yaptım. Kurulumum için özel bir çözüm oluşturmama yardımcı olan bilgi için teşekkürler. "$ USER_DIR" yerine /etc/apache2/extra/httpd-userdir.conf 'a sahip olduğunuz "Directory" bloğunu "*" ile eklemelisiniz. Bu, "Siteler" dizini olan tüm kullanıcılar için kullanıcı dizinlerini etkinleştirir.
Jason

1

Benim için FollowSymLinksaşağıdaki gibi eklemek zorunda kaldı /etc/apache2/users/username.conf:

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

( usernamegerçek kullanıcı adınızla değiştirilmeli)


1

Burada tek çizgidir sağlayacak bir terminal komutu MacOS yerleşik apache sunucu ve Kullanıcı klasöründe Siteleri dizinini kullanmanıza izin verir. Bu yazı itibariyle (Mojave) en son macOS versiyonuyla uyumludur ve ayrıca Sierra ve Yüksek Sierra ile çalışmak üzere test edilmiştir. Diğer versiyonlarla da çalışacağından şüpheliyim - geleceğe uygun bir şekilde yazmak için elimden geleni yaptım.

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"

Teknik olarak bir satır, gerçekten çok uzun olsa bile ...



0

Mountain Lion, kullanıcı dizinine web erişimi sağlayan yapılandırma dosyasını kaldırır. Yapılandırma dosyaları içeride /etc/apache2/users/. Kayıp olanı, user.confkullanıcının kısa kullanıcı adınız olduğu yerdir.

Komut satırına bakmak istemiyorsanız, işte kullanıcılarınız için bir yapılandırma dosyası oluşturmak için çalıştırabileceğiniz bir Applescript. Parolanızı sorar çünkü dosyayı sistem düzeyinde bir dizinde oluşturmak zorundadır ve daha yüksek ayrıcalıklara ihtiyaç duyar.

Uygulamalar klasörünüzde veya Launchpad'de açın Other > Applescript Editor. Aşağıdaki betiği kopyalayın ve Applescript editörünün metin alanına yapıştırın. Ardından Çalıştır düğmesine tıklayın.

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

Betik bittiğinde, kullanıcı seviyeli web sayfanıza erişebilmelisiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.