macOS 10.13 High Sierra에서 Apache가 사용자 사이트 폴더와 작동하지 않음


8

이 가이드를 따라 High Sierra에서 Apache를 설정했습니다. https://coolestguidesontheplanet.com/get-apache-mysql-php-and-phpmyadmin-working-on-macos-sierra/

Sierra에서 설정하는 데 사용했습니다.

그러나 내가 갈 때 http://localhost/~scott/"금지되었습니다.이 서버에서 / ~ scott /에 액세스 할 수있는 권한이 없습니다."

이 비슷한 질문에 대한 제안 : macOS High Sierra의 localhost / userdir 은 가상 호스트를로드하는 것입니다. 내가 시도했지만 여전히 "금지됨"을 얻습니다.

Apache가 사용자 사이트 폴더를 사용하지 못하게하는 Sierra와 High Sierra간에 변경된 사항이 있습니까?


시도 apachectl configtest및 업데이트 출력
라 케쉬 쿠마르에게

반환Syntax OK
sfyfedotcom

친절하게 URL을 방문하십시오 localhost / ~ yourusername
Rakesh kumar

"금지되었습니다.이 서버에서 / ~ scott /에 액세스 할 수있는 권한이 없습니다."
sfyfedotcom

답변:


8

이것은 같은 문제가 발생했을 때 저에게 효과적이었습니다.

"/private/etc/apache2/extra/httpd-userdir.conf"파일을 확인하십시오.

변화

#Include /private/etc/apache2/users/*.conf

Include /private/etc/apache2/users/*.conf

아파치를 다시 시작하십시오.

보낸 사람 : /programming/39631351/apache-localhost-403-forbidden-with-macos-sierra


/private/etc/apache2/extra/httpd-userdir.conf지시는 내가 따르는 지시 링크에서 이미 주석 처리가 되어 있지 않습니다.
sfyfedotcom

아파치를 다시 시작하셨습니까 "sudo apachectl restart"
Robert

예. 나는 아파치 설정 파일에 대한 모든 변경을
마쳤다

4

Sites 디렉토리에 대한 액세스를 허용하려면 다음을 추가해야합니다 /etc/apache2/httpd.conf.

<DirectoryMatch "/Users/.*/Sites">
  Require all granted
</DirectoryMatch>

기본 Apache 구성은 /에서 거부 되도록 설정되어 있으므로 모든 것에 대한 액세스를 명시 적으로 허용해야합니다.


아파치를 추가하고 다시 시작했습니다. 차이가
없었습니다

나는 같은 문제가 있었다. "작동합니다!" locahost에서 사용자 디렉토리를 작동시킬 수 없습니다. 이와 같이 DirectoryMatch 규칙을 수정하면 해결되었습니다. 감사!
Karra

4

Diogo Lima의 답변으로 확장하십시오.

High Sierra로 업그레이드하면서 Apple은 이전 아파치 설정을 복사하고 / etc / apache2 및 / etc / apache2 / extra 폴더의 * .conf 파일에 ~ 이전 파일을 추가했습니다. 가상 호스트 또는 ssl-virtual 호스트를 사용하는 경우 해당 .conf 파일의 이전 버전도 이동해야합니다.

mv /etc/apache2/extra/httpd-vhosts.conf~previous /etc/apache2/extra/httpd-vhosts.conf
mv /etc/apache2/extra/httpd-ssl.conf~previous /etc/apache2/extra/httpd-ssl.conf

이것은 High Sierra를 새로 설치했기 때문에 이전 구성 파일이
없었습니다.

따라서 명확히하기 위해 Sierra에서 작업했지만 업그레이드하지 않고 완전히 새로 설치 했습니까? Sierra에서 작동하도록 설정했을 때 Sites 폴더에서 / Library / WebServer / Documents 폴더로 심볼릭 링크를 만들고 자신에게 권한 (읽기 및 쓰기)을 부여했는지 확인했습니다. 이 단계에서는 권한 문제 일 뿐이므로 심볼릭 링크를 만들고 권한을 변경 했습니까?
제임스 마틴

예, 맞습니다. 항상 새로운 macOS 버전을 새로 설치합니다. 나는 그렇게 할 수 알고 있어요,하지만 난 모두 유지하고 싶은 /Library/WebServer/DocumentsUsers/username/Sites나는 지난 10 년에 대한 맥 OS에 할 수 있었던 그 무엇의로, 웹 프로젝트에 대한 별도의 위치로.
sfyfedotcom

따라서 동일한 컴퓨터에서 두 개의 개별 Apache 인스턴스를 실행해야하는 것처럼 보이지만 단일 인스턴스에서 실행될 때 Apache가 현재 제공하는 웹 사이트의로드 밸런싱을 완전히 중단하지는 않습니까? Apple의 모범 사례 권장 사항은 더 이상 사용자 / 사용자 이름 / 사이트를 사용하지 않고 라이브러리 / 웹 서버 / 문서를 고수하는 것입니다
James Martin

단일 Apache 인스턴스는 여러 디렉토리에서 웹 프로젝트를 읽는 케이블입니다. 그것이 제가 몇 년 동안 설립 한 방식입니다.
sfyfedotcom



1

오늘 아침에 업데이트되었습니다. / Users / username에서 사이트 폴더 사용

~ 이전 변형을 사용하여 httpd.conf, httpd-userdir.conf 및 https-vhosts.conf를 백업하고 교체했습니다.

sudo apachectl configtest과는 PHP 오류 (PHP가 높은 시에라 7 업데이트) 얻었다. http.conf를 수정하여 PHP7을 시작하면 모든 것이 다시 작동합니다.


메모 포함 +1sudo apachectl configtest
David C

1

가능한 해결책 (위의 모든 제안으로 실패한 후). 문제는 홈 디렉토리의 권한에 있습니다. 그룹 / 다른 사람을 위해 실행 가능해야합니다.

sudo chmod go + x / 사용자 / 사용자 이름

여기서 "username"은 실제 사용자 이름으로 대체됩니다. 이 후에는 작동합니다!


0

휴 !! 나는 그것을 스스로 알아 냈습니다.

이 단계를 수행

1 단계 : 터미널을 열고 아래 명령을 실행하십시오

sudo atom /etc/apache2/httpd.conf

그런 다음 "#"앞에 있는 부호를 제거하여 주석 처리를 제거하십시오.

LoadModule php7_module libexec/apache2/libphp7.so

2 단계 : 아래 언급 된 다음 명령 실행

cd /private/etc

sudo cp php.ini.default php.ini

3 단계 : 그런 다음 /Library/WebServer/Documents디렉토리 로 이동 하여

sudo chown -R  root yourprojectname

Safari 브라우저로 돌아가서 입력하십시오 "http://localhost/yourprojectname"

당신은 모두 갈 준비가되어 있습니다.

MacOS High Sierra 10.13을 사용하고 있는데 어제 아침에 업데이트되었습니다.


localhost에서 실행하는 /Library/WebServer/Documents것이 잘 작동합니다. 에서 문제가 발생 localhost/~scott했습니다 /Users/Scott/Sites.
sfyfedotcom

0

아침 내내 그것을 알아 내기 위해 보냈지 만 마침내 효과가있었습니다. 이것이 누군가에게 유용 할 수 있기를 바랍니다.

나는 가이드를 따랐지만 약간 변경되었습니다.

이제 localhost 폴더에 액세스 할 수 있지만 ...

높은 시에라 이전 : http://localhost/~username/smomesite.local

이제는 http://localhost/smomesite.local

더 이상 ~username필요 하지 않습니다.


기본 아파치 웹 경로를 내 사용자 폴더로 변경하고 싶지 않습니다. 맥 OS의 이전 버전에서 나는 모두에서 파일 / 사이트를 실행할 수있었습니다 Users/myname/Sites디렉토리/Library/WebServer/Documents
sfyfedotcom

0

방금이 같은 문제가 있었고 원하는 것을 정확하게하고 싶었습니다 (루트는 / Library / WebServer / Documents에 유지하고 사용자 사이트 폴더도 허용 함). 이것이 도움이 될지 확신 할 수 없지만 오늘 밤 몇 시간 동안이 .conf 파일을 통해 한 줄씩보고 잘못된 것이 무엇인지 궁금해하면 httpd 프로세스가 내 내용을 읽을 수 없다는 것을 깨달았습니다. 자신의 사용자 디렉토리. 어떤 이유로 750으로 설정되었으며 _www 사용자가 읽을 수 없습니다. 일단 "chmod 755"를 실행하여 수정했습니다. 내 사용자 디렉토리에서 사이트 폴더가 바로 나타났습니다.

새 사용자를 만들 때 기본값이 755로 표시되므로 내 사용자 디렉토리가 어떻게 생겼는지 잘 모르겠습니다. 내 사이트 폴더가 755로 설정되어 있는지 여러 번 이미 확인했습니다.


그것을 시도하고 Apache를 다시 시작했습니다. 여전히 "금지됨 :이 서버에서 / ~ username /에 액세스 할 수있는 권한이 없습니다"
sfyfedotcom

0

나는 같은 문제가 있었다. 아래 두 줄의 주석 처리를 제거했습니다 (다른 응답에서 이미 제안한 것처럼)

#LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so 
#Include /private/etc/apache2/extra/httpd-vhosts.conf

그러나 여전히 같은 오류가 발생했습니다. 나를위한 트릭은 httpd.conf 파일에서 다음 추가 행을 주석 해제했습니다.

#LoadModule userdir_module libexec/apache2/mod_userdir.so 
#LoadModule include_module libexec/apache2/mod_include.so 
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so

희망이 도움이됩니다.


나는 이미 그 라인의 주석을 제거했습니다
sfyfedotcom

0

업데이트가 모든 이전 구성을 .conf ~ previous 파일로 옮겼습니다. /etc/apache2/extra/httpd-userdir.conf~ 이전을 /etc/apache2/extra/httpd-userdir.conf로 옮기고 /etc/apache2/extra/httpd.conf~ 이전을 / etc / apache2 /로 옮기면 extra / httpd.conf는 이전과 같이 작동합니다.

mv /etc/apache2/extra/httpd-userdir.conf /etc/apache2/extra/httpd-userdir.conf~high-sierra
mv /etc/apache2/httpd.conf /etc/apache2/httpd.conf~high-sierra
mv /etc/apache2/extra/httpd-userdir.conf~previous /etc/apache2/extra/httpd-userdir.conf
mv /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
apachectl restart

이것은 High Sierra를 새로 설치했기 때문에 이전 구성 파일이
없었습니다.

0

나는 같은 문제가 있었다. 해상도는 쉬웠다. https://apple.stackexchange.com/a/306390/129503에 게시 된 답변보기

오늘 일찍 High Sierra로 업그레이드 한 후에도 같은 상황에 직면했습니다. 다음 아파치 파일이 새 버전으로 교체 된 것을 발견했습니다. 다행스럽게도이 파일들은 모두 같은 폴더에 FILE ~ 이전 파일이있었습니다. 방금 ~ 이전 버전을 원래 버전으로 복사하고 아파치를 다시 시작했는데 모든 것이 정상이었습니다.

폴더에서 /etc/apache2:

./httpd.conf
./extra/httpd-vhosts.conf
./extra/httpd-ssl.conf

예:

cp /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf

0

바꾸다

./httpd.conf
./extra/httpd-vhosts.conf
./extra/httpd-ssl.conf

이전 ~ 이전 파일에서

httpd.conf에서 php5 모듈 오류가 발생하고 php5를 php7로 바꾸면 사이트가 작동하기 시작합니다.

바꾸다

LoadModule php5_module libexec/apache2/libphp5.so

LoadModule php7_module libexec/apache2/libphp7.so

0

방금 업그레이드했고 정확히 같은 문제가있었습니다. 가상 호스트를 사용하지 않습니다. 나를위한 해결책은 다음과 같습니다.

에서 https.conf주석

LoadModule userdir_module libexec/apache2/mod_userdir.so

LoadModule authz_host_module libexec/apache2/mod_authz_host.so

LoadModule authz_user_module libexec/apache2/mod_authz_user.so

LoadModule authz_core_module libexec/apache2/mod_authz_core.so

그리고 extra/httpd-user.conf라인이 있는지 확인하십시오 :

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