웹사이트 검색

RHEL/CentOS 7.0에서 Vhosts 활성화/비활성화 옵션을 사용하여 Apache 가상 호스트 생성


가상 호스팅을 사용하면 Apache Weberver가 IP 주소, 호스트 이름 또는 사용된 포트 번호를 기반으로 다양한 콘텐츠를 제공할 수 있습니다. 이 가이드에서는 /etc/httpd/ 경로에 두 개의 디렉토리를 생성하여 Red Hat Enterprise Linux/CentOS 7.0에서 가상 호스트를 활성화하고 관리하는 Debian 접근 방식을 사용합니다. 모든 활성화 및 비활성화된 웹 사이트 파일 구성(사용 가능한 사이트사이트 활성화)과 명령 역할을 하는 두 가지 유형의 스크립트(하나는 지정된 가상을 활성화하고 다른 하나는 비활성화)를 유지합니다. 호스트 - a2ensitea2dissite. 이 접근 방식에는 httpd 구성 파일을 망쳐야 하고 모든 가상 호스트에는 단일 위치에서 찾을 수 있는 자체 구성 파일이 있기 때문에 몇 가지 장점이 있습니다. 활성화된 호스트는 단지 심볼릭 링크일 뿐이므로 활성화, 비활성화, 생성 또는 생성 프로세스를 수행합니다. 삭제하는 것은 매우 관리하기 쉽습니다.

요구사항

  1. RHEL/CentOS 7.0에 LAMP 기본 설치

RHEL/CentOS 7에서 Apache 가상 호스트 생성 및 관리

1. 시작하려면 /etc/httpd/ 경로를 입력하여 사이트 사용 가능 및 사이트 사용 가능 디렉토리를 생성하고 Apache httpd.conf 파일을 사용하여 새로 활성화된 웹사이트 위치를 적용합니다.

cd /etc/httpd/
mkdir sites-available sites-enabled
nano conf/httpd.conf

2. httpd.conf 파일에서 파일 하단에 다음 지시문 줄을 추가하면 Apache가 /etc/에 있는 모든 파일을 읽고 구문 분석하게 됩니다. httpd/sites-enabled/.conf 확장자로 끝났습니다.

IncludeOptional sites-enabled/*.conf

3. 다음 단계에서는 설명적인 이름을 사용하여 사이트 사용 가능 위치에 새 가상 호스트를 생성합니다. 이 경우에는 rheltest.lan.conf<를 사용했습니다. – 다음 파일을 템플릿으로 사용합니다.

nano /etc/httpd/sites-available/rheltest.lan.conf

이 구성을 가이드로 사용하세요.

<VirtualHost *:80>
        ServerName rheltest.lan
        DocumentRoot "/var/www/rheltest.lan"
                <Directory "/var/www/rheltest.lan">
                Options Indexes FollowSymLinks MultiViews
         # AllowOverride controls what directives may be placed in .htaccess files.      
                        AllowOverride All
        # Controls who can get stuff from this server file
                        Order allow,deny
                        Allow from all
           </Directory>
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
        ErrorLog  /var/log/httpd/rheltest.lan-error.log
        CustomLog /var/log/httpd/rheltest.lan-access.log combined
</VirtualHost>

4. 가상 호스트의 DocumentRoot 위치를 기본 /var/www/html에서 다른 경로로 변경한 경우 이 경로도 만들어야 합니다. .

mkdir -p /var/www/rheltest.lan

참고: 또한 ServerName 호스트가 유효한 DNS 레코드인지 또는 웹 사이트를 방문하려는 로컬 컴퓨터 호스트 파일에 추가되었는지 확인하세요.

5. 이제 실행 가능한 시스템 경로에 a2ensitea2dissite bash 스크립트를 생성할 차례입니다. 이 경우에는 /usr/local입니다. /bin/ – 하지만
` PATH 시스템 변수가 출력하는 모든 실행 가능 경로를 사용할 수 있습니다.

a2ensite 스크립트 만들기

선택한 편집기를 사용하여 다음 파일을 만듭니다.

nano /usr/local/bin/a2ensite

여기에 다음 스크립트를 추가하세요.

#!/bin/bash
if test -d /etc/httpd/sites-available && test -d /etc/httpd/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/httpd/sites-available
mkdir /etc/httpd/sites-enabled
fi

avail=/etc/httpd/sites-available/$1.conf
enabled=/etc/httpd/sites-enabled/
site=`ls /etc/httpd/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: a2ensite virtual_site"
                echo -e "\nAvailable virtual hosts:\n$site"
                exit 0
else

if test -e $avail; then
sudo ln -s $avail $enabled
else

echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then

echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi

a2dissite 스크립트 만들기

선택한 편집기를 사용하여 다음 파일을 만듭니다.

nano /usr/local/bin/a2dissite

다음 스크립트 전체를 파일에 추가합니다.

#!/bin/bash
avail=/etc/httpd/sites-enabled/$1.conf
enabled=/etc/httpd/sites-enabled
site=`ls /etc/httpd/sites-enabled/`

if [ "$#" != "1" ]; then
                echo "Use script: a2dissite virtual_site"
                echo -e "\nAvailable virtual hosts: \n$site"
                exit 0
else

if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi

if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Apache: sudo systemctl restart httpd"
exit 0
fi
fi

6. 두 스크립트 파일이 모두 생성된 후 실행 가능한지 확인하고 가상 호스트 이름을 추가하여 가상 호스트를 활성화 또는 비활성화하는 데 사용하기 시작하세요. 명령 매개변수로.

chmod +x /usr/local/bin/a2*
a2ensite vhost_name
a2disite vhost_name

7. 테스트하려면 이전에 생성된 가상 호스트를 활성화하고 Apache 서비스를 다시 시작한 다음 브라우저를 새 가상 호스트(이 경우 http://rheltest.lan)로 연결합니다.

a2ensite rheltest.lan
systemctl restart httpd

그게 다야! 이제 a2enistea2dissite bash 스크립트를 시스템 명령으로 사용하여 RHEL/CentOS 7.0에서 Apache Vhosts 파일을 관리할 수 있습니다.