Как установить PHP 7 (следующее поколение PHP) на Ubuntu

Как установить PHP 7 (следующее поколение PHP) на Ubuntu?

Я хотел установить PHP 7 на чистую установку Ubuntu, чтобы увидеть, с какими проблемами столкнуться.

Вот официальный (но скудный гид):

https://wiki.php.net/phpng

Ответы

Ответ 1

Я справился сам по себе и подумал, что было бы полезно документировать, с какими проблемами я столкнулся, когда я пошел, и как я их преодолел, тем самым спасая других, возможно, от боли и страданий.

Однако я (после факта) нашел этот http://jcutrer.com/howto/linux/how-to-compile-php7-on-ubuntu-14-04, который является намного более чистым руководством, чем то, что я предоставляю ниже.

Из руководства (https://wiki.php.net/phpng):

./buildconf 
mkdir  ~/tmp 
cd ~/tmp
git clone https://git.php.net/repository/php-src.git
cd php-src

Пока все хорошо. На этом этапе у меня возникли проблемы:

./buildconf

Сообщается, что я не установил его. Решение было найдено здесь: https://askubuntu.com/questions/192645/make-command-not-found

Я пробовал это, но у меня все еще были проблемы, поэтому я сделал это:

sudo apt-get purge make  
sudo apt-get install make 

Следующая проблема, когда я попробовал. /buildconf снова, жаловался, что у меня не было autoconfig. Вот решение:

sudo apt-get install autoconf  

Теперь, наконец, нужно запустить команду. /configure и получил следующее:

configure: ПРЕДУПРЕЖДЕНИЕ: вам понадобится re2c 0.13.4 или новее, если вы хотите регенерировать парсер PHP. configure: ошибка: бизон требуется для сборки PHP/Zend при создании GIT checkout!

Установка Bison также появляется для установки re2c, так что это устраняет обе проблемы:

sudo apt-get install bison    

Конфигурация сработала довольно долго, а затем запуталась:

configure: ошибка: xml2-config не найден. Проверьте установку libxml2.

Должно быть легко исправить право? Просто запустите:

sudo apt-get install libxml2

Неа. Не так просто. У нас уже есть последнее и самое лучшее для этого:

libxml2 - это уже самая новая версия.

Хорошо. Возможно, мы сможем решить это, как мы это сделали, и очистить и переустановить:

sudo apt-get purge libxml2 sudo apt-get install libxml2

Неа. Запуск. /configure barfs с той же ошибкой. SO на помощь:

Как исправить ошибку с xml2-config не найден при установке PHP из источников?

По-видимому, нам нужна версия для разработки этой библиотеки:

sudo apt-get install libxml2-dev

./настройте снова, и у нас есть прогресс... новая ошибка:

configure: ошибка: не удается найти OpenSSL

Изучение нашего последнего набега позволяет попробовать:

sudo apt-get install openssl-dev

или

sudo apt-get install open-ssl-dev

Нет, Okay позволяет выполнить поиск:

apt-cache search openssl 

Ничего себе, это довольно много пакетов. Немного сократим его:

apt-cache search openssl | grep php

Хорошо, что дает нам меньший список, но у всех есть php5 спереди, и мы делаем php7 (сборка phpng Next Generation с нуля); будет ли какой-либо из этих пакетов работать? Отключить к интерведам для нашего решения:

https://serverfault.com/questions/415458/php-error-cannot-find-openssls-evp-h

sudo apt-get install libcurl4-openssl-dev pkg-config

Давайте посмотрим, выполнено ли это. /configure happy (нет, но прогресс... новая ошибка):

configure: ошибка: переустановите дистрибутив BZip2

Поиск в Интернете снова приводит нас к:

http://zgadzaj.com/how-to-install-php-53-and-52-together-on-ubuntu-1204

который говорит нам об этом:

sudo apt-get install libbz2-dev

Еще раз мы отправляем молитву богу. /configure и...

Если configure не работает, попробуйте --with-vpx-dir = configure: error: jpeglib.h не найден.

В ИНТЕРВЬЮ!!!

Найдено: http://www.omniweb.com/wordpress/?p=1040

sudo apt-get install libjpeg-dev

Повторите попытку. /configure и SURVEY SAYS:

configure: ошибка: png.h не найден.

С того же веб-сайта, что и выше, он говорит, чтобы сделать это:

sudo apt-get install libpng-dev

Попробуйте./configure AGAIN и SURVEY:

настроить ошибку xpm.h не найдено

Я сделал удар в темноте и ударил цель:

sudo apt-get install libxpm-dev

Еще раз молясь богу. /configure и ответ:

configure: ошибка: freetype-config не найден.

ВСЕ ЗНАТЬ Google направляет нас к богу SO здесь:

Настроить php 5.3 с ошибкой: freetype.h не найден (но установлен libfreetype6-dev)

sudo apt-get install libfreetype6-dev 

Теперь вы, вероятно, узнали образец:

  • выполнить./configure

  • Поиск сообщения об ошибке в вашей любимой поисковой системе или непосредственно на SO.

  • Установите отсутствующий компонент через apt-get.

  • GOTO 1.

Итак, здесь я просто покажу ошибку и команду apt-get или другие команды, которые разрешают проблему:

configure: ошибка: невозможно найти gmp.h

построить php5.3.8 на ubuntu, получить ошибку: configure: ошибка: не удалось найти gmp.h

sudo apt-get install libgmp-dev  
sudo apt-get install libgmp3-dev
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h

configure: ошибка: mcrypt.h не найден. Переустановите libmcrypt.

sudo apt-get install libmcrypt-dev

configure: ошибка: переустановите дистрибутив mysql

http://www.spiration.co.uk/post/1332/install%20PDO_MYSQL%20-%20mysql_config%20and%20header%20files%20problem

sudo apt-get install libmysqlclient15-dev  

configure: ошибка: не удается найти pspell

sudo apt-get install libpspell-dev

Конфигурация: ошибка: не удается найти recode.h где угодно в /usr/ usr/local/usr/opt.

sudo apt-get install librecode-dev

configure: ПРЕДУПРЕЖДЕНИЕ: непризнанные опции: --with-t1lib

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658248

Нет решения. Представляется, что это ошибка регрессии. Обходным решением является удаление -with-t1lib из параметров конфигурации. Я думаю, что это может относиться только к строкам Windows, но я не уверен.

configure: ПРЕДУПРЕЖДЕНИЕ: непризнанные параметры: --with-my-sql

Нет решения. Работайте над тем, чтобы удалить ключ -with-mysql из параметров конфигурации. Поскольку мы включаем pdo-mysql, это, вероятно, не является проблемой.

НАКОНЕЦ Мы фактически создаем PHP7 с этой командой (я предлагаю вам сделать себе чашку кофе, поскольку это занимает некоторое время):

make

Используйте команду sudo make install для фактической установки нашей сборки php:

sudo make install 

Чтобы проверить, все ли хорошо, и мы имеем правильную версию, выполните это в терминале:

cd $HOME/tmp/usr/bin
./php -v

PHP 7.0.0-dev (cli) (построено: 22 июня 2015 г. 18:11:13) Copyright (c) 1997-2015 PHP Group Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies

Ответ 2

Ondřej Surý имеет PPA в https://launchpad.net/~ondrej/+archive/ubuntu/php

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0

Использование PPA, конечно, проще, чем создание из источника!

Заметка для людей с PHP 5.x уже установлена; apt-get немного пожаловался, когда я попытался установить install php7.0 на ящик с PHP 5 на нем, но после того, как я сделал apt-get remove php5, чтобы избавиться от существующей установки PHP 5.6, а затем явно сделал sudo apt-get install php7.0-common, мне удалось чтобы пройти sudo apt-get install php7.0. Не знаю, почему это было необходимо; если кто-то, кто понимает Apt лучше, чем я, хотел бы отредактировать в некоторых лучших инструкциях (или дать лучший ответ в целом и попросить удалить его), тогда не стесняйтесь.

Ответ 3

Установка PHP7 (Nightly Build - последняя сборка) на Ubuntu с помощью терминала

Я предполагаю, что у вас уже установлен apache2, если не установить его с помощью следующей команды:

apt-get install apache2

проверьте, запущен ли apache:

service apache2 status

Вы могли бы увидеть что-то вроде:

apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: ACTIVE (RUNNING)

если apache запущен, а затем протестирован с процессом установки PHP 7:

Сначала добавьте репозиторий PHP7 в список источников, /etc/apt/sources.list, используя предпочтительный текстовый редактор:

deb http://repos.zend.com/zend-server/early-access/php7/repos ubuntu/ 

После добавления репозитория PHP 7 обновите свою систему с помощью следующей команды:

apt-get update

теперь, если все будет хорошо, вы должны установить PHP7 Nightly Build со следующей командой:

apt-get install php7-nightly

Во время установки может появиться предупреждение: "Вы хотите продолжить?", если он нажимает клавишу "Enter". После нажатия "Enter" вы также получите предупреждение, подобное ниже

WARNING: The following packages cannot be authenticated!
  php7-nightly
Install these packages without verification? [y/N]

Введите Y, а затем нажмите Enter для продолжения.

Установка завершена! Теперь вам нужно заставить PHP7 работать с Apache, чтобы сделать это, скопируйте/переместите библиотеки и модули PHP7 в каталоги Apache со следующими командами:

cp /usr/local/php7/libphp7.so /usr/lib/apache2/modules/
cp /usr/local/php7/php7.load /etc/apache2/mods-available/

После перемещения файлов вам необходимо отредактировать файл /etc/apache 2/apache2.conf и добавить следующие строки в конец файла. который будет сообщать apache для обслуживания php файлов

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

Теперь, когда вы исправили apache2.conf, выполните следующую команду, чтобы включить модуль PHP mpm и переключиться на mpm_prefork.

a2dismod mpm_event && a2enmod mpm_prefork && a2enmod php7

Перезапустите Apache так, чтобы сделанные вами изменения вступили в силу:

service apache2 restart

Теперь пришло время протестировать PHP 7

Чтобы проверить PHP7, вы создадите файл PHP с именем info.php в /var/www/html/, используя ваш любимый редактор и введя следующие строки кода.

<?php
phpinfo();
?>

Теперь вы можете перейти в свой любимый браузер и попробовать следующий URL

http://localhost/info.php

В верхней части страницы убедитесь, что версия PHP 7.0 или выше.

Пример версии PHP7

Теперь, когда вы подтвердили, что он работает, вы должны удалить свой info.php, как угрозу безопасности. Удалите его с помощью следующей команды:

rm/var/www/html/info.php

Источник: https://www.atlantic.net/community/howto/try-php7-debian-8-2-lamp-stack/

Ответ 4

Я - ОП. Мое предложение - использовать Ondřej Surý PPA в https://launchpad.net/~ondrej/+archive/ubuntu/php-7.0, как было предложено @Mark Amery

Если вам нужна забава и игры с установкой PHP 7 из исходного кода, тогда вот script, который я использую для конфигурации и сборки (обратите внимание, что make -j4 - это если у вас 4-ядерная машина и хотите, чтобы он был параллельным потоком на каждом ядре в процессе сборки):

#!/bin/sh
./buildconf --force

./configure \
--prefix=/usr/php7 \
--with-config-file-path=/etc/php7 \
--enable-phpdbg \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pgsql \
--with-pdo-pgsql \
--with-pdo-sqlite \
--enable-intl \
--with-pear \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-exif \
--enable-zip \
--with-zlib \
--with-zlib-dir=/usr \
--with-mcrypt=/usr \
--enable-soap \
--enable-xmlreader \
--with-xsl \
--with-curl=/usr \
--with-tidy \
--with-xmlrpc \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--enable-pcntl \
--with-readline \
--enable-mbstring \
--with-curl \
--with-gettext \
--enable-sockets \
--with-bz2 \
--with-openssl \
--with-gmp \
--enable-bcmath \
--enable-calendar \
--enable-ftp \
--with-pspell=/usr \
--with-enchant=/usr \
--enable-wddx \
--with-imap \
--with-imap-ssl \
--with-freetype-dir=/usr/local \
--with-xpm-dir=/usr \
--with-kerberos \
--enable-sysvmsg 

make -j4 
sudo make install

Ответ 5

Я скомпилировал php 7, следуя этому = > http://blog.idojo.co/how-to-setup-a-lamp-stack-with-all-the-latest-softwares/, инструкции были довольно простыми, настройте параметры конфигурации в соответствии с вашими потребностями, параметры настройки по умолчанию работали нормально для меня на сервере ubuntu 14.04....

В стеке лампы входят Apache 2.4.18, MySQL 5.7.10 и PHP 7.0.4

Ответ 6

В Ubuntu 16

apt-get update

apt-get install php libapache2-mod-php php-mcrypt

этот установленный php7

Ответ 7

Вы можете использовать php-build для создания и установки PHP 7 (и других версий PHP). Это может быть намного проще, если вы не знакомы с процедурой построения PHP.

Ответ 9

Я вижу, что другие пользователи отправляют двоичные файлы, но если вы хотите скомпилировать его самостоятельно, попробуйте авто-apt.

Для компиляции любого приложения из исходного кода вы можете использовать auto-apt. Это не хорошо известный инструмент, но он очень помогает в компиляции приложений с большим количеством внешних библиотек.

Auto-apt создает управляемую проверку configure script и определяет, какие пакеты ищет configure.sh script, и он позволяет вам установить их, если вы хотите, чтобы функция script, на которую она смотрела этот момент.

sudo apt-get install auto-apt
sudo auto-apt update
sudo auto-apt updatedb && sudo auto-apt update-local
sudo auto-apt run ./configure

Дополнительная информация: https://help.ubuntu.com/community/AutoApt