- Установка PHP в Ubuntu
- Установка PHP в Ubuntu
- 1. Версия по умолчанию — 7.4
- 2. Устаревшая версия — 5.6
- 3. Новая версия — 8.0
- Установка расширений PHP
- Выбор версии PHP по умолчанию
- Выводы
- Установка PHP расширений на Linux
- Установка расширений через панель ISPmanager
- Коротко о pecl
- Установка расширений через apt, yum и pecl
- mcrypt
- ssh2
- redis
- lzf
- igbinary
- Установка модулей PHP (Debian / Ubuntu)
- Создание phpinfo-скрипта
- Установка модулей на примере imagick
- Подключение внешних библиотек
Установка PHP в Ubuntu
PHP — это очень популярный скриптовый язык программирования с открытым исходным кодом, который часто используется для разработки веб-сайтов и веб-приложений. PHP означает рекурсивный акроним от PHP Hypertext Processor. Скрипты выполняются на стороне сервера и могут находиться как в отдельных файлах, так и быть встроенными в HTML.
На данный момент официально поддерживается три версии PHP — это 5.6, 7.4 и 8. Предыдущие версии больше не получают обновлений безопасности. В этой статье мы рассмотрим как выполняется установка PHP Ubuntu. Будем устанавливать только поддерживаемые версии. Кроме того, рассмотрим как установить расширения для Apache, а также изменить версию по умолчанию.
Установка PHP в Ubuntu
1. Версия по умолчанию — 7.4
PHP версии 7.4 поставляется в официальных репозиториях Ubuntu, поэтому если вы хотите эту версию, то можете очень просто установить ее с помощью команды apt. Сначала смотрим информацию:
Теперь для установки версии из репозиториев наберите:
Для того чтобы интерпретатор php работал с Apache необходимо установить ещё этот пакет:
sudo apt install libapache2-mod-php
После этого можно посмотреть версию php в терминале:
2. Устаревшая версия — 5.6
Если вам нужна другая версия PHP, например, 5.6, то вам придется добавить в систему репозиторий PPA. Сначала необходимо установить зависимости:
sudo apt install python-software-properties
Затем для добавления PPA репозитория выполните:
sudo add-apt-repository ppa:ondrej/php
Теперь вы можете установить php ubuntu нужной вам версии. В данном случае 5.6. Для Apache выполните такие команды:
sudo apt install php5.6 libapache2-mod-php5.6
Затем можно смотреть версию:
Обратите внимание, что установленная версия PHP не конфликтует с версией из официальных репозиториев. Обе версии могут существовать в системе и между ними можно переключаться.
3. Новая версия — 8.0
На момент написания статьи, версия PHP 8.0 вышла относительно недавно и в официальных репозиториях LTS релиза Ubuntu её нет. В этой версии было много улучшений и исправлений и если вы хотите её попробовать, то можете установить из того же самого PPA:
sudo add-apt-repository ppa:ondrej/php
Затем, как и в предыдущем пункте необходимо указать версию php, которая вам нужна в команде установки:
sudo apt install php8.0 libapache2-mod-php8.0
После завершения установки интерпретатор появится в системе:
Установка расширений PHP
Не зависимо от того какую версию PHP вы установили, обычно для полноценной работы программ необходимо ещё установить расширения. Вот основные расширения, которые требуются чаще всего:
- php-curl — поддержка библиотеки CURL для отправки сетевых запросов;
- php-memcached — кэширование с помощью Memcache;
- php-mysql — поддержка баз данных MySQL и MariaDB;
- php-pgsql — поддержка PostgreSQL;
- php-gd — обработка графики с помощью библиотеки GD;
- php-imagick — обработка графики с помощью библиотеки ImageMagick;
- php-intl — локализация и интернационализация;
- php-mcrypt — шифрование;
- php-xml — работа с XML файлами и DOM;
- php-zip — работа с ZIP архивами;
- php-mbstring — работа со строками содержащими UTF-8 символы, в том числе и кириллицу.
Для того чтобы установить все эти расширения для версии PHP по умолчанию выполните такую команду:
sudo apt install php-curl php-memcached php-mysql php-pgsql php-gd php-imagick php-intl php-mcrypt php-xml php-zip php-mbstring
Если надо установить расширения PHP для определённой версии, то следует указать эту версию в названии пакета:
sudo apt install php7.4-curl php7.4-memcached php7.4-mysql php7.4-pgsql php7.4-gd php7.4-imagick php7.4-intl php7.4-mcrypt php7.4-xml php7.4-zip php7.4-mbstring
Аналогично можно установить расширения для PHP 5.6 или 8.0.
Выбор версии PHP по умолчанию
Вы можете выбрать какую версию php нужно использовать по умолчанию с помощью утилиты update-alternatives. Сначала смотрим доступные версии:
sudo update-alternatives —config php
После этого следует ввести номер версии, которую вы хотите использовать по умолчанию:
Или можно сразу установить php ubuntu по умолчанию:
sudo update-alternatives —set php /usr/bin/php5.6
Чтобы используемая версия обновилась в Apache нужно подключить правильный модуль и перезагрузить веб-сервер. Например, для того чтобы отключить 7.4 и включить 5.6 выполните:
sudo a2dismod php7.4
sudo a2enmod php5.6
sudo systemctl restart apache2
Установка php 8 Ubuntu выполняется так же. Теперь вы знаете как переключить версию php Ubuntu. Установка и настройка PHP вместе с Nginx отдельная обширная тема и она описана в статье про настройку PHP-FPM.
Выводы
В этой статье мы рассмотрели как выполняется установка PHP 8 ubuntu 20.04 и других версиях системы. Теперь вы знаете как установить не только PHP 8, но и другие поддерживаемые версии. Как видите, это очень просто, вы можете получить нужную версию PHP буквально в несколько кликов. Надеюсь, эта информация была вам полезной.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Установка PHP расширений на Linux
Дополнительно расскажем о том, как подключить расширения в консоли.
Установка расширений через панель ISPmanager
Для начала нужно определить, на какой версии работает наш сайт. Для этого переходим в раздел Домены — WWW-домены , выбираем нужный домен и смотрим последний столбец Версия PHP :
После этого переходим в раздел Настройки web-сервера — PHP , выбираем нужную версию php, расширения:
Далее воспользуемся поиском в верхнем правом углу — вводим туда название расширения. Если оно найдено, выбираем его. По необходимости устанавливаем и включаем:
Коротко о pecl
Прежде чем перейти к установке расширений с помощью пакетных менеджеров и альтернативного репозитория модулей, пару слов скажем о том, с какими ситуациями вы можете столкнуться во время работы с pecl. Ниже будут описаны некоторые из них:
Пример 1. Представим, что у нас две версии php:
Нативная (native) — /usr/bin/php
Альтернативная (alt) — /opt/php73/bin/php — альтернативная версия php 7.3 в панели ISPmanager.
Чтобы установить расширения php, для нативной и альтернативной версии необходимо использовать разные команды.
pecl install Название_расширения
Для альтернативной, php 7.3, так:
/opt/php73/bin/pecl install Название_расширения
Поэтому важно помнить — необходимо указывать полный путь к бинарному файлу pecl. Ниже будут указаны команды установки, без полного пути, так как они могут отличаться, вам нужно иметь это ввиду.
Пример 2. Если вы используете не самую свежую версию php, то во время установки расширения можете получить сообщение о ее несоответствии требованиям — по умолчанию выбираются расширения последних версий, которые часто требуют свежих версий php. Пример уведомления:
requires PHP (version >= 7.0.0, versionВ уведомлении указано, что версия php должна быть не ниже 7.0.0 и не выше 7.1.0, а мы пытаемся установить расширение на версию 5.6.40.
Чтобы понять, какая версия расширения нужна для установки на имеющуюся версию php (в данном случае 5.6.40), обратимся за помощью на официальный сайт. Ищем нужное расширение, переходим на его страницу:
Переходим в список изменений:
Находим в списке изменений, что последней версией расширения, поддерживающей php ниже 7 версии, является redis 2.2.8:
Из этого следует, что для установки нам нужно указать redis-2.2.8, например так (не забудьте поставить знак - между названием расширения и его версией):
/opt/php56/bin/pecl install redis-2.2.8После установки любого из расширений нужно перезапускать apache2/httpd или php-fpm. Также не забудьте проверить, подключилось ли расширение:
/opt/php56/bin/php -m | grep название_расширенияО том, как установить популярное расширение ioncube, читайте в нашей инструкции
Установка расширений через apt, yum и pecl
Ниже описаны установки расширений для всех версий php — от установки зависимостей до подключения. Описание разделено на версию ОС и версию php: нативную (native) или альтернативную (alt). Будьте внимательны при установке расширений для альтернативной версии через pecl.
mcrypt
Во время установки на вопрос “libmcrypt prefix? [autodetect]” жмём Enter.
yum install libmcrypt-devel php-mcryptssh2
apt install libssh2-1-dev php-ssh2redis
Во время установки могут быть заданы вопросы:
enable igbinary serializer support? [no] : «Включить поддержку сериализации через igbinary?»
enable lzf compression support? [no] : «Включить поддержку сжатия через алгоритм lzf?»
enable zstd compression support? [no] : «Включить поддержку сжатия через алгоритм zstd?»
yes - да, no - нетДля выбора yes, должны быть установлены соответствующие модули.
lzf
Во время установки будет задан вопрос:
Sacrifice speed in favour of compression ratio? [no] : «Жертвовать скоростью в пользу степени сжатия?»
yes - да, no - нетПри положительном ответе, будет высокая степень сжатия, но низкая скорость загрузки.
igbinary
Установка модулей PHP (Debian / Ubuntu)
Ниже мы рассмотрим установку модулей PHP на сервер с операционной системой Ubuntu или Debian.
Создание phpinfo-скрипта
В процессе установки модулей нам потребуется получать информацию о параметрах PHP на сервере, поэтому в первую очередь разместим скрипт phpinfo.php в директории сайта.
Для этого подключитесь к серверу по SSH и выполните следующие шаги:
1. Перейдите в директорию сайта:
Например, если на сервере установлен LAMP (автоматически при создании сервера):
Если на сервере установлена панель VestaCP:
cd /home/имя_пользователя/web/имя_домена/public_html
2. Создайте файл phpinfo.php :
3. Добавьте в него следующее содержимое:
phpinfo();
phpinfo(INFO_MODULES);
?>4. Сохраните изменения (нажмите Ctrl+X для выхода из nano, далее Y для сохранения изменений и Enter).
После перейдите по адресу http://вашдомен/phpinfo.php , и в браузере будет отображена информация о настройках PHP.
Установка модулей на примере imagick
Рассмотрим установку модулей php на примере модуля imagick .
Если вы не уверены в точном названии пакета, можно воспользоваться командой ниже, указав часть названия пакета. Для PHP названия большинства библиотек будут начинаться с «php».
Вывод команды выглядит примерно следующим образом:
В данном случае нам будет нужен пакет php-imagick .
2. Обновите информацию из репозиториев:
4. Проверьте, какая директория задана для расширений. Для этого нужно на странице http://вашдомен/phpinfo.php найти параметр «extension_dir»:
Перейдите в указанную директорию:
Проверьте, есть ли в ней установленная библиотека:
Можно указать часть имени библиотеки, чтобы упростить вывод, например:
Если библиотека присутствует, она будет выведена в консоли:
5. Проверьте, какая директория используется для дополнительных конфигурационных файлов. Для этого нужно на странице http://вашдомен/phpinfo.php найти параметр «Scan this dir for additional .ini files»:
Перейдите в указанную директорию и просмотрите ее содержимое:
Можно указать часть имени библиотеки, чтобы упростить вывод, например:
Если конфигурационный файл с директивой, подключающей библиотеку, успешно создан, он будет выведен в консоли:
Если файл отсутствует, воспользуйтесь командой ниже, чтобы его создать:
echo "extension=imagick.so" > /директория/из/пункта/5/imagick.ini
echo "extension=imagick.so" > /etc/php/7.2/apache2/conf.d/imagick.ini
Она создаст файл конфигурации imagick.ini в нужной директории и добавит в него директиву extension=imagick.so .
6. Перезагрузите веб-сервер Apache:
7. Обновите страницу http://вашдомен/phpinfo.php и найдите установленный модуль, чтобы убедиться, что все в порядке:
Подключение внешних библиотек
Если вам требуется подключить библиотеку, скачанную не из репозитория, необходимо:
1. Загрузить файл с расширением .so в директорию с остальными библиотеками (см. значение параметра extension_dir на странице http://вашдомен/phpinfo.php ; в нашем примере это директория /usr/lib/php/20170718 ).
2. Перейти в директорию с дополнительными конфигурационными файлами (см. значение параметра «Scan this dir for additional .ini files» на странице phpinfo.php ; в нашем примере это /etc/php/7.2/apache2/conf.d ):
3. Создать конфигурационный файл:
4. Указать в данном файле директиву и сохранить изменения:
extension=имя_библиотеки.so
6. Обновить страницу http://вашдомен/phpinfo.php и убедиться, что библиотека установлена.
Если файл библиотеки был размещен в другой директории, то на шаге 4 необходимо в директиве extension указать соответствующий путь, например:
extension=/usr/local/lib/php/extensions/curl.so