"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 가상 호스트를 사용하는 PHP Apache 프로젝트

가상 호스트를 사용하는 PHP Apache 프로젝트

2024-11-09에 게시됨
검색:876

PHP Apache project with Virtual Host

프로젝트 디렉토리 생성

먼저 프로젝트용 디렉터리를 만듭니다. 예를 들어, php:

라는 디렉토리를 생성해 보겠습니다.

sudo mkdir /var/www/html/php


PHP 테스트 파일 만들기

프로젝트 디렉토리에 index.php 파일을 생성하세요:


echo "

디렉토리 권한 설정

Apache가 디렉터리에 액세스할 수 있도록 적절한 권한을 설정합니다.


sudo chown -R www-data:www-data /var/www/html/php 
sudo chmod -R 755 /var/www/html/php


sudo chown -R www-data:www-data /var/www/html/php 명령은 다음 작업을 수행합니다.

  1. -R: 이 옵션은 작업이 재귀적으로 수행되어야 함을 나타냅니다. 즉, 지정된 디렉터리뿐만 아니라 해당 디렉터리의 모든 하위 디렉터리와 파일에서도 수행됩니다.

  2. www-data:www-data: 파일의 새 소유자가 될 사용자와 그룹이 모두 www-data임을 지정합니다. Apache 및 Nginx와 같은 웹 서버의 기본 사용자 역할을 하는 Linux 시스템의 일반 사용자 및 그룹입니다.

  3. /var/www/php: 속성이 변경되는 디렉터리의 경로입니다.

sudo chmod -R 755 /var/www/html/php 명령은 다음 작업을 수행합니다.

755: 이것은 권한 모드입니다:

  1. 첫 번째 숫자(7)는 파일(또는 디렉터리) 소유자에게 읽기(4), 쓰기(2) 및 실행(1) 권한을 부여하여 총 7가지 권한을 부여합니다.

  2. 두 번째 숫자(5)는 그룹에 읽기(4) 및 실행(1) 권한을 부여하지만 쓰기 권한은 부여하지 않으므로 총 5개입니다.

  3. 세 ​​번째 숫자(5)는 다른 사용자에게 읽기(4) 및 실행(1) 권한을 부여하지만 쓰기 권한은 부여하지 않습니다.

요약하자면, 이 명령은 /var/www/html/php 내의 모든 파일과 디렉터리에 대한 권한을 변경하여 소유자가 모든 권한(읽기, 쓰기, 실행)을 가질 수 있게 하고 그룹과 다른 사용자는 읽기만 할 수 있도록 합니다. 권한을 실행합니다. 이는 서버가 보안을 손상시키지 않고 필요한 파일에 액세스할 수 있도록 하기 위해 웹 서버 환경에서 일반적입니다.

가상 호스트 구성 파일 생성

가상 호스트에 대한 새 구성 파일을 만듭니다. 파일 이름은 PHP 프로젝트와 동일해야 합니다:


sudo your_editor /etc/apache2/sites-available/php.conf


가상 호스트 구성 추가

파일에 다음 구성을 추가합니다.



    ServerAdmin webmaster@localhost
    ServerName php.info
    DocumentRoot /var/www/html/php

    
        AllowOverride All
        Require all granted
    

    ErrorLog ${APACHE_LOG_DIR}/php_error.log
    CustomLog ${APACHE_LOG_DIR}/php_access.log combined



코드의 각 부분을 분석해 보겠습니다.

    • 이것은 HTTP의 기본 포트인 포트 80에서 수신 대기하는 가상 호스트에 대한 구성 블록의 시작입니다. 별표(*)는 가상 호스트가 모든 IP 주소의 연결을 허용함을 나타냅니다.
  1. ServerAdmin webmaster@localhost

    • 서버 관리자의 이메일 주소를 정의합니다. 이 이메일 주소는 오류 메시지나 사용자가 관리자에게 문의해야 할 때 사용될 수 있습니다.
  2. 서버 이름 php.info

    • 이 설정이 적용되는 서버의 이름을 지정합니다. 이 경우 가상 호스트는 php.info 요청에 응답합니다. 이 이름이 서버의 IP(일반적으로 /etc/hosts 파일 또는 DNS에 구성됨)로 올바르게 확인되는 것이 중요합니다.
  3. DocumentRoot /var/www/html/php

    • 누군가가 ServerName(이 경우 php.info)에 액세스할 때 제공될 파일이 포함된 디렉터리를 정의합니다. 이 예에서 파일은 /var/www/html/php.
    • 에 있습니다.
    • 이 블록은 표시된 디렉터리에 대한 특정 설정을 지정합니다. 이 블록 내의 설정은 해당 특정 디렉터리에 대한 Apache의 동작에 영향을 미칩니다.

모두 재정의 허용

  • /var/www/html/php/ 디렉토리 내의 .htaccess 파일이 Apache 설정을 무시할 수 있도록 허용합니다. 즉, 개발자는 기본 Apache 구성 파일을 편집하지 않고도 .htaccess 파일을 사용하여 리디렉션이나 액세스 제어와 같은 규칙을 구성할 수 있습니다.

모두 부여 필요

  • 모든 사용자가 디렉토리에 액세스할 수 있도록 허용합니다. 이는 누구나 제한 없이 /var/www/html/php/ 내의 파일에 액세스할 수 있음을 의미합니다.
  1. ErrorLog ${APACHE_LOG_DIR}/php_error.log
  2. 이 가상 호스트에 대한 Apache 오류 로그 파일의 경로를 지정합니다. ${APACHE_LOG_DIR}은 일반적으로 기본 Apache 구성 파일에 설정되는 변수로, 로그가 저장되는 디렉터리를 가리킵니다. 여기서 해당 가상 호스트와 관련된 오류는 php_error.log 파일에 기록됩니다.

  3. CustomLog ${APACHE_LOG_DIR}/php_access.log 결합

  4. 이 가상 호스트에 대한 Apache 액세스 로그 파일의 경로를 정의합니다. ErrorLog와 마찬가지로 이 역시 ${APACHE_LOG_DIR} 변수를 사용합니다. 결합된 형식은 클라이언트의 IP 주소, 요청 시간, HTTP 메서드, 요청된 URL, 상태 코드 및 사용자 에이전트를 포함하여 요청에 대한 정보를 기록합니다.

가상 호스트 활성화

다음 명령을 사용하여 새 가상 호스트를 활성화합니다.


sudo a2ensite php.conf


재작성 모듈 활성화(필요한 경우)

.htaccess 또는 URL 재작성을 사용해야 하는 경우 Apache 재작성 모듈을 활성화하십시오:


sudo a2enmod rewrite


호스트에 서버 이름 추가

정의한 서버 이름(php.info)을 사용하여 프로젝트에 액세스하려면 /etc/hosts 파일에 다음 항목을 추가하세요.


sudo your_editor /etc/hosts


파일 끝에 다음 줄을 추가합니다.


127.0.0.1 php.info




아파치 다시 시작

변경 사항을 적용하려면 Apache를 다시 시작하세요.


sudo systemctl restart apache2




프로젝트에 접근하기

이제 http://php.info를 입력하여 브라우저에서 프로젝트에 액세스할 수 있습니다.

릴리스 선언문 이 글은 https://dev.to/xxzeroxx/php-apache-project-with-virtual-host-2npk?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]에 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3