Як змусити свій каталог користувачів знову працювати над веб-сайтом?


26

У мене ввімкнено веб-обмін в Леві та веб-сайт за адресою http://localhost/~user, де userмій каталог користувачів. Коли я перейшов до Mountain Lion, веб-обмін (Apache) залишився ввімкненим, і я можу перейти до localhost та отримати "Це працює!" веб-сторінка за замовчуванням, але я більше не можу отримати доступ до своєї сторінки користувача. Помилка є

Заборонено

Ви не маєте дозволу на доступ / ~ user / на цьому сервері.

Як повторно ввімкнути веб-сторінку свого каталогу користувачів?

Відповіді:


18

Ось як можна знову включити веб-сторінку за допомогою командного рядка за допомогою терміналу.

Спершу скопіюйте це і вставте його в термінал. Можливо, вам доведеться натиснути 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

Вибачте, моя помилка, вона вам потрібна і для імені конф-файлу. Тим не менш, $ (базове ім'я ~) також має працювати
nohillside

1
Я зробив щось трохи інше, ніж це. Дякую indiv за інформацію, яка допомогла мені створити спеціальне рішення для моєї настройки. Я додав блок "Каталог", який ви маєте /etc/apache2/extra/httpd-userdir.conf замість "$ USER_DIR". Це дозволяє використовувати каталоги користувачів для всіх користувачів, які мають каталог "Сайти".
Джейсон

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

Ось однолінійна команда терміналу †, яка дозволить вбудованому серверу apache macOS та дозволить вам використовувати каталог Sites у вашій папці User. Він сумісний з останньою версією macOS станом на цей текст (Mojave), а також був протестований для роботи з Сьєрра та Висока Сьєрра. Я підозрюю, що це буде працювати і з іншими версіями - я зробив все можливе, щоб написати це надійним чином.

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де користувач - ваше коротке ім’я користувача.

Якщо ви не хочете поспілкуватися з командним рядком, ось приклад, який ви можете запустити, щоб створити файл конфігурації для свого користувача. Він запитає ваш пароль, оскільки він повинен створити файл у каталозі системного рівня та потребує підвищених привілеїв.

Відкрийте у папці ваших програм або Launchpad Other > Applescript Editor. Скопіюйте сценарій нижче і вставте його в текстову область редактора Applescript. Потім натисніть кнопку Запустити .

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

Коли сценарій закінчиться, ви маєте можливість отримати доступ до веб-сторінки на рівні користувача.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.