Instal PHP7 dari Remi repo

13

Saya menginstal PHP7 dari Remi repo dengan

sudo yum -y install httpd
sudo yum -y install epel-release
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 
sudo rpm -Uvh remi-release-6*.rpm
sudo yum -y --enablerepo=remi,remi-test install php70
scl enable php70 'php -v'
sudo ln -s /usr/bin/php70 /usr/bin/php

dan itu bekerja melalui CLI. Sekarang saya ingin membuatnya berfungsi dengan apache tetapi saya tidak dapat menemukan sehingga untuk lulus sebagai argumen kedua ke LoadModule

LoadModule php7_module        unknown_path  
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

Apakah ini pendekatan yang benar untuk membuat PHP7 berfungsi dengan apache2?

mbalparda
sumber
php7.zend.com/install-ubuntu.php Ini untuk Centos7 tetapi mungkin membantu.
angelcool.net
Saya akhirnya menulis blog.nexcess.net/2015/07/21/install-wordpress-with-php-7 dengan Zend PHP7 build.
mbalparda
PHP7, mengingat status pra-rilisnya, sepertinya masuk dalam kategori "tidak didukung".
ceejayoz
1
find / -iname '*php*.so':)
Marki

Jawaban:

23

Secara default "php70" (Pengumpulan Perangkat Lunak) tidak menginstal mod_php.

yum install php70-php

Dan periksa Anda tidak memiliki mod_php lain (seperti yang disediakan oleh paket dasar "php")

Remi Collet
sumber
Hai Remi. Saya baru saja menginstal pada centos 6.7 ( yum install php70-php-pear php70-php-bcmath php70-php-pecl-jsond-devel php70-php-mysqlnd php70-php-gd php70-php-common php70-php-fpm php70-php-intl php70-php-cli php70-php php70-php-xml php70-php-opcache php70-php-pecl-apcu php70-php-pecl-jsond php70-php-pdo php70-php-gmp php70-php-process php70-php-pecl-imagick php70-php-devel php70-php-mbstring) dan ketika instalasi bekerja dengan baik, situs saya masih dilayani di php 5.6. Bagaimana cara "beralih" nginx ke php 7?
Codemonkey
Karena fcgi melewati 127.0.0.1:9000, saya berasumsi saya perlu menonaktifkan 5.6 pada port itu dan menjadikannya php 7 sebagai gantinya ... tetapi pikiran saya menjadi kosong! Saya menduga bahwa jika saya menghapus semua hal-hal 5.6 terlebih dahulu, dan kemudian menginstal 7, itu juga akan menyelesaikannya?
Codemonkey
Jika Anda menggunakan versi php tunggal, Anda dapat menonaktifkan "php-fpm" dan menggunakan "php70-php-fpm". Jika Anda membutuhkan keduanya, ubah opsi mendengarkan dalam definisi kumpulan, dan konfigurasi nginx.
Remi Collet
2
Fantastis, terima kasih. Bagi siapa pun di kapal yang sama, ini berhasil: service php-fpm stop, service php70-php-fpm start. Anda akan menemukan file conf php.ini dan php-fpm /etc/opt/remi/php70/bukan hanya di etc.
Codemonkey
@RemiCollet Saya menginstal php 5.6 menggunakan repo remo. Tahu bagaimana saya bisa meningkatkan versi 5,6 ke 7? Saya hanya perlu satu versi. Bahasa thans.
PHPst
6

FYI bagi mereka yang ingin menginstal PHP 7 menggunakan remi-php70repositori (sekarang PHP 7.0.0 telah dirilis), Anda dapat menginstal paket menggunakan nama paket yang sama yang Anda kenal dan sukai, misalnya:

  • php
  • php-cli
  • php-common
  • php-devel
  • php-fpm
  • php-gd
  • php-mbstring
  • php-pdo
  • dll.
geerlingguy
sumber
Bagaimana? php54 tampaknya menjadi default dengan remi-release-7.rpm?
giorgio79
1
@ giorgio79 jika Anda mengaktifkan remi-php70.repodan menonaktifkan semua versi php lainnya dari repo remi, berjalan yum install php-fpmsecara default menggunakan 7.0, tetapi ini TIDAK berfungsi dengan 7.1 (atau rilis lain di masa mendatang)
lembut
2

PHP70 juga tampaknya menginstal semuanya di / etc / opt / remi / php70 /:

Anda harus menjalankan:

source /opt/remi/php70/enable
pengguna1455180
sumber
3
Anda harus menguraikan. Mengapa Anda perlu menjalankannya? Apa fungsinya? Bagaimana cara membantu OP menemukan modul Apache?
Marki
Jika PHP 7 masih tidak berfungsi Anda harus menjalankannya untuk membuatnya berfungsi. Ini akan menambahkan baris di apache untuk memuat modul php70.
user1455180
ini akan berhenti berfungsi jika Anda keluar dan masuk kembali. ini adalah masalah yang saya hadapi.
Edward
Apa yang membuat saya terbakar pada instal 7.4 saya! Menambahkan entri PATH sesuai kebutuhan dan berfungsi. Dia tidak tahu mengapa itu dirancang seperti itu!
emmdee
1

Jika Anda memiliki versi php yang lebih lama (seperti 5.6) diinstal, jangan lupa untuk melakukan sesuatu seperti ini:

cd /etc/httpd/conf.d/
mv php.conf php.conf.dis

Nyalakan kembali apache dan itu harus dilakukan.

Bozidar Sikanjic
sumber
1
Anehnya, solusi ini memperbaikinya bagi saya setelah beberapa jam bergumam.
giorgio79
1

Untuk orang lain yang mencoba meningkatkan versi dari PHP 5.6 ke 7.0.1 di Centos 6.7:

Saya berhasil membuat ini berfungsi hari ini hampir seperti @mbalparda telah terdaftar tetapi tanpa menggunakan epel-release (meskipun beberapa repel epel diaktifkan dan digunakan)

Saya memiliki php 5,6 dari IUS ( https://ius.io/GettingStarted/ ) repo ( https://centos6.iuscommunity.org/ius-release.rpm ) diinstal, jadi saya menghapusnya dengan:

# yum list installed | grep php5
php56u.x86_64          5.6.14-1.ius.centos6
php56u-cli.x86_64      5.6.14-1.ius.centos6
php56u-common.x86_64   5.6.14-1.ius.centos6
...

dan sebagainya

# yum erase php56u php56u-cli php56u-common php56u-mcrypt php56u-mysqlnd ...

diikuti oleh perintah yang tercantum:

# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 
# rpm -Uvh remi-release-6.rpm
# yum install php70-php php70-php-cli php70-php-common php70-php-mcrypt php70-php-mysqlnd ...
# scl enable php70 'php -v'
# sudo ln -s /usr/bin/php70 /usr/bin/php
# service httpd restart
site80443
sumber
menggabungkan paket php70- * dan php56u- * dalam perintah yang sama tampaknya sangat aneh. Mungkin tidak diinginkan. Dan jika Anda menginginkan versi tunggal, menggunakan SCL bukanlah solusi paling sederhana. Paling sederhana adalah mengaktifkan repositori remi-php70 dan "pembaruan yum". Ingatlah untuk mencoba wizard baru: rpms.remirepo.net/wizard
Remi Collet
@RemiCollet terima kasih untuk menunjukkan kesalahan ketik, mengedit pos untuk mencerminkan hal yang sama - saya bermaksud untuk menulis php70-php-mysqlnd dll tetapi salin-tempel / edit salah ... Juga, penyihir itu tampak hebat. Terima kasih!
site80443