Как установить 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
Теперь вы, вероятно, узнали образец:
Итак, здесь я просто покажу ошибку и команду 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.
Ответ 8
Вы можете установить панель управления, которая поддерживает Ubuntu и PHP 7. Например, ServerPilot поддерживает Ubuntu и устанавливает PHP 7.
Ответ 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