16.04'e yükseltin. php7 tarayıcıda çalışmıyor

64

Sadece 14.10'dan 16.04'e yükseltildim ve PHP 7'yi apache'de nasıl yapılandıracağından emin değilim. Php7.0.conf dosyasını son satırları, apache2'yi yeniden başlatmayı ve değişiklik yapmamak için değiştirdim.

php'ye izin vermek için apache2 kurulumunu değiştirmem gerekiyor mu?

PHP komut satırından çalışır, bu yüzden php'nin düzgün şekilde kurulduğundan eminim.

Ayrıca, mpadstring'in eksik olduğunu söyleyen phpadmin'de bir hata alıyorum.

    
sordu David Wright 23.04.2016 00:54

7 cevap

78

Daha önce olduğu gibi, Apache için PHP'yi yüklemelisiniz.

Sunucu Rehberi 'nden:

sudo apt install php libapache2-mod-php

Bu komut PHP'yi ve Apache 2 PHP modülünü kuracaktır. Apache'yi daha önce olduğu gibi yapılandırın ( sudo a2enmod php7.0 , bence modülü açacaktır).

mbstring sorununuz benzer - bu uzantıyı yüklemeniz gerekiyor:

sudo apt install php7.0-mbstring

Diğer eksik modüller için de yüklenmesi gereken benzer şeyler olacaktır.

    
verilen cevap Thomas Ward 23.04.2016 01:10
39

php7’yi sunucunuzla çalışacak şekilde yapılandırmak için bazı yapılandırmalar yapmanız gerekir:

1 . % Co_de% 'nin herhangi bir izini kaldırdığınızdan emin olun

Bir terminali aç Ctrl + Alt + T ve:

cd /etc/apache2/mods-enabled
ls -la

Çıktının olmaması , php/php5 veya php5.conf içermesi gerekir, ancak varsa, aşağıdakileri yapın:

# this is the proper way of disabling modules
sudo a2dismod php5

# run this only if the above command didn't remove the php5 sym-links
sudo rm php5.load
sudo rm php5.conf

Şimdi bunun yerine php5.load ve php7.0.conf değerini ekleyin:

# this is the proper way of enabling modules
sudo a2enmod php7.0

# run this only if the above command didn't create the php7.0 sym-links
sudo ln -s php7.0.conf ../mods-available/php7.0.conf
sudo ln -s php7.0.load ../mods-available/php7.0.load

php7.0.load çıktısı şu şekilde görünmelidir:

lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.conf -> ../mods-available/php7.0.conf
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.load -> ../mods-available/php7.0.load

Modüllerle uğraştıktan sonra ls -la php* dizinine geliyoruz. Php / php5'in herhangi bir izini burada /etc/apache2/conf-enabled

ile de kaldırın

Ardından, gerekirse:

# the proper way of enabling configs
sudo a2enconf php7.0-cgi
sudo a2enconf php7.0-fpm

# do those commands only if the above didn't work out
sudo ln -s php7.0-cgi.conf ../conf-available/php7.0-cgi.conf
sudo ln -s php7.0-fpm.conf ../conf-available/php7.0-fpm.conf

sudo rm <name> çıktısı şu şekilde görünmelidir:

lrwxrwxrwx 1 root root 33 Apr 21 17:00 php7.0-cgi.conf -> ../conf-available/php7.0-cgi.conf
lrwxrwxrwx 1 root root 33 Apr 21 17:01 php7.0-fpm.conf -> ../conf-available/php7.0-fpm.conf

2 . Apache2'yi yeniden başlatma

Apache'yi yeniden başlatmadan önce Apache ls -la php* 'yi temizlediğinizden emin olun ve ardından yeniden başlatın:

sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart

Şimdi, error.log değerini vererek error.log 'yi kontrol edin (daha azıyla boruları kolayca yukarı ve aşağı kaydırmanızı sağlar, cat /var/log/apache2/error.log | less çıkışı çıkarır).

q öğeniz çok içeriyorsa (ve tam olarak bir yığın anlamına gelir)% error.log aşağıdakileri yapar:

sudo apt install libsnmp-dev
sudo net-snmp-config --snmpconfpath
sudo apt-get install snmp snmp-mibs-downloader
sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart

Tekrar kontrol et, MIBS not found şimdi sadece 3 satır içermelidir:

[Sat Apr 23 01:39:07.504005 2016] [mpm_prefork:notice] [pid 1647] AH00169: caught SIGTERM, shutting down
[Sat Apr 23 01:39:08.685774 2016] [mpm_prefork:notice] [pid 9590] AH00163: Apache/2.4.18 (Ubuntu) mod_perl/2.0.9 Perl/v5.22.1 configured -- resuming normal operations
[Sat Apr 23 01:39:08.685938 2016] [core:notice] [pid 9590] AH00094: Command line: '/usr/sbin/apache2'

php7.0 ile Apache'niz şimdi doğru şekilde yapılandırılmalıdır.

    
verilen cevap Videonauth 23.04.2016 01:40
11

Bu problemi de aldım.

Tüm PHP'yi silmem ve php7'yi yeniden kurmam için bana yardımcı oldu.

Gerekli olan her şeydi:

sudo apt-get purge php*

php7, daha sonra yalnızca yeniden yüklemek için silinecek:

sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi  php7.0 libapache2-mod-php7.0
    
verilen cevap Tom Idar Wangberg 14.08.2016 01:21
7

Benim durumum sadece php çalışma değildi ama phpmyadmin aswell adım adım böyle yaptım

sudo apt install php libapache2-mod-php
sudo apt install php7.0-mbstring
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
service apache2 restart

Ve sonra:

gksu gedit /etc/apache2/apache2.conf

Son satırda Include /etc/phpmyadmin/apache.conf

ekliyorum

Bu, tüm sorunlarla ilgili bir anlaşma yapar

    
verilen cevap Maciej 05.05.2016 15:11
7

Bu sorun için bulduğum çözüm, short_open_tag için varsayılan PHP.INI ayarıydı. Varsayılan olarak bu 'Kapalı' olarak ayarlanmıştır. PHP kodum

ile başladı
   <?

yerine

   <?php

short_open_tag etkinse (php.ini sayfamda 'Kapalı' yı 'Açık' olarak değiştirerek) ve apache sunucusunu ( sudo service apache2 restart ) sıfırladıysanız ve PHP canlı geri döndü.

    
verilen cevap patrick 27.10.2016 17:07
0

İşte

sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
service apache2 restart

Not: Yukarıdaki% gereklidir.% Co_de% libphp7.so ile birlikte php-apache ile çalışmaz, ancak bunun yerine yalnızca çalışacaktır mod_mpm_event . ( FS # 39218 )

Aksi takdirde, aşağıdaki hatayı alırsınız:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
AH00013: Pre-configuration failed
httpd.service: control process exited, code=exited status=1

Alternatif olarak, mod_mpm_prefork 'yi kullanabilirsiniz (bkz. php-fpm ve mod_proxy_fcgi'yi aşağıda kullanma ).

    
verilen cevap user539644 04.05.2016 22:31
0

Ben de, php komut dosyalarını Ubuntu 16.04'teki komut satırından başarıyla çalıştırabilirim, ancak herhangi bir tarayıcıda yapamam. Sorunu çözme girişiminde hem php7.0 hem de apache2'nin mevcut kopyalarını temizledim. Daha sonra apache2'nin php kütüphanesinin yanı sıra hem komut satırından hem de yeniden yükledim. "A2enmod php7.0" ı çalıştırmayı denediğimde, bir kez daha php komut dosyalarını komut satırından çalıştırabilmemize rağmen php7.0 modülünün mevcut olmadığını belirten bir hayal kırıklığı yaşadım. İçgüdüsü devreye girdi. Synaptic'i açarken, apache2 php kütüphanesini komut satırından yüklediğimde, sadece libapache2-mod-php7.0'ı yüklediğimi ve "sarıcı" libapache2-mod'u da yüklemeyi unuttuğumu keşfettim. php, olmadan eski işlev görmez.

    
verilen cevap Bill Wilken 02.09.2016 19:43

Etiketlerdeki diğer soruları oku