Установите PHP7 из репо репо

13

Я установил PHP7 из репо с помощью

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

и это работает через CLI. Теперь я хочу, чтобы он работал с Apache, но я не могу найти так, чтобы передать в качестве второго аргумента в LoadModule

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

Это правильный подход, чтобы заставить PHP7 работать с apache2?

mbalparda
источник
php7.zend.com/install-ubuntu.php Это для Centos7, но это может помочь.
angelcool.net
В итоге я написал blog.nexcess.net/2015/07/21/install-wordpress-with-php-7 со сборками Zend PHP7.
mbalparda
PHP7, учитывая его предварительный статус, кажется, что он полностью попадает в категорию «неподдерживаемое программное обеспечение».
ceejayoz
1
find / -iname '*php*.so':)
Марки

Ответы:

23

По умолчанию «php70» (Software Collection) не устанавливает mod_php.

yum install php70-php

И убедитесь, что у вас нет другого mod_php (например, предоставленного базовым пакетом php)

Реми Коллет
источник
Привет Реми. Я только что установил на 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), и хотя установка работала без сбоев, мои сайты по-прежнему обслуживаются в php 5.6. Как мне "переключить" nginx на php 7?
Codemonkey
Так как fcgi проходит через 127.0.0.1:9000, я предполагаю, что мне нужно каким-то образом отключить 5.6 на этом порту и сделать вместо него php 7 ... но мой разум опустел! Я предполагаю, что если я сначала удалю все 5.6, а затем установлю 7, это тоже разрешит?
Codemonkey
Если вам нужна одна версия php, вы можете отключить «php-fpm» и использовать вместо него «php70-php-fpm». Если вам нужны оба варианта, измените параметр прослушивания в определении пула и конфигурацию nginx.
Реми Коллет
2
Фантастика, спасибо. Для тех , кто еще в одной лодке это делает трюк: service php-fpm stop, service php70-php-fpm start. Вы найдете файлы php.ini и php-fpm conf, /etc/opt/remi/php70/а не просто в etc.
Codemonkey
@RemiCollet Я установил php 5.6 с помощью репо. Знаете, как я могу обновить 5.6 до 7? Мне нужна только одна версия. Thansk.
PHPst
6

Для тех, кто хочет установить PHP 7 с помощью remi-php70репозитория (теперь, когда PHP 7.0.0 выпущен), вы можете устанавливать пакеты, используя те же имена пакетов, которые вы знаете и любите, например:

  • php
  • php-cli
  • php-common
  • php-devel
  • php-fpm
  • php-gd
  • php-mbstring
  • php-pdo
  • и т.п.
geerlingguy
источник
Как? php54, кажется, по умолчанию с remi-release-7.rpm?
giorgio79
1
@ giorgio79, если вы включаете remi-php70.repoи отключаете все остальные версии php из репозиториев remi, при запуске yum install php-fpmпо умолчанию используется 7.0, но это НЕ работает с 7.1 (или другими будущими выпусками)
мягко,
2

PHP70 также, кажется, устанавливает все в / etc / opt / remi / php70 /:

вам нужно будет запустить:

source /opt/remi/php70/enable
user1455180
источник
3
Вы должны уточнить. Зачем вам это нужно? Что оно делает? Как это помогает ОП найти модуль Apache?
Марки
Если PHP 7 все еще не работает, вам нужно запустить его, чтобы заставить его работать. Это добавит строку в apache для загрузки модуля php70.
user1455180
это перестанет работать, если вы выйдете из системы и снова войдете в систему. Это проблема, с которой я сталкиваюсь.
Эдвард
Какого черта этот сжег меня на моей 7.4 установке! Добавлены записи PATH по мере необходимости, и это работает. Не знаю, почему это так задумано!
Эмми
1

Если у вас установлена ​​более старая версия php (например, 5.6), не забудьте сделать что-то вроде этого:

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

Перезапустите Apache, и это должно сделать это.

Божидар Сиканджич
источник
1
Как ни странно, это решение исправило его для меня после нескольких часов бормотания.
giorgio79
1

Для тех, кто пытается обновить PHP 5.6 до 7.0.1 на Centos 6.7:

Мне удалось заставить это работать сегодня почти так же, как в списке @mbalparda, но без использования epel-release (хотя несколько репозиториев epel включены и используются)

У меня установлен php 5.6 из репозитория IUS ( https://ius.io/GettingStarted/ ) ( https://centos6.iuscommunity.org/ius-release.rpm ), поэтому я удалил их:

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

и так

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

затем следуют перечисленные команды:

# 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
источник
Смешивание пакетов php70- * и php56u- * в одной команде выглядит очень странно. Вероятно, нежелательный. И если вы хотите одну версию, использование SCL - не самое простое решение. Самое простое - включить репозиторий remi-php70 и «yum update». Не забудьте попробовать новый мастер: rpms.remirepo.net/wizard
Реми Коллет
@RemiCollet спасибо за указание на опечатку, отредактировал пост, чтобы отразить то же самое - я хотел написать php70-php-mysqlnd и т. Д., Но скопировал / вставил неправильно / отредактировал ... Кроме того, мастер кажется превосходным. Благодарность!
site80443