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>

지금있는 가상 호스트 설정 파일, 사용하거나 사용하지 않도록 설정하는 두 가지 명령이 있습니다 a2ensite및 a2dissite각각이. 우리 이제부터 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. 이제 두 디렉토리에서 액세스 할 수 localhost및localhost: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.