2012-01-02 4 views
3

안녕하세요 메신저오류 동안

#!/bin/sh 

php ./func.php 

func.php 파일

<?php 

echo "php file"; 

처럼 그리고 출력으로 보이는 bash는 스크립트에서 PHP 파일을 실행하려고 PHP Warning: Module 'apc' already loaded in Unknown on line 0

편집 : 그리고 어쩌면 U도 PHP 파일에 매개 변수를 전달하는 방법을 말해 줄 수 있습니까 ??

+2

당신이 (이 예를 들어,은/etc/PHP5/CLI/php.ini''에 위치 할 것 우분투 시스템)는 CLI 구성 파일을 확인하려고 유무 : 여기에 APC를 활성화 및 비활성화 할 수있는 명령은 모듈'apc'에? 그리고 이것이 당신의 완전한'func.php' 파일입니까? (적어도 닫는'?>'이 없습니다.) – codeling

+3

@nyarlathotep 닫는'?>'[최선의 방법입니다] (http://stackoverflow.com/a/4453835/35070). – phihag

+0

@phihag : 힌트를 주셔서 감사합니다! 오랫동안 PHP 코드를 작성했지만 몰랐는데 - 내가 베스트 프랙티스를 읽어야하는 것 같아요 :) – codeling

답변

8

Unknown on line 0의 오류는 구성에 결함이 있음을 의미합니다 (이것은 bash와 아무런 관련이 없습니다. 프로그램을 직접 실행하면 동일한 메시지가 나타납니다).

귀하의 경우 PHP 구성에 extension=apc.so의 두 인스턴스가 있습니다. 이를 찾으려면 grep apc.so /etc/php5/cli/ -r을 사용하십시오.

+0

완벽하고 고마워요! – ChocoDeveloper

+0

감사 +1! 이 중복 라인이 어디에서 유래했는지 알 수 있습니까? 나는 또한 ini 파일에서 ... active = 1 행을 복제했다. – Benj

2

php.ini이 CLI 모드에서 사용중인 찾아 하지만 실제로는 별도의 apc 파일이로드되었으므로 단순히 "extension = apc.so"를 grepping하면 문제가 발견되지 않습니다. 모듈이로드 된 이후

php --info | grep -i apc 
PHP Warning: Module 'apc' already loaded in Unknown on line 0 
Additional .ini files parsed => /etc/php5/cli/conf.d/apc.ini 

그래서, 당신은 단지 아파치 및 CLI php.ini의 CONFIGS 모두에서 "확장자 = apc.so"을 제거해야합니다.

1

모두의 이중 선언이 php.ini의 내용을 확인하십시오

+0

'php --info | grep -i apc' 님이 트릭을했습니다. – Dmitriy

0

필자의 경우 (Debian 기반 리눅스 변형 우분투에서), /etc/php5/conf.d/apc.ini의 사본이 두 개 있습니다. 나는 처음 apc를 설치할 때 내가 거기에 놓았던 것을 가지고있었습니다. /etc/php5/conf.d/20-apc.ini에서 ../mods-available/apc.ini으로 심볼릭 링크를 발견했습니다.

php의 일부 업그레이드가이 모듈을 "데비안 방식"(심볼릭 링크 포함)으로 활성화 한 것처럼 보입니다. apc.ini 사본을 삭제했으며 현재는 mods-available에 심볼릭 링크 된 것을 사용하고 있습니다.

또한 우분투 및 데비안에서 PHP 모듈을 사용하거나 사용하지 않도록 설정하는 명령 행 프로그램이 있습니다. 참조에 대한

sudo /usr/sbin/php5enmod apC# Creates the symlink in /etc/php5/conf.d that enables APC 
sudo /usr/sbin/php5dismod apC# Deletes the symlink in /etc/php5/conf.d that disables APC