[php] XAMPP에서 가상 호스트를 만드는 방법

이 질문이 여러 번 제기되고 있다고 확신하지만 문제가 발생하지 않습니다. Zend 프레임 워크를 구성하는 XAMPP를 사용하고 있습니다.

XAMPP이 실행되고 포트 808180 것은 내가 코드를 다음과 같이 그 I의 구성에 대한 가상 호스트를 사용할 필요가 일부 Windows 프로세스에 의해 점유되고있는 C:/xampp/apache/config/extra/httpd-vhosts.config(또는 C:/xampp/apache/conf/extra/httpd-vhosts.conf새로운 릴리스에서).

<VirtualHost *:80>
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public"
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

또한 호스트 파일을 업데이트하고 127.0.0.1 comm-app.local아파치를 다시 시작하려고 시도하지만 오류가 표시됩니다.

15:03:01  [Apache]  Error: Apache shutdown unexpectedly.
15:03:01  [Apache]  This may be due to a blocked port, missing dependencies,
15:03:01  [Apache]  improper privileges, a crash, or a shutdown by another method.
15:03:01  [Apache]  Press the Logs button to view error logs and check
15:03:01  [Apache]  the Windows Event Viewer for more clues
15:03:01  [Apache]  If you need more help, copy and post this
15:03:01  [Apache]  entire log window on the forums



답변

두 가지 오류가 있습니다.

<VirtualHost *:80> -> Fix to :8081, your POrt the server runs on
    ServerName comm-app.local
    DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
    SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public" -> This is probably why it crashes, missing >
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
 -> MIssing close container: </VirtualHost>

고정 버전 :

<VirtualHost *:8081>
    ServerName comm-app.local
    DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
    SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

한 가지 언급 할 사항 :

언제든지 다음 명령을 시도하고 실행할 수 있습니다.

service apache2 configtest

이것은 잘못된 구성을 받았을 때 알려주고 문제가 어디에 있는지 알려줄 수도 있습니다.

또한 라이브 시스템에서 사용할 수 없음을 방지하는 데 도움이됩니다.

service apache2 restart

종료되고 시작되지 않습니다.이 configtest는 미리 알고 있습니다. “죄송합니다.이 문제를 먼저 수정해야합니다.”하지만 아파치 자체는 여전히 이전 구성으로 실행 중입니다. 🙂


답변

1 단계) C : \ WINDOWS \ system32 \ drivers \ etc \ “hosts”파일 열기 :

127.0.0.1       localhost
127.0.0.1       test.com
127.0.0.1       example.com

2 단계) xampp \ apache \ conf \ extra \ httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/test/
    ServerName www.test.com
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/example/
    ServerName www.example.com
</VirtualHost>

3 단계) C : \ xampp \ apache \ conf \ httpd.conf. 끝에있는 보조 구성 섹션까지 아래로 스크롤하고 다음 섹션 (500 줄 주변)을 찾습니다. 두 번째 줄의 시작 부분에서 #을 제거하면 섹션이 다음과 같이 표시됩니다.

#Virtual hosts
Include conf/extra/httpd-vhosts.conf

4 단계) XAMPP를 다시 시작하고 이제 브라우저에서 실행합니다.

www.example.com or www.test.com


답변

이 코드를 C : \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf에 추가하십시오.

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName qa-staging.com
ServerAlias www.qa-staging.com
<Directory "c:/xampp/htdocs">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

이제 다음 파일에 가상 호스트 이름을 추가하십시오.

C:\Windows\System32\drivers\etc\hosts

127.0.0.1 qa-staging.com

이 코드를 호스트 파일에 저장할 수없는 경우 notpad를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택한 다음 사용자 지정 코드를 저장할 수 있습니다. 이제 XAMP를 다시 시작합니다.


답변

C : \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf 파일의 끝에이 코드를 작성합니다.

DocumentRoot "D:/xampp/htdocs/foldername"
ServerName www.siteurl.com
ServerAlias www.siteurl.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common

가상 호스트 태그 사이.

System32 / Drivers / etc / hosts 파일을 편집하고 메모장을 관리자로 사용합니다.

파일 하단 추가

127.0.0.1    www.siteurl.com


답변

<VirtualHost *:80>
    DocumentRoot "D:/projects/yourdirectry name"
    ServerName local.yourdomain.com
    <Directory "D:/projects/yourdirectry name">
        Require all granted
    </Directory>
</VirtualHost>

Apache 구성 파일을 저장하십시오.

자세한 정보는 이것을 참조하십시오


답변

포트를로 변경하면 8081다음 가상 호스트가 작동합니다.

<VirtualHost *:8081>
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>


답변

Your disk drive : \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf에 예제가 있으며 구성으로 편집 할 수 있습니다.

 ##<VirtualHost *:80>
 ##ServerAdmin webmaster@dummy-host.example.com
 ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
 ##ServerName dummy-host.example.com
 ##ServerAlias www.dummy-host.example.com
 ##ErrorLog "logs/dummy-host.example.com-error.log"
 ##CustomLog "logs/dummy-host.example.com-access.log" common
 ##</VirtualHost>

그것은 예를 들어, 다음과 같이 될 것이며, 포트 80에 동시에있는 posibility 실행 phpMyAdmin에 다른 프로젝트를 위해 로컬 호스트 자체에 대한 가상 호스트를 추가하는 것을 잊지 마세요 예를 들어 내가 store.local 프로젝트에 표시됩니다 :

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@store.local
DocumentRoot "c:/xampp/htdocs/store.local/public"
ServerName www.store.local
ServerAlias store.local
<Directory C:/xampp/htdocs/store.local>
    AllowOverride All
    Require all granted
</Directory>
</VirtualHost>

그런 다음 위에서 언급했듯이 파일 하단에 C : \ windows \ system32 \ drivers \ hosts를 추가해야
합니다.

127.0.0.1    store.local
127.0.0.1    www.store.local

Apache를 다시 시작하고 브라우저에서 시도하십시오.

store.local or www.store.local

아마도 처음에는 다음과 같이 추가해야합니다.

http://store.local or http://www.store.local

다른 포트를 사용하려면 VirtualHost 앞에 다음을 추가해야합니다.

Listen 8081 or another which you prefer

그런 다음 다음과 같이 VirtualHost에 대한 포트를 사용하십시오.

<VirtualHost *:8081>
ServerAdmin webmaster@store.local
DocumentRoot "c:/xampp/htdocs/store.local/public"
ServerName store.local
ServerAlias www.store.local
<Directory C:/xampp/htdocs/store.local>
    AllowOverride All
    Require all granted
</Directory>

그런 다음 Apache를 다시 시작하고 브라우저에서 시도하십시오.

store.local:8081 or www.store.local:8081

포트를 추가 한 프로젝트 만이 포트에서 실행됩니다. 예를 들어 다른 프로젝트와 phpmyadmin은 여전히 ​​포트 80에서 실행됩니다.