Hata Apache “php değeri” ni başlat


12

Benim vps güncelledikten sonra, aşağıdaki hatayı alıyorum:

Apache başlatılamadı: /etc/httpd/conf.d/php.conf dosyasının 31. satırındaki httpd: Sözdizimi hatası: Geçersiz komut 'php_value', belki yanlış yazılmış veya sunucu yapılandırmasında bulunmayan bir modül tarafından tanımlanmış [FAILED]

PHP'de modülleri etkinleştir:

[PHP Modülleri] bz2 takvim Çekirdek ctype kıvırmak tarih dom ereg exif fileinfo filtre ftp gd gettext gmp hash iconv imap intl ionCube Loader json libxml mbstring mcrypt mhash mysql mysqli openssl pcntl pcre PDO pdo_mysql pdo3ql sql pite sxt shl wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib [Zend Modülleri] ionCube PHP Yükleyici

Hataya göre satır:

php_value session.save_handler "dosyalar"

Hata ne anlama geliyor ve nasıl düzeltebilirim?

Yanıtlar:


12

Kısa bir süre önce CentOS'ta Plesk 9.5 kullanarak bu tam problemle karşılaştım.

Plesk'e yapılan bir güncellemeden kaynaklanıp kaynaklanmadığından emin olamıyorum. Müşteri yakın zamanda herhangi bir değişiklik yapılmadığını düşünüyor, ancak Apache bu hatayla başlayamadı.

Sistemin bir ihlal nedeniyle olmadığından emin olmak için bir değerlendirmeden sonra, bazı sorun giderme işlemleri yaptım mod_phpve Apache yapılandırmasından kaldırıldığını belirledim . Plesk ayarlarını kontrol ettikten sonra kutudaki her hayalet FastCGI ve SuExec kullanıyordu.

FastCGI ve SuExec kullanırken, php.conf (FastCGI) ve .htaccess (SuExec) içindeki PHP yönergelerini değiştiremezsiniz.

Müşteri başlangıçta rahatsız edici satırları yorumlamıştı, ancak bu her şey için oturum desteğini kırdı. Bunu çözebildiğim tek yol moddphp'yi httpd.conf'a geri eklemekti.

Diğer LoadModule'lerin bulunduğu bölüme aşağıdaki satırı ekleyin. Yolun (../modules/) oradaki modüllerin geri kalanıyla eşleştiğinden emin olun. Şansın sisteminizde zaten mevcut olması ve güncelleme sırasında yapılandırmadan kaldırılması olasıdır.

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

bash# apachectl restart

Bu beni hazırlıksız yakaladı ve soruna neden olan yükseltme veya bunun en iyi düzeltme olup olmadığından emin olamıyorum. Yorum için açık, ama çok /etc/httpd/conf.d/php.confşeyler kırmak gibi php direktifleri yorum karşı tavsiye .


teşekkürler David, günü kurtardı. Yum günlüğüm php 5.3.26 için otomatik bir güncelleştirme gösteriyor ancak httpd.conf'un neden fazla yazıldığını gerçekten anlamıyorum. Saygılarımızla

Teşekkür ederim! Httpd.conf'a gittim ve LoadModule php5_module pathfilename satırının yorumlandığını gördüm, sadece # 'ı kaldırdım ve her şey normale döndü.
Nickool

Bu hatayı Ubuntu 16.04'ten 18.04.1'e yükselttikten sonra aldım. Nedenini bilmiyorum ve mods-available ve mods-etkin dizin yerine hiçbir modül dizini yoktur. Ben mods-available işaret mods etkin işaret php7.2.conf ve php7.2.load için semboller ekledim ve sonra apache2 başlayabildi.
Chris Jenks

6

Sunucu yapılandırmasına dahil edilmemiş bir modül tarafından yanlış yazılmış veya tanımlanmış geçersiz 'php_value' komutu

Eğer yanlışlıkla prefork dışında başka bir mpm modülü kullanmak için yapılandırdıysanız Apache httpd-2.4 başarısız olabilir (sadece prefork mpm Linux üzerinde php ile iyi çalışır (CentOs7 / RHEL7). sorun.

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

    LoadModule php5_module modülleri / libphp5.so

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

    LoadModule mpm_prefork_module modülleri / mod_mpm_prefork.so


1

Apache'yi mod_prefork dışında başka bir MPM kullanacak şekilde yapılandırdıysanız bu gerçekleşebilir. Hangi modülün httpd -Vkomutla kullanıldığını kontrol edin . Size şöyle bir şey göstermelidir:

...
Server MPM: prefork
...

Değilse, kontrol edin

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

burada açıklandığı gibi ve bir sonraki satırın içinde bulunduğundan ve yorumlanmamış olduğundan emin olun:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Başka bir modül kullanmanız mod_preforkgerekirse, bu satırları yorumlamanız veya silmeniz gerekir.


1

Daha önce David tarafından yorumlandığı gibi, bunun nedeni PHP modunun Apache2'den devre dışı bırakılmış olmasıdır.

Bana göre, Apache'yi (yeniden) başlattığınızda bir hata olarak ortaya çıktı:

Kontrol işleminden hata kodu ile çıkıldığı için apache2.service işi başarısız oldu. Ayrıntılar için bkz. "Systemctl status apache2.service" ve "journalctl -xe".

Sonra, journalctl -xe içinde:

AH00526: /etc/apache2/sites-enabled/host.conf 'un 31. satırındaki sözdizimi hatası' php_value 'geçersiz komutu, yanlış yazılmış veya sunucu yapılandırmasına dahil olmayan bir modül tarafından tanımlanmış

Bu, libapache2-mod-php * 'yi tamamen devre dışı bırakan Ubuntu 17.10'dan 18.04'e (ve sonuç olarak PHP7.1'den 7.2'ye) yükseltirken oldu.

Ubuntu'da aşağıdakiler düzeltilmelidir:

sudo a2enmod php7.2
sudo systemctl restart apache2

0

Sadece bu satırları yorumlayın.

sahiptim

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

Sonra "Eğer Plesk içinde yeniden yapılandırmak, sonra apache yeniden başlatın" çalıştırın iyi çalışıyor gibi görünüyordu. Bu, 10 dakika önce plesk güncellemesi # 53'ten sonra olmuştu.


Merhaba, Plesk kullanmıyorum, Zpanel kullanıyorum. Yeniden yapılandırmam gereken nedir? Teşekkürler
David E.

Temelde bu satırları kaldırdım ve sonra bir apache yeniden başlatma onu düzeltebilir. Ama ben vles plesk içinde yeniden yapılandırmak zorunda kaldı. Bu sadece bir düğme, cpanel eşdeğerinden emin değilim.
Jimmy

Bu biraz rahatsız edici. Bu çekirdek php bir parçasıdır - oturum desteğini devre dışı bırakmak için derleme sırasında çemberler atlamak gerekir. Ve kılavuza göre, her ikisi de PHP_INI_ALL içinde değiştirilebilir (ancak php_admin_value denemeye değer olabilir). Oturum işleyiciniz çalışıyor mu? Mod_php kullanıyor musunuz?
symcbean

1
Sadece bu olmuştu. Rahatsız edici satırları yorumlamak Apache'nin başlamasına izin verir, ancak diğer şeylerin yanı sıra oturum desteğini kaldırır. Büyük olasılıkla mod_php devre dışı bırakıldı. Ben de Plesk kullanıyorum.
David Houde

0

Atomic'den yükseltmeyi çalıştırmadan önce dosyanın bir yedeğini alın php.conf. Daha sonra yükseltme işlemi tamamlandıktan sonra yeni dosyanın üzerine eski dosyayı yazın.


0

Ben benzer bir sorun vardı, php5 modülü yorumlanamamış, yani yükleyemediğini fark etti ve phpmyadmin conf bana muhtemelen php5_module ile çalışıyordu php_admin_value olması nedeniyle hatalar veriyordu ve yerinde değildi. Httpd.conf'a gittim ve uncommented:

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

0

Düzenleme : Aşağıdaki yorumlarımı uyguladıktan sonra, bu sorunla karşılaşıyorum başka bir nedeni olduğunu buldum. Sunucuda PHP-FPM uygulanmıştır. PHP-FPM uygulamasının bir kısmı /etc/httpd/conf.d/php.conf, devre dışı bırakıldığı anlamına gelir (yani, php.conf.bak olarak yeniden adlandırılmıştır). Son güncelleme yeni bir php.conf getirdi. Sonuç olarak PHP-FPM yapılandırması çakıştı ve belirtilen hatalara neden oldu. Düzeltme sadece php.conf gibi bir şey için yeniden adlandırmak oldu php.conf.bak.feb2019. Sonuç olarak, php.conf yüklenmez ve bu nedenle php-fpm ile çakışma olmaz.

/// Düzenlemeden önce: /////

Benim için çözüm burada verilen cevapların bir kombinasyonuydu.

Uzun zamandır güncellenmeyen bir Oracle Linux 7 sunucusunu güncelledikten sonra bu hatayı fark ettim

@Dasharathmasirkar, @davidhoude @alexlanger tarafından önerildiği gibi, sorun güncellemeden sonra mpm prefork config'in geçersiz kılınmasından kaynaklanmaktadır.

Bunu ele almak için:

/etc/httpd/conf.modules.d/00-mpm.confaşağıdaki satırın önerilmediğinden emin olun ve kontrol edin :

# 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

Ayrıca, diğer çalışan mpm'sinin çakışmaması için yorumlandığından emin olun:

# 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

Ardından apache'yi yeniden başlatın: apachectl restart

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.