가상 호스트 당 error_log?


113

Apache 및 PHP 5를 실행하는 하나의 Linux 서버에는 별도의 로그 파일이있는 여러 가상 호스트가 있습니다. error_log가상 호스트간에 PHP를 분리 할 수 ​​없습니다 .

에서이 설정 재정 <Location>의 것은 httpd.conf아무것도하지 않는 것.

error_logs각 가상 호스트에 대해 별도의 PHP 를 사용 하는 방법이 있습니까?

답변:


81

Apache ( PHP 아님) 로그 를 설정하려면 가장 쉬운 방법은 다음과 같습니다.

<VirtualHost IP:Port>
   # Stuff,
   # More Stuff,
   ErrorLog /path/where/you/want/the/error.log
</VirtualHost>

선행 "/"가 없으면 상대적인 것으로 간주됩니다.

Apache 오류 로그 페이지


7
그것은 PHP 오류 로그와 분리 된 아파치 오류 로그입니다 (다른 주석 참조)
thelem

무엇에 비해? httpd.conf그것이 쓰여진 디렉토리 , 또는?
mb21 2013-09-03

141

누군가가 찾아 오면 다음과 같이 보일 것입니다.

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/domains/example.com/html
    ErrorLog /var/www/domains/example.com/apache.error.log
    CustomLog /var/www/domains/example.com/apache.access.log common
    php_flag log_errors on
    php_flag display_errors on
    php_value error_reporting 2147483647
    php_value error_log /var/www/domains/example.com/php.error.log
</VirtualHost>

display_error켜져 있으므로 개발 전용 입니다. Apache 오류 로그는 PHP 오류 로그와 별개임을 알 수 있습니다. 좋은 물건은 php.error.log.

여기에서 http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reportingerror_reporting 키를 살펴보십시오 .


8
구성에 따라 로그 파일을 수동으로 만들고 소유자 / 그룹을 Apache가 사용하는 동일한 사용자 / 그룹으로 설정해야 할 수 있습니다. Apache는 로그 파일에 쓸 수없는 경우 경고하지 않습니다.
Ian Dunn

"error_reporting"값은 더 많은 오류 레벨을 추가함에 따라 PHP의 새 버전으로 변경됩니다. E_ALL = "30719"바로 지금.
ReactiveRaven

2
"error_reporting"값이 계속 변경되고 "E_ALL"및 "E_STRICT"와 같은 PHP 상수를 php 외부에서 사용할 수 없기 때문에 다음과 같이 항상 모든 오류를 기록 할 수 있습니다. php_value error_reporting 2147483647
Buttle Butkus

퍼블릭 도메인 공간에서 로그인을 원하는 이유는 무엇입니까?
AlxVallejo 2014

1
로그 파일은 공개되지 않습니다. / html /은 공용 공간입니다.
Clutch

13

난 보통 그냥이를 지정 .htaccess파일 또는vhost.conf 내가 일하고 있어요 도메인에. 다음 파일 중 하나에 이것을 추가하십시오.

php_admin_value error_log "/var/www/vhosts/example.com/error_log"

1
의 차이에 캔 사람의 의견 php_admin_valuephp_value?
Nick M

1
이 차이를 설명 : mattiasgeniar.be/2012/02/18/...
제레미

9

error_log ()의 기본 동작은 Apache 오류 로그에 출력하는 것입니다. 이것이 발생하지 않으면 php.ini 설정에서 error_log 지시문을 확인하십시오. 현재 가상 호스트에 Apache 로그 파일을 사용하려면 설정하지 않은 상태로 둡니다.


내가 확인합니다. 개발자가 다른 민감한 데이터를 포함 할 수있는 아파치 오류 로그를 제공하지 않고 코드를 디버깅 할 수있는 기회를 제공하고자 할 때 아파치와 PHP 오류 로그를 분리 할 수 ​​있는지 궁금합니다.
Michael Stum

7

오류는에 의해 가로 채기 때문에 항목 이 error_log어디로 가는지 설정하지 마십시오 . 대신, 만들 당신의 프로젝트 폴더를 로그를하고 할 . 이것은 파일과 가상 호스트 모두에 적용 됩니다. 또한 반드시 넣어 만든다 에syslogeg /var/log/apache2ErrorLogsubdirphp_value error_log "/path/to/project/logs".htaccess php_flag log_errors


흥미 롭군. 이 동작은 error_log 파일의 경로에 따라 달라 집니까?
demonkoryu 2011

6

php_value error_log '/path/to/php_error_logVirtualHost 구성에를 추가해 보셨습니까 ?


6

예, 시도 할 수 있습니다.

php_value error_log "/var/log/php_log" 

에서 .htaccess또는 사용자가 사용할 수 있습니다ini_set() 그들이 로깅을 갖고 싶어 자신의 스크립트의 시작 부분에.

또 다른 옵션은 스크립트가 php.ini있는 폴더의 기본값으로 스크립트를 활성화 한 다음 사용자 / 호스트의 루트 폴더로 이동 한 다음 서버의 루트 또는 이와 유사한 것으로 이동하는 것입니다. 이렇게하면 호스트가 자신의 php.ini값과 error_log위치 를 추가 할 수 있습니다.


6
php_value error_log "/var/log/httpd/vhost_php_error_log"

그것은 나를 위해 작동하지만 로그 파일의 권한을 변경해야합니다.

또는 Apache는 로그를 error_log.


5

내 Apache는 httpd.conf에 이와 같은 내용이 있습니다. ErrorLog 및 CustomLog 설정을 변경하기 만하면됩니다.

<VirtualHost myvhost:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common
</VirtualHost>

1
여기서는 Apache 로그가 아니라 PHP 로그에 대해 이야기하고 있습니다.
demonkoryu 2011 년

4

당신은 시도 할 수 있습니다:

    <VirtualHost myvhost:80>
       php_value error_log "/var/log/httpd/vhost_php_error_log"
    </Virtual Host>

그러나 그것이 효과가 있는지 확실하지 않습니다. 내 사이트에서 성공하지 못했습니다.


2

간단한 VirtualHost 만들기 :

예제 호스트 이름 :- thecontrolist.localhost

  1. C : \ Windows \ System32 \ drivers \ etc

    127.0.0.1 thecontrolist.localhost 호스트 파일

  2. C : \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf

    <VirtualHost *>
      ServerName thecontrolist.localhost
      ServerAlias thecontrolist.localhost
      DocumentRoot "/xampp/htdocs/thecontrolist"
      <Directory "/xampp/htdocs/thecontrolist">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
      </Directory>
    </VirtualHost>
    
  3. 아파치를 다시 시작하는 것을 잊지 마십시오. 자세한 내용은 이 링크를 확인 하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.