Apache 문서 루트 폴더를 보조 하드 드라이브로 변경


28

내 서버 PC 용 우분투 12.04 서버 에디션을 설치했습니다. 램프 서버를 설치했습니다. var / www 위치를 보조 하드 디스크 위치로 변경해야합니다. 나는 gedit / etc / apache2 / sites-available / default에 너무 많은 시간을 구성했다. 여기에 내 코드가있다.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

또한 사용

sudo chown -R var/www /media/myserver/

chmod -R 755 /media/myserver/

여전히 내 / media / myserver에 연결할 수 없으며 브라우저에 다음 메시지가 표시됩니다.

Forbidden

You don't have permission to access / on this server.

내 var / www에서 myserver를 마운트하는 방법을 알려주십시오. 미리 감사드립니다.


두 번째 드라이브가 포맷되어 / media / myserver 디렉토리에 마운트 되었습니까? 해당 드라이브에 대한 fstab 항목을 추가 했습니까?
damien

문서 루트의 후행 슬래시가 문제인지 여부를 확인 했습니까?
Chris

apache2.conf 파일을 변경하려고 했습니까?
Golden_flash

답변:


40

아파치의 문서 루트 를 편집 apache2.conf하고 000-default.conf변경해야합니다.

Apache 서버는에 설치됩니다. var/www/html이것은 Apache 의 기본 루트 디렉토리입니다.

Apache의 루트 디렉토리를 변경하거나 프로젝트를로 이동하십시오 /var/www/html.

  1. Apache의 루트 디렉토리를 변경하려면 다음을 실행하십시오.

    cd /etc/apache2/sites-available
    
  2. 그런 다음 000-default.conf명령을 사용 하여 파일을여십시오.

    nano 000-default.conf
    
  3. DocumentRoot옵션을 편집하십시오 .

    DocumentRoot /path/to/my/project
    
  4. 그런 다음 아파치 서버를 다시 시작하십시오.

    sudo service apache2 restart
    

당신이 얻을 경우 Forbidden You don't have permission to access / on this server아파치의 루트를 변경 한 후 다음 단계를 수행 할

  1. apache2.conf위치를 찾아 다음 /etc/apache2을 사용하여 엽니 다.

    nano apache2.conf
    
  2. Ctrl+를 사용 W하여 디렉토리를 검색 하십시오 (153 행).

  3. 이렇습니다

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. 로 변경

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. 아파치 다시 시작

    sudo service apache2 restart
    

단일 명령으로 아파치 루트를 변경하는 스크립트를 만들었습니다. 내 github 에서 찾을 수 있습니다 .


그것은 나를 위해 일종의 일이지만 추가해야합니다 <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. 에서 /etc/apache2/apahce2.conf아파치 서비스를 다시 시작하기 전에.
r0ng

19

어쩌면 조금 늦을 수도 있습니다. 그래도 ..

/ etc / apache2의 apache.conf에서 디렉토리 권한을 편집해야합니다.

이것을 검색

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

이 코드를 그 아래에 추가하면 디렉토리에 액세스 할 수있는 권한이 부여됩니다

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>

3

활성화 된 구성에서 문서 루트를 변경하기 만하면됩니다. /etc/apache2/sites-enabled/000-default 그런 다음 아파치를 다시로드하십시오.

따라서 이것을 시도하십시오 :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

그런 다음 다음과 같이 적절한 권한을 부여해야합니다.

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/

그래 내 친구 내가 이미 완료되었습니다. 위의 코드를 참조하십시오. 기본 문서 루트에 주석을 달고 새 문서 루트를 삽입했습니다. apache2 중지 후 시작하십시오. 작동하지 않습니다. 그것은 403 오류, 그리고 보여 주었다 권한 액세스가 거부 및 브라우저
Dhinesh BABU - 케빈

내 마지막 편을 보셨습니까?
Achu

그래, 나는 이것을 보았다. 아직도이 서버에 / 액세스 권한이 해달라고을 보여이다
케빈 - Dhinesh BABU

2

빠른 해결 방법 (안전하고 빠른 방법)으로 외장 하드 드라이버의 마운트 지점을 기본 루트 디렉토리 (기본적으로 / var / www)로 만들 수 있습니다.

기존 디렉토리에 마운트 지점을 지정하는 것은 안전하지만 드라이버를 마운트 해제하지 않으면 이전 내용에 도달 할 수 없습니다.

장착 지점을 만드는 방법에 대한 자세한 내용은 항목을 참조하십시오 .


이 아이디어에 따르면 bindfs여기에 설명 된 대로을
pa4080

1

sudo gedit etc/apache2/apache2.conf 이 옵션 추가 색인 FollowSymLinks MultiViews AllowOverride 없음 순서 허용, 모두 허용 거부

가상 구성에서 :/etc/apache2/sites-available/site.conf

ServerAdmin anilrmg@localhost.com
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf


1

VirtualBox 게스트 추가를 사용 you don't have permission to access /on this server하고 위에서 언급 한 모든 사항에도 불구하고 사용하는 사람들을 위해 :

Apache 문서 루트 폴더를 VirtualBox 공유 폴더로 설정하려고 시도했지만 위의 모든 것을 시도했지만 도움이되지 않은 경우 한 단계가 더 있습니다.

간단히 말해, 해결책은 사용자 'www-data'를 그룹 'vboxsf'에 추가하는 것입니다.

sudo usermod -a -G vboxsf www-data

VirtualBox 공유 폴더의 소유자 및 / 또는 그룹을 변경할 수 없지만 위의 솔루션이 저에게 효과적이었습니다.


1

나는 같은 문제에 부딪쳐서 해결할 수 있었다!

당신이해야 할 일은

  1. apache2.conf를 수정합니다. /var/www/당신의 경로로 교환 : <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. 000-default.conf를 수정하십시오.

    DocumentRoot /your/path/

  3. 파일 관리자 또는 터미널에서 디렉토리의 소유권을 자신에게 변경하십시오 (예 : sudo chown pi : path) "이 서버에 액세스 할 수있는 권한이 없습니다." 에러 메시지.

그게 다야.

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