사용자 디렉토리가 웹 공유를 위해 다시 작동하게하려면 어떻게합니까?


26

Lion에서 웹 공유를 사용하도록 설정했으며 웹 사이트 ( 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

죄송합니다. 실수로 conf 파일의 이름도 필요합니다. 그럼에도 불구하고 $ (basename ~)도 작동합니다
nohillside

1
나는 이것과 약간 다른 것을했다. 설정에 대한 사용자 지정 솔루션을 만드는 데 도움이 된 정보를 제공해 주셔서 감사합니다. "$ USER_DIR"대신 "*"를 사용하여 /etc/apache2/extra/httpd-userdir.conf에 "Directory"블록을 추가했습니다. "사이트"디렉토리가있는 모든 사용자의 사용자 디렉토리를 사용할 수 있습니다.
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의 내장 된 아파치 서버를 활성화하고 사용자 폴더에서 Sites 디렉토리를 사용할 수 있는 한 줄짜리 터미널 명령입니다. 이 글을 쓰는 시점에서 최신 버전의 macOS (Mojave)와 호환되며 Sierra 및 High Sierra에서 작동하도록 테스트되었습니다. 다른 버전에서도 잘 작동 할 것으로 생각됩니다. 미래를 대비하여 최선을 다했습니다.

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. 여기서 user는 짧은 사용자 이름입니다.

커맨드 라인을 사용하지 않으려는 경우 사용자를위한 구성 파일을 생성하기 위해 실행할 수있는 Applescript가 있습니다. 시스템 레벨 디렉토리에 파일을 작성해야하며 높은 권한이 필요하기 때문에 비밀번호를 묻습니다.

응용 프로그램 폴더 또는 런치 패드에서을 엽니 다 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

스크립트가 완료되면 사용자 수준 웹 페이지에 액세스 할 수 있어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.