오류 시작 Apache“php value”


12

내 vps를 업데이트 한 후 다음과 같은 오류가 발생합니다.

아파치 시작 실패 : httpd 시작 : /etc/httpd/conf.d/php.conf의 31 행에서 구문 오류 : 잘못된 명령 'php_value'(서버 구성에 포함되지 않은 모듈에 의해 철자가 틀렸거나 정의 됨) [FAILED]

PHP에서 모듈을 활성화하십시오 :

[PHP 모듈] bz2 캘린더 코어 ctype curl 날짜 dom ereg exif fileinfo 필터 ftp gd gettext gmp 해시 iconv imap intl ionCube 로더 json libxml mbstring mcrypt mhash mysql mysqli openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar readline 반사 세션 shmop SimpleXML 표준 Shospinizer3 wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib [Zend Modules] ionCube PHP 로더

오류와 관련된 선 :

php_value session.save_handler "파일"

오류는 무엇을 의미하며 어떻게 해결할 수 있습니까?

답변:


12

최근 CentOS에서 Plesk 9.5를 사용 하여이 정확한 문제에 부딪 쳤습니다.

Plesk 업데이트로 인한 것인지 확실하지 않습니다. 고객은 최근에 변경된 사항이 없다고 생각하지만 Apache가이 오류로 시작하지 못했습니다.

위반으로 인한 것이 아닌지 확인하기 위해 시스템을 평가 한 후, 문제를 해결하고 mod_phpApache 구성에서 제거 된 것으로 확인했습니다 . Plesk 설정을 확인한 후 상자의 모든 호스트는 FastCGI 및 SuExec을 사용하고있었습니다.

FastCGI 및 SuExec을 사용하는 경우 php.conf (FastCGI) 및 .htaccess (SuExec)에서 PHP 지시문을 변경할 수 없습니다.

고객은 원래 문제의 내용을 언급했지만 이로 인해 세션 지원이 중단되었습니다. 내가 해결할 수있는 유일한 방법은 mod_php를 수동으로 httpd.conf에 다시 추가하는 것입니다.

다른 LoadModule과 함께 섹션에 다음 줄을 추가하십시오. 경로 (../modules/)가 나머지 모듈과 일치하는지 확인하십시오. 시스템에 이미 존재하고 업데이트 중에 구성에서 단순히 제거되었을 가능성이 높습니다.

bash# vi /etc/httpd/conf/httpd.conf
LoadModule php5_module ../modules/libphp5.so

bash# apachectl restart

이로 인해 문제가 발생했으며 업그레이드로 인해 문제가 발생했는지 또는 이것이 최선의 해결책인지 확실하지 않습니다. 나는 의견을 제시하고 있지만 PHP 지시문을 주석 처리하지 말 것을 권장 /etc/httpd/conf.d/php.conf합니다.


고마워 데이비드, 하루를 구했다. 내 yum 로그는 PHP 5.3.26에 대한 자동 업데이트를 보여 주지만 왜 httpd.conf가 덮어 쓰여 졌는지 이해하지 못합니다. 안부

감사합니다! 나는 httpd.conf에 갔고 LoadModule php5_module pathfilename 줄이 주석 처리 된 것을 보았습니다. 방금 #을 제거하고 모든 것이 정상으로 돌아 왔습니다.
Nickool 2016 년

Ubuntu 16.04에서 18.04.1로 업그레이드 한 후이 오류가 발생했습니다. 원인을 모르고 모듈 디렉토리가 없으며 대신 mods-available 및 mods-enabled 디렉토리가 있습니다. php7.2.conf 및 php7.2.load에 대한 심볼릭 링크를 mods-available을 가리키는 mods-enabled에 추가 한 다음 apache2를 시작할 수있었습니다.
크리스 젠크스

6

서버 구성에 포함되지 않은 모듈에 의해 철자가 틀리거나 정의 된 잘못된 명령 'php_value'

prefork mpm 만 Linux (CentOs7 / RHEL7)의 PHP에서 제대로 작동하므로 prefork 이외의 다른 mpm 모듈을 사용하도록 실수로 구성한 경우 Apache httpd-2.4가 위의 오류로 실패 할 수 있습니다. prefork mpm을 사용하도록 Apache httpd 구성을 수정하면 문제.

  1. /etc/httpd/conf.modules.d/10-php.conf

    LoadModule php5_module 모듈 /libphp5.so

  2. /etc/httpd/conf.modules.d/00-mpm.conf

    LoadModule mpm_prefork_module 모듈 /mod_mpm_prefork.so


1

mod_prefork 이외의 다른 MPM을 사용하도록 Apache를 구성한 경우 발생할 수 있습니다. httpd -V명령 으로 사용중인 모듈을 확인하십시오 . 다음과 같이 표시되어야합니다.

...
Server MPM: prefork
...

그렇지 않은 경우 확인

/etc/httpd/conf.modules.d/00-mpm.conf

여기에 설명 된 것처럼 다음 줄이 있고 주석 처리되어 있지 않은지 확인하십시오.

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

다른 모듈을 사용해야 mod_prefork할 경우이 줄을 주석 처리하거나 삭제해야합니다.


1

David가 이전에 언급했듯이 이는 PHP 모드가 Apache2에서 비활성화 되었기 때문일 수 있습니다.

나에게 Apache를 다시 시작할 때 오류로 표시되었습니다.

제어 프로세스가 오류 코드와 함께 종료되어 apache2.service에 대한 작업이 실패했습니다. 자세한 내용은 "systemctl status apache2.service"및 "journalctl -xe"를 참조하십시오.

그런 다음 journalctl -xe 내부에서 :

AH00526 : /etc/apache2/sites-enabled/host.conf의 31 행에서 구문 오류 유효하지 않은 명령 'php_value'(서버 구성에 포함되지 않은 모듈에 의해 철자가 틀렸거나 정의되었을 수 있음)

이것은 우분투 17.10에서 18.04로 업그레이드 할 때 발생했으며 결과적으로 libapache2-mod-php *를 완전히 비활성화했습니다.

우분투에서는 다음과 같이 수정해야합니다.

sudo a2enmod php7.2
sudo systemctl restart apache2

0

그 줄을 주석 처리하십시오.

나는했다

#php_value session.save_handler "files"
#php_value session.save_path    "/var/lib/php/session"

그런 다음 "Plesk에서 재구성 한 다음 아파치를 다시 시작하십시오"를 실행하면 제대로 작동하는 것 같습니다. 10 분 전에 플 리스크 업데이트 # 53 이후에 이런 일이 발생했습니다.


안녕하세요, 저는 Zpanel을 사용하여 Plesk를 사용하지 않습니다. 무엇을 재구성해야합니까? 감사합니다
David E.

나는 기본적으로 그 줄을 제거한 다음 아파치 재시작으로 해결할 수 있습니다. 그러나 plesk에서 호스트를 재구성해야했습니다. cpanel과 동등한 것은 확실하지 않은 버튼입니다.
Jimmy

약간 혼란 스럽습니다. 이것은 핵심 PHP의 일부입니다-세션 지원을 비활성화하려면 컴파일 타임에 농구대를 뛰어 넘어야합니다. 그리고 매뉴얼에 따르면, PHP_INI_ALL에서 둘 다 변경할 수 있습니다 (그러나 php_admin_value를 시도해 볼 가치가 있습니다). 세션 핸들러가 작동합니까? mod_php를 사용하고 있습니까?
symcbean 2016 년

1
그냥 이런 일이 있었어 문제가되는 행을 주석 처리하면 Apache를 시작할 수 있지만 세션 지원은 제거됩니다. mod_php가 비활성화되었을 가능성이 있습니다. Plesk도 사용하고 있습니다.
David Houde

0

Atomic에서 업그레이드를 실행하기 전에 파일을 백업하십시오 php.conf. 그런 다음 업그레이드가 완료된 후 새 파일을 이전 파일로 덮어 씁니다.


0

나는 비슷한 문제가 있었고 php5 모듈이 주석 처리되었다는 것을 깨달았다. 이것은로드 할 수 없다는 것을 의미하고 phpmyadmin conf에서 아마도 php5_module과 함께 작동하고 php5_module과 함께 작동하지 않았기 때문에 php_admin_value 때문에 오류가 발생했습니다. 나는 httpd.conf에 갔고 주석 처리되지 않았습니다.

LoadModule php5_module "c:/wamp/bin/php/php5.5.12/php5apache2_4.dll"

0

편집 : 아래에 내 의견을 구현 한 후이 문제가 발생하는 또 다른 이유가 있음을 발견했습니다. 서버에는 PHP-FPM이 구현되어 있습니다. PHP-FPM 구현의 일부 /etc/httpd/conf.d/php.conf는 비활성화 되었음을 의미합니다 (예 : php.conf.bak로 이름 변경). 최근 업데이트로 새로운 php.conf가 추가되었습니다. 결과적으로 PHP-FPM 구성이 충돌하여 언급 된 오류가 발생했습니다. 수정은 단순히 php.conf의 이름을 다음과 같이 바꾸는 것 php.conf.bak.feb2019입니다. 결과적으로 php.conf는로드되지 않으므로 php-fpm과 충돌하지 않습니다.

/// 편집하기 전에 : /////

나를위한 해결책은 여기에 제공된 답변의 조합이었습니다.

오랫동안 업데이트되지 않은 Oracle Linux 7 서버를 업데이트 한 후이 오류가 나타났습니다.

@dasharathmasirkar (@davidhoude @alexlanger)가 제안한 것처럼이 문제는 업데이트 후 mpm prefork 구성이 재정의되어 발생합니다.

이 문제를 해결하려면

확인 /etc/httpd/conf.modules.d/00-mpm.conf하고 다음 줄이 주석 있는지 확인 :

# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

또한 다른 작업자 mpm이 주석 처리되어 충돌하지 않는지 확인하십시오.

# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
# LoadModule mpm_worker_module modules/mod_mpm_worker.so

그런 다음 아파치를 다시 시작하십시오. apachectl restart

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