Saya baru saja memutakhirkan dari 14.10 ke 16.04 dan saya tidak yakin cara mengkonfigurasi PHP 7 di apache. Saya memang memodifikasi file php7.0.conf menjadi tanda komentar pada baris terakhir, restart apache2 dan tidak ada perubahan.
Apakah saya perlu mengubah pengaturan apache2 untuk mengizinkan php?
PHP berfungsi dari baris perintah jadi saya yakin php sudah terpasang dengan benar.
Selain itu, saya mendapatkan pesan kesalahan pada phpadmin yang mengatakan bahwa mbstring tidak ada.
php
perintah) adalah ortogonal ke SAPI PHP lainnya (apache2, FPM, CGI, ...), jadi baris perintah yang bekerja PHP tidak mengatakan apa-apa tentang bekerja PHP di server HTTP.sudo apt-get install php-mbstring
(siapa yang menyangka, kan?)Jawaban:
Sama seperti sebelumnya, Anda harus menginstal PHP untuk Apache.
Dari Panduan Server :
Perintah itu akan menginstal PHP dan modul Apache 2 PHP. Cukup konfigurasikan Apache seperti sebelumnya (
sudo a2enmod php7.0
, saya pikir, akan menyalakan modul).mbstring
Masalah Anda serupa - Anda harus menginstal ekstensi itu:Untuk modul yang hilang lainnya akan ada hal-hal serupa yang harus diinstal juga.
sumber
sudo a2enmod php7.0
(atau lebih saya ditentukan dengan menonaktifkan dan mengaktifkan kembali pada komputer saya.) Menarik, saya mendapat pesan ini:Considering conflict php5 for php7.0: Enabling module php7.0.
sudo a2enmod php
tidak akan berhasil, saya mencobanya. Namunsudo a2enmod php7.0
akan berhasil.Untuk mengkonfigurasi php7 agar berjalan dengan server Anda, Anda perlu melakukan beberapa konfigurasi:
1. Pastikan Anda menghapus jejak
php/php5
Buka terminal Ctrl+ Alt+ Tdan:
Output tidak boleh mengandung apa pun
php5.conf
atauphp5.load
, tetapi jika itu terjadi, lakukan hal berikut:Sekarang tambahkan
php7.0.conf
danphp7.0.load
sebagai gantinya:Output dari
ls -la php*
akan terlihat seperti ini:Setelah berurusan dengan modul, sekarang kita sampai pada
/etc/apache2/conf-enabled
direktori. Hapus jejak php / php5 di sini juga olehsudo rm <name>
Kemudian, jika perlu lakukan:
Output dari
ls -la php*
akan terlihat seperti ini:2. Mulai Ulang Apache2
Sebelum memulai ulang Apache, pastikan untuk membersihkan Apache
error.log
kemudian mulai kembali:Sekarang periksa
error.log
dengan mengeluarkancat /var/log/apache2/error.log | less
(piping through less memungkinkan Anda untuk dengan mudah menggulir ke atas dan ke bawah,q
keluar dari output).Jika Anda
error.log
mengandung banyak (dan saya benar-benar berarti tumpukan dari) beberapaMIBS not found
lakukan hal berikut:Cek lagi
error.log
sekarang seharusnya hanya berisi 3 baris:Apache Anda dengan php7.0 sekarang harus dikonfigurasi dengan benar.
sumber
a2enmod
dana2dismod
alih-alih bermain-main secara manual dengan tautan dimods-available
/mods-enabled
(sama,a2enconf
dana2disconf
untukconf-{available,enabled}
).a2enmod
dana2dismod
mengingat keadaan modul dalam registri paket apache2 internal, jadi membuat / menghapus tautan secara manual mungkin membuat sistem Anda rusak karena peningkatan di masa mendatang karena skrip pemutakhiran melihat keadaan basis data internal ini.Saya punya masalah ini juga.
Ini membantu saya untuk menghapus semua PHP dan menginstal ulang php7.
Yang dibutuhkan hanyalah:
php7 akan dihapus, setelah itu hanya untuk menginstal ulang:
sumber
sudo apt-get purge php*
akan menghapus phpMyAdmin Anda juga, jika ada.Saya kasus saya tidak hanya php tidak berfungsi tetapi phpmyadmin juga saya lakukan langkah demi langkah seperti itu
Dan kemudian ke:
Di baris terakhir saya menambahkan
Include /etc/phpmyadmin/apache.conf
Itu membuat kesepakatan dengan semua masalah
sumber
Solusi yang saya temukan untuk masalah ini adalah pengaturan PHP.INI default untuk short_open_tag. Secara default ini diatur ke 'Off'. Kode PHP saya dimulai dengan
dari pada
Jika diaktifkan short_open_tag (dengan mengubah 'Nonaktif' ke 'Aktif' di php.ini saya) dan mengatur ulang server apache (
sudo service apache2 restart
) dan PHP muncul kembali hidup-hidup.sumber
https://wiki.archlinux.org/index.php/Apache_HTTP_Server
sumber
Saya juga bisa menjalankan skrip php dengan sukses dari baris perintah di Ubuntu 16.04, tetapi tidak di browser apa pun. Dalam upaya untuk menyelesaikan masalah, saya membersihkan salinan php7.0 dan apache2 yang ada. Setelah itu saya menginstal ulang baik dari baris perintah termasuk juga perpustakaan php apache2. Frustrasi mengikuti ketika saya mencoba menjalankan "a2enmod php7.0," yang memberi tahu saya bahwa modul php7.0 tidak ada meskipun fakta bahwa sekali lagi saya dapat menjalankan skrip php dari baris perintah. Naluri itu muncul. Membuka Synaptic, saya menemukan bahwa ketika saya menginstal pustaka php apache2 dari baris perintah, saya hanya menginstal libapache2-mod-php7.0, dan lupa juga untuk menginstal "wrapper," libapache2-mod- php, tanpanya yang pertama tidak akan berfungsi.
sumber