Cài đặt PHP7 từ Repi repo


13

Tôi đã cài đặt PHP7 từ Remi repo với

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

và nó đang hoạt động thông qua CLI. Bây giờ tôi muốn làm cho nó hoạt động với apache nhưng tôi không thể tìm thấy như vậy để chuyển thành đối số thứ hai cho LoadModule

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

Đây có phải là cách tiếp cận đúng để làm cho PHP7 hoạt động với apache2?


php7.zend.com/install-ubfox.php Nó dành cho Centos7 nhưng nó có thể giúp ích.
angelcool.net

Tôi đã kết thúc việc viết blog.nexcess.net/2015/07/21/install-wordpress-with-php-7 với các bản dựng Zend PHP7.
mbalparda 21/07/2015

PHP7, với trạng thái trước khi phát hành, có vẻ như nó nằm trong danh mục đóng "phần mềm không được hỗ trợ".
ceejayoz

1
find / -iname '*php*.so':)
Marki

Câu trả lời:


23

Theo mặc định "php70" (Bộ sưu tập phần mềm) không cài đặt mod_php.

yum install php70-php

Và kiểm tra xem bạn chưa có mod_php nào khác (chẳng hạn như gói được cung cấp bởi gói cơ sở "php")


Xin chào Remi. Tôi mới cài đặt trên 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) và trong khi cài đặt hoạt động hoàn hảo, các trang web của tôi vẫn đang được phục vụ trong php 5.6. Làm cách nào để "chuyển" nginx sang php 7?
Codemonkey 4/12/2015

Vì fcgi vượt qua 127.0.0.1:9000, tôi cho rằng tôi cần phải vô hiệu hóa bằng cách nào đó 5,6 trên cổng đó và biến nó thành php 7 thay vào đó ... nhưng tâm trí tôi trống rỗng! Tôi đoán rằng nếu tôi gỡ cài đặt tất cả các nội dung 5.6 trước, sau đó cài đặt 7, điều đó cũng sẽ giải quyết nó?
Codemonkey 4/12/2015

Nếu bạn kết hôn với một phiên bản php, bạn có thể tắt "php-fpm" và sử dụng "php70-php-fpm". Nếu bạn cần cả hai, hãy thay đổi tùy chọn nghe trong định nghĩa nhóm và cấu hình nginx.
Remi Collet

2
Tuyệt vời, cảm ơn. Đối với bất kỳ ai khác trong cùng một chiếc thuyền, điều này thực hiện mẹo: service php-fpm stop, service php70-php-fpm start. Bạn sẽ tìm thấy các tệp conf php.ini và php-fpm /etc/opt/remi/php70/chứ không chỉ trong etc.
Codemonkey

@RemiCollet Tôi đã cài đặt php 5.6 bằng cách sử dụng repo repos. Biết làm thế nào tôi có thể nâng cấp 5.6 lên 7? Tôi chỉ cần một phiên bản. Tiếng Phạn.
PHP

6

FYI cho những ai đang tìm cách cài đặt PHP 7 bằng cách sử dụng remi-php70kho lưu trữ (bây giờ PHP 7.0.0 đã được phát hành), bạn có thể cài đặt các gói bằng cách sử dụng cùng tên gói mà bạn biết và yêu thích, ví dụ:

  • php
  • php-cli
  • php-common
  • php-devel
  • php-fpm
  • php-gd
  • php-mbstring
  • php-pdo
  • Vân vân.

Làm sao? php54 dường như là mặc định với remi-release-7.rpm?
giorgio79

1
@ giorgio79 nếu bạn bật remi-php70.repovà tắt tất cả các phiên bản php khác từ repi remi , chạy yum install php-fpmtheo mặc định sử dụng 7.0, nhưng điều này KHÔNG hoạt động với 7.1 (hoặc các bản phát hành khác trong tương lai)
nhẹ nhàng vào

2

PHP70 dường như cũng cài đặt mọi thứ trong / etc / opt / remi / php70 /:

bạn sẽ cần phải chạy:

source /opt/remi/php70/enable

3
Bạn nên giải thích. Tại sao bạn cần phải chạy nó? Nó làm gì? Làm thế nào nó giúp OP tìm thấy mô-đun Apache?
Marki

Nếu PHP 7 vẫn không hoạt động, bạn sẽ cần chạy nó để làm cho nó hoạt động. Nó sẽ thêm một dòng trong apache để tải mô-đun php70.
dùng1455180

điều này sẽ ngừng hoạt động nếu bạn đăng xuất và đăng nhập lại. Đây là vấn đề tôi đang gặp phải.
Edward

Cái quái gì đã đốt cháy tôi trong bản cài đặt 7.4 của tôi! Đã thêm các mục PATH khi cần thiết và nó đang hoạt động. Sheesh không biết tại sao nó được thiết kế như vậy!
emmdee

1

Nếu bạn đã cài đặt phiên bản php cũ hơn (như 5.6), đừng quên làm một cái gì đó như thế này:

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

Khởi động lại apache và điều đó nên làm điều đó.


1
Thật kỳ lạ, giải pháp này đã sửa nó cho tôi sau vài giờ lẩm bẩm xung quanh.
giorgio79

1

Đối với bất kỳ ai khác đang cố nâng cấp từ PHP 5.6 lên 7.0.1 trên Centos 6.7:

Tôi đã quản lý để làm việc này ngày hôm nay gần như @mbalparda đã liệt kê nhưng không sử dụng phát hành epel (mặc dù một số repos epel được kích hoạt và sử dụng)

Tôi đã cài đặt php 5.6 từ IUS ( https://ius.io/GettingStarted/ ) ( https://centos6.iuscommunity.org/ius-release.rpm ), vì vậy tôi đã xóa chúng bằng cách:

# 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
...

và vì thế

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

theo sau là các lệnh được liệt kê:

# 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

trộn gói php70- * và php56u- * trong cùng một lệnh có vẻ rất lạ. Có lẽ là không mong muốn. Và nếu bạn muốn có một phiên bản duy nhất, sử dụng SCL không phải là giải pháp đơn giản nhất. Đơn giản nhất là kích hoạt kho lưu trữ remi-php70 và "cập nhật yum". Hãy nhớ thử thuật sĩ mới: rpms.remirepo.net/wizard
Remi Collet

@RemiCollet cảm ơn vì đã chỉ ra lỗi đánh máy, chỉnh sửa bài đăng để phản ánh tương tự - Tôi có nghĩa là viết php70-php-mysqlnd, v.v. nhưng sao chép / dán sai ... Ngoài ra, trình hướng dẫn có vẻ tuyệt vời. Cảm ơn!
web80443
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.