Встановіть PHP7 від Remi repo


13

Я встановив PHP7 від Remi repo с

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?


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':)
Marki

Відповіді:


24

За замовчуванням "php70" (Колекція програмного забезпечення) не встановлюйте 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, використовуючи remo repos. Знайте, як я можу оновити 5.6 до 7? Мені потрібна лише одна версія. Танськ.
PHPst

6

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

  • php
  • php-cli
  • php-common
  • php-devel
  • php-fpm
  • php-gd
  • php-mbstring
  • php-pdo
  • тощо.

Як? Здається, php54 є типовим для remi-release-7.rpm?
giorgio79

1
@ giorgio79, якщо ви включите remi-php70.repoта відключите всі інші версії PHP від ремі-репостів , yum install php-fpmза замовчуванням використовується 7.0, але це НЕ працює з 7.1 (або іншими майбутніми випусками)
тихо

2

PHP70 також, здається, встановлює все під / etc / opt / remi / php70 /:

вам потрібно запустити:

source /opt/remi/php70/enable

3
Вам слід детальніше. Навіщо вам це запускати? Що це робить? Як це допомагає ОП знайти модуль Apache?
Марки

Якщо PHP 7 все ще не працює, потрібно запустити його, щоб він працював. Це додасть рядок в apache для завантаження модуля php70.
user1455180

це перестане працювати, якщо ви виходите з системи та знову входите в систему. Це проблема, з якою я стикаюся.
Едвард

Що за чорт цей спалив мене на моїй 7.4 встановити! Додано записи PATH за потребою, і це працює. Шееш не маєш ідеї, чому це було спроектовано так!
emmdee

1

Якщо у вас встановлена ​​старша версія php (на зразок 5.6), не забудьте зробити щось подібне:

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

Перезапустіть апаш і це повинно це зробити.


1
Як не дивно, це рішення вирішило мене після кількох годин бурчання.
giorgio79

1

Для всіх, хто намагається оновити з PHP 5.6 до 7.0.1 на Centos 6.7:

Сьогодні мені вдалося зробити цю роботу майже так, як перелічено @mbalparda, але без використання epel-release (хоча кілька репостів epel увімкнено та використовуються)

У мене було встановлено php 5.6 з IUS ( https://ius.io/GettingStarted/ ) repo ( 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

змішування пакету php70- * та php56u- * в одній команді здається дуже дивним. Напевно, небажаний. І якщо ви хочете отримати єдину версію, використання SCL - це не найпростіше рішення. Найпростіше ввімкнути сховище remi-php70 і "оновити оновлення". Не забудьте спробувати нового майстра: rpms.remirepo.net/wizard
Remi Collet

@RemiCollet дякую за вказівку на друкарську помилку, відредагував публікацію, щоб відобразити те саме - я мав намір писати php70-php-mysqlnd тощо, але копіювати / вставляти / редагувати неправильно ... Крім того, майстер здається чудовим. Спасибі!
site80443
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.