Apache 서버의 루트 디렉토리를 어떻게 변경합니까? [닫은]


241

아파치 서버의 문서 루트를 변경하는 방법을 아는 사람이 있습니까? 기본적으로 대신 디렉토리 localhost에서오고 싶습니다 ./users/spencer/projects/var/www

편집하다

나는 그것을 알아 냈습니다. 일부는 httpd.conf파일 변경을 제안 했지만 결국 파일을 찾고 /etc/apache2/sites-available/default루트 디렉토리를에서 /var/www로 변경 /home/myusername/projects_folder했습니다.


스택 오버플로는 프로그래밍 및 개발 질문을위한 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제가 아닌 것 같습니다. 참조 내가 여기에 대해 요청할 수 있습니다 어떤 주제 도움말 센터에서. 아마도 Server Fault 또는 Webmaster Stack Exchange 가 더 좋은 곳일 것입니다.
jww

답변:


209

파일 에서 DocumentRoot설정 을 변경 해야 httpd.conf합니다. 다음과 같은 상태 일 가능성이 있습니다./etc/apache2/conf/httpd.conf

좋아하는 편집기 ( Vim을 권장 함 )를 사용하여를 찾아로 DocumentRoot변경하십시오 /users/spencer/projects. 또한 다음과 같은 설정을 조금 더 살펴보십시오.

<Directory "/var/www">

또한 따옴표 안에있는 내용을 새 디렉토리로 변경하려고합니다. 이것은 사용자가 요청을 할 때 Apache가 해당 디렉토리에서 읽을 수있는 액세스 권한을 제공합니다.

이제 아파치 서비스 ( httpd -k restart)를 다시 시작 하면 좋습니다.

편집 : Apache2 사이트 설정 파일은 일반적으로 /etc/apache2/sites-available/ 데비안, 우분투 등 으로 유지됩니다 .


6
/etc/apache2/httpd.conf를 열었지만 파일이 비어있었습니다. 나는 gedit로 그것을 열고 있습니다.
스펜서 쿨리

3
파일은 Linux의 특성에 따라 /etc/httpd/conf/httpd.conf에있을 수 있습니다.
Chris Henry

3
httpd.conf 파일이 비어 있지만 etc / apache2 / sites-available / default에서 파일을 발견하고 거기에서 루트 디렉토리를 변경했습니다. 나는 이것이 실제 서버가 아니라고 언급했을 것입니다. 로컬 개발 환경을 설정하고 있습니다. 차이가 있는지 확실하지 않습니다
Spencer Cooley

3
/ var / www와 / home / myusername / projects_folder를 동시에 활성화 할 수 있습니까? 그리고 어떻게 구성해야합니까? 감사.
Paul Lo

3
"답변"은 실제로 더 이상 사용되지 않습니다. Ubuntu 18.x docs에 따르면 정답은 Apache의 루트 디렉토리를 변경하거나 프로젝트를 / var / www / html로 이동하는 것입니다. Apache의 루트 디렉토리를 변경하려면 다음을 실행하십시오. cd / etc / apache2 / sites-available. 그런 다음 nano 000-default.conf 명령을 사용하여 000-default.conf 파일을 엽니 다. DocumentRoot 옵션을 편집하십시오 : DocumentRoot / path / to / my / project. ( askubuntu.com/questions/337874/… 참조 )
sea26.2

263

이것은 Ubuntu 14.04 LTS 및 최신 릴리스에만 적용됩니다.

내 우분투 14.04 LTS에서 문서 루트는로 설정되었습니다 /var/www/html. 다음 파일에서 구성되었습니다.

/etc/apache2/sites-available/000-default.conf

그러니 그냥

sudo nano /etc/apache2/sites-available/000-default.conf

다음 줄을 원하는 것으로 변경하십시오.

DocumentRoot /var/www/html

또한

sudo nano /etc/apache2/apache2.conf

이것을 찾으십시오

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

/var/www/html원하는 디렉토리로 변경 하십시오.

저장하십시오.

변경 사항을 저장 한 후 apache2 웹 서버를 다시 시작하면 완료됩니다. :)

sudo service apache2 restart


당신은 그래픽 텍스트 편집기를 선호하는 경우, 당신은 단지를 대체 할 수 sudo nanoa로 gksu gedit.


1
@Paul Lo : 우분투 13.10에서는 이것을 시도하지 않았으며 우분투 14.04에서만; 아파치를 처음 설치할 때 (Ubuntu 12.04에 있음) 확신 할 때 그러한 디렉토리는 없었습니다. 예, 우분투 14.04 LTS 이상에서만 사용할 수 있다고 생각합니다. 그러나 다른 답변을 볼 수 있습니다. 공감대는 다른 사람들을 도왔으며 우분투 13.10과 함께 일했을 수도 있다고 제안합니다.
mozzbozz

1
그러나 질문 해 주셔서 감사합니다.이 정보를 답변으로 편집하여 다른 사람이 이전 Ubuntu 버전 (y)으로 시도하는 함정에
빠지지 않았습니다.

3
@mozzbozzm, 당신이 맞아요. 14.04 만 정말 이상한 선택, 이제 갑자기 var/www/html기본 루트로 사용됩니다. 그들은 실제로 사람들의 시간을 낭비 하려고 합니까? :)
davidkonrad

4
You don't have permission to access / on this server.브라우저에서 localhost : 80을 눌렀을 때 금지 된 오류가 발생 합니다. 포트를 변경해야합니까?
Costa

3
@Costa I은 추가하여 문제를 해결 <Directory path_to_directory> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> /etc/apache2/apache2.conf에
키난 게브

42

편집해야했습니다 /etc/apache2/sites-available/default. 라인은 RDL에서 언급 한 것과 동일합니다.


3
@pabloab에 의해 제안 된 편집은 "Apache 2.4 이상은 .conf마지막에 필요 하며 기본적 000-으로 접두사를 갖습니다 "라고 말합니다. 결과는 /etc/apache2/sites-available/000-default.conf입니다. 나는 이것을 테스트하지는 않았지만 일부 사람들에게 도움이 될 수 있습니다.
Nick

^^이 문제가 해결되었습니다. 내 사이트에서 사용 가능한 파일의 끝에 .conf가 필요하다고 문서화되어있는 곳은 어디입니까?! 업데이트 후 비활성화 및 오프라인 상태 인 약 20 개의 가상 호스트가 있으며 2 시간 후에이를 찾아 내 사이트에서 사용 가능한 파일의 이름을 바꾸면 문제가 해결되었습니다.
James Perih

23

이것은 Ubunutu 14.04 용입니다.

파일 /etc/apache2/apache2.conf에서 디렉토리 이름이 없으면 다음과 같아야합니다.

<Directory /home/username>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

그리고 파일 /etc/apache2/sites-available/000-default.conf에 사용자 정의 디렉토리 이름, 즉 www를 포함해야합니다 :

DocumentRoot /home/username/www

위와 같지 않으면 서버를로드 할 때 오류가 발생합니다. Forbidden You don't have permission to access / on this server


고마워 친구 :) 이것은 우분투 16.04에서 나를 위해 일했다
Magesh Kumaar

2
또한 Debian 8
androsfat

15

apache2의 다른 포트에서 디렉토리를 변경하거나 여러 디렉토리에서 실행하는 올바른 방법은 다음과 같습니다.

apache2의 경우 구성 파일은 /etc/apache2이전 버전에서와 같이 단일 구성 파일 아래에 있으며 단일 구성 파일을 사용하지 않지만 /etc/apache2/apache2.conf기본 구성 파일 인 더 작은 구성 파일로 분할 됩니다. 다른 디렉토리에서 파일을 제공하려면 새로운 virtualhost conf 파일이 필요합니다. virtualhost conf 파일은 /etc/apache2/sites-available(사이트에서 활성화 된 파일을 편집하지 마십시오)에 있습니다. 기본 아파치 설치는 virtualhost conf 파일을 사용합니다 000-default.conf.

apache의 기본 설치 (포트 80의 localhost에서 실행되는 파일)에 사용되는 기본 가상 호스트 파일을 복사하여 새 가상 호스트 파일을 작성하여 시작하십시오. 디렉토리로 변경 /etc/apache2/sites-available한 다음로 복사 sudo cp 000-default.conf example.com.conf하여 파일 sudo gedit example.com.conf을 다음으로 편집하십시오 .

<VirtualHost *:80>
    ServerAdmin example@localhost
    DocumentRoot /home/ubuntu/example.com    
</VirtualHost>

간결성을 위해 위 파일에서 중요하지 않은 행을 삭제했습니다. DocumentRoot웹 사이트 파일이 제공되는 디렉토리 경로는 다음과 같습니다 index.html.

예를 들어 파일을 제공 할 디렉토리를 작성하십시오. mkdir example.com로그인 한 사용자 이름이로 ubuntu변경 권한 인 경우와 같이 디렉토리의 소유자 및 기본 그룹을 변경합니다 sudo chown ubuntu:www-data example.com. 이것은 사용자에게 모든 액세스 권한을 부여 ubuntu하고 그룹에 대한 읽기 및 실행 액세스를 허용합니다 www-data.

이제 /etc/apache2/apache2.conf명령을 실행 하여 apache conf 파일 을 편집하고 닫는 태그 아래 sudo gedit apache2.conf줄을 찾아 <Directory /var/www/>아래 </Directory>에 다음을 추가하십시오.

<Directory /home/ubuntu/example.com>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

지금있는 가상 호스트 설정 파일, 사용하거나 사용하지 않도록 설정하는 두 가지 명령이 있습니다 a2ensitea2dissite각각이. 우리 이제부터 example.com.conf파일 (동일한 포트를 사용하여 80기본 구성 파일 (에 의해 사용되는) 000-default.conf), 우리는 명령을 실행하여 기본 구성 파일을 해제해야 sudo a2dissite 000-default.conf의해 우리의 가상 호스트의 conf 파일을 사용 가능sudo a2ensite example.com.conf

이제 명령으로 서버를 다시 시작하거나 다시로드하십시오 sudo service apache2 restart. 이제 아파치는 기본 포트 인의 디렉토리 example.com에서 파일을 제공합니다 .localhost80

a2ensite명령은 기본적으로 사이트 사용 디렉토리 아래에 conf 파일에 대한 심볼릭 링크를 만듭니다.

이 답변 https://stackoverflow.com/a/41568701/2532763 에서 지적한 것처럼 사이트 사용 가능 또는 * 사용 가능 Directoy 내에서 파일을 편집하지 마십시오.

포트를 변경하고 다른 포트의 여러 디렉토리에서 실행하려면 다음을 수행하십시오.

이제 다른 포트에서 디렉토리를 실행해야하는 경우 virtualhost 파일을 다음과 같이 편집하여 포트 번호를 80에서 8080으로 변경하십시오.

<VirtualHost *:8080>
    ServerAdmin user@localhost
    DocumentRoot /home/ubuntu/work
</VirtualHost>

바로 아래에 편집 /etc/apache2/ports.conf및 추가Listen 8080Listen 80

example.com 디렉토리가 포트 8080을 사용하므로 포트 80에서 실행되는 기본 virtualhost conf 파일을 활성화 할 수 있습니다. sudo a2ensite 000-default.conf

이제 명령으로 서버를 다시 시작하거나 다시로드하십시오 sudo service apache2 restart. 이제 두 디렉토리에서 액세스 할 수 localhostlocalhost:8080


4

LAMP로 작업하고 있었고 문서 루트 폴더를 변경하려면 / etc / apache2 / sites-available 폴더에 있는 기본 파일을 편집했습니다 . 동일한 작업을 수행하려면 다음과 같이 편집하십시오.

DocumentRoot /home/username/new_root_folder
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/username/new_root_folder>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

그런 다음 브라우저에 localhost를 입력하면 * / home / username / new_root_folder * 내용 이로드 됩니다.


4

http.conf닉의 길을 찾지 못했다면

다음을 사용하여 Apache를 다시 시작하십시오. sudo service apache2 restart


4

들어 아파치리눅스 민트 17.3 계피 다음 작품을 64 비트 :

  1. 에서 /etc/apache2/sites-available/열린 000-default.conf파일 및 변경 문서 루트 디렉토리의 절대 경로.

    sudo vim /etc/apache2/sites-available/000-default.conf

  2. 에서 /etc/apache2/공개 httpd.conf하고, 추가 <Directory>태그 디렉토리를 참조하고의 태그로 동일한 설정을 포함을 var/www.

    sudo vim /etc/apache2/apache2.conf

    내 컴퓨터에서 다음과 같이 보였습니다.


<Directory /home/my_user_name/php/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

참고 : 첫 번째 단계 에서 SSL 목적을 위해 파일 에서 문서 루트 를 변경하려고 할 수 있습니다 default-ssl.conf. 그러나 내가 알 수있는 한 일반적인 개발 환경을 실행하는 데 필요한 것은 아닙니다.


2

아파치 버전 2.4.18 (우분투).

1.이 파일로 이동하여 /etc/apache2/apache2.conf <Directory /var/www/>디렉토리를 검색하고 바꿉니다 ......

2. /etc/apache2/sites-available/000-default.conf DocumentRoot /var/www/html로 이동하여 DocumentRoot를 검색하고 바꿉니다 ....


나는 두 가지를 모두했다. 여전히 표시됩니다.이 서버에서 /에 액세스 할 수있는 권한이 없습니다.
프로그래머

홈 디렉토리에없는 경우 폴더 권한을 확인하십시오.
habibun

2

Ubuntu 16.04를 사용하는 경우 / etc / apache2 / sites-available 디렉토리에서 000-default.conf를 업데이트하십시오 .

여기-> ServerAdmin webmaster @ localhost DocumentRoot / var / www / html / YourFolder


1

나는 /var/www필요한 디렉토리 (예 :)에 대한 소프트 링크로 만들었고 그 /users/username/projects후에는 문제가 없었습니다.

그러나 당연히 원본 /var/www을 삭제하거나 이름을 바꿔야합니다.


0

누군가가 설치 한 경우 LAMP에서 /opt다음 폴더는 /etc/apache2당신이 찾고있는 것이 아니다.

에서 httpd.conf파일을 찾으십시오 /opt/lampp/etc/httpd.conf.

이 폴더의 줄을 변경하고 터미널에서 저장하십시오.



0

Linux Mint를 사용하는 경우 (개인 의견,이 배포판이 나를 행복하게 만듭니다), 다음을 따르십시오.

1- / etc / apache2 / sites-available로 이동하여 000-default.conf를 편집하십시오. 2- DocumentRoot를 검색하십시오 (예 : DocumentRoot / var / www / html). 해당 디렉토리로 변경하십시오. 3- 터미널 열기 및 유형 : sudo service apache2 restart

편집 ----- Mint에서 /etc/apache2/apache.conf로 이동하여 / var / www를 해당 경로로 바꾸고 서버를 다시 시작하는 것 (3 단계)을 알고 있습니다.

그게 다야.


0

Ubuntu 14.04 이상 릴리스에 적용 됩니다. 변경하기 전에 다음 파일을 백업하십시오.

1. 지시문을 열고 /etc/apache2/apache2.conf검색 <Directory /var/www/>하고 경로를로 바꿉니다 /home/<USERNAME>/public_html. 대신 *를 사용할 수 있습니다.

2.Open /etc/apache2/sites-available/000-default.conf및 교체 DocumentRoot에서 값 속성 /var/www/html/home/<USERNAME>/public_html. 또한 <Directory /var/www/html><Directory /home/<USERNAME>/public_html.

3.를 엽니 다 /etc/mods-available/php7.1.conf. 다음 코드를 찾아서 주석 처리

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

php_admin_flag engine OFF지시 코드 위의 주석에서 이유가 언급 되었으므로 플래그를 켜지 마십시오 . 또한 PHP 버전은 5.0, 7.0 또는 설치 한 것이 될 수 있습니다.

public_html디렉토리를 만듭니다 home/<USERNAME>.

command를 실행하여 아파치 서비스를 다시 시작하십시오 sudo service apache2 restart.

서버에서 샘플 스크립트를 실행하여 테스트하십시오.


-3

Google을 통해이 게시물을 찾는 경우 :

/etc/apache2/sites-available/000-default.conf에서 찾았습니다.


4
외부 파일을 가리 키지 않고 임베디드 코드로 자세한 답변을 설명하십시오.
Christian MICHON
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.