install php extensions ubuntu
Установка PHP-расширений в Ubuntu для полноценной работы WordPress и плагинов
В большинстве статей по самостоятельной настройке веб-сервера опущен один очень важный момент — установка расширений для PHP, без которых тот же WordPress нормально работать не будет. Применительно к Вордпрессу список необходимых расширений PHP сильно зависит от того какие плагины Вы будете использовать, ниже будет приведен не полный список, но покрывающий 99% потребностей WordPress и достаточный для большинства случаев. Я установил на VPS Ubuntu 16.04 далее примеры команд для этой версии Линукс.
Устанавливать расширения удобнее всего из консоли (терминала), для установки минимально необходимого набора выполните команду:
sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc php-mcrypt php-curl php-gd
Обратите внимание что эта команда установить расширения для текущей версии PHP, на данный момент это 7.0, если например Вы используете пятую версию PHP, то нужно использовать другую команду:
sudo apt-get install php5-curl php5-gd php5-mbstring php5-mcrypt php5-xml php5-xmlrpc php5-mcrypt php5-curl php5-gd
Просмотреть установленные расширения можно командой:
sudo dpkg —list | grep php
После установки расширений может потребоваться перезапуск веб-сервера apache:
sudo /etc/init.d/apache2 restart
Список расширений PHP которые может использовать WordPress и его плагины:
php-mysql — нужно для работы с базами данных, как правило устанавливается автоматически вместе с PHP.
php-ctype — необходимо установить если получаете ошибку Fatal error: Call to undefined function ctype_digit() in /wp-admin/includes/file.php
php-dom — не обязательное, может понадобиться если у Вас Windows-хостинг
php-exif — для работы с мета-данными фотографий
php-gd — для обработки изображений
php-iconv — конвертация строки из одной кодировки в другую
php-json — для поддержки JSON
php-posix — используется в классе WP_Filesystem_Direct
php-mbstring — для обработки строк, для работы обязательно
php-simplexml — не обязательное
php-zip, php-zlib — для работы с архивами, если необходимо
Если Вы используете виртуальный хостинг и у Вас нет возможности самостоятельно управлять сервером и устанавливать необходимые программы и расширения, зайдите в панель управления хостингом, большинство из них предоставляют возможность активировать нужные для работы расширения PHP, например вот так выглядят настройки в Cpanel:
Здесь можно выбрать нужную версию PHP и изменить список активных расширений, на картинке указан набор галочек при котором работают практически все плагины WordPress, у меня их установлено несколько десятков на все случаи жизни и все они нормально работают.
Howto ubuntu 18.04 install / activate PHP extension ext-mcrypt
I am installing a fresh kubuntu system 18.04, which is using by default php7.2
A composer install for my current software project gibves me this error message:
The requested PHP extension ext-mcrypt * is missing from your system. Install or enable PHP’s mcrypt extension.
Other than before there is no php-mcrypt available and other articles like this http://aryo.lecture.ub.ac.id/easy-install-php-mcrypt-extension-on-ubuntu-linux/ don’t help since an analog php-mcrypt or php7-mcrypt does not exists.
How can I get a setup, which fulfills my requirement?
does not find an installation candidate.
Is there a difference between php 7.1 and 7.2?
not surprisingly this also does not do the trick:
2 Answers 2
First Check whether the mcrypt PHP module is present:
To install the mcrypt PHP module we first need to satisfy the following prerequisites:
Now we are ready to install mcrypt PHP module on our Ubuntu 18.04 system:
Open the /etc/php/7.2/cli/php.ini file and insert:
All done. When successful, checking for the presence of the mcrypt PHP module should produce the following output:
The mcrypt extension is included in PHP 5.4 through PHP 7.1. It was removed from PHP 7.2 and moved to an unofficial PECL extension because the mcrypt library is no longer maintained.
For PHP 7.2+, PHP instead uses libsodium as a cryptography library. ServerPilot builds PHP 7.2+ with the official libsodium extension. New PHP code should be written to use libsodium rather than mcrypt.
Установка PHP расширений на Linux
Расширения php используют, когда требуется расширить набор функций для работы PHP-скриптов на сервере. Каждое расширение имеет узкую функциональность и способно серьезно облегчить и ускорить выполнение конкретных задач, связанных с php-кодом. В панель ISPmanager уже интегрированы популярные решения и часто достаточно только включить нужное. Но бывает и так, что для работы сайта или его компонентов необходимы другие расширения — и тут без установки вручную не обойтись.
Список практически всех доступных расширений есть на официальном сайте php.
Установленных версий php на сервере может быть несколько. Нативная версия PHP — версия из официального репозитория ОС. Дополнительно можно установить альтернативные версии. Это иногда необходимо, если для работы проекта требуется определенная версия php, которой нет в официальном репозитории.
Ниже мы рассмотрим несколько вариантов установки расширений php:
Дополнительно расскажем о том, как подключить расширения в консоли.
Установка расширений через панель ISPmanager
Далее воспользуемся поиском в верхнем правом углу — вводим туда название расширения. Если оно найдено, выбираем его. По необходимости устанавливаем и включаем:
Коротко о pecl
Прежде чем перейти к установке расширений с помощью пакетных менеджеров и альтернативного репозитория модулей, пару слов скажем о том, с какими ситуациями вы можете столкнуться во время работы с pecl. Ниже будут описаны некоторые из них:
Пример 1. Представим, что у нас две версии php:
Нативная (native) — /usr/bin/php
Альтернативная (alt) — /opt/php73/bin/php — альтернативная версия php 7.3 в панели ISPmanager.
Чтобы установить расширения php, для нативной и альтернативной версии необходимо использовать разные команды.
Для нативной версии:
Для альтернативной, php 7.3, так:
Поэтому важно помнить — необходимо указывать полный путь к бинарному файлу pecl. Ниже будут указаны команды установки, без полного пути, так как они могут отличаться, вам нужно иметь это ввиду.
Пример 2. Если вы используете не самую свежую версию php, то во время установки расширения можете получить сообщение о ее несоответствии требованиям — по умолчанию выбираются расширения последних версий, которые часто требуют свежих версий php. Пример уведомления:
В уведомлении указано, что версия php должна быть не ниже 7.0.0 и не выше 7.1.0, а мы пытаемся установить расширение на версию 5.6.40.
Чтобы понять, какая версия расширения нужна для установки на имеющуюся версию php (в данном случае 5.6.40), обратимся за помощью на официальный сайт. Ищем нужное расширение, переходим на его страницу:
Переходим в список изменений:
Находим в списке изменений, что последней версией расширения, поддерживающей php ниже 7 версии, является redis 2.2.8:
Важно!
После установки любого из расширений нужно перезапускать apache2/httpd или php-fpm. Также не забудьте проверить, подключилось ли расширение:
О том, как установить популярное расширение ioncube, читайте в нашей инструкции
Установка расширений через apt, yum и pecl
Ниже описаны установки расширений для всех версий php — от установки зависимостей до подключения. Описание разделено на версию ОС и версию php: нативную (native) или альтернативную (alt). Будьте внимательны при установке расширений для альтернативной версии через pecl.
mcrypt
Во время установки на вопрос “libmcrypt prefix? [autodetect]” жмём Enter.
How to install php extension using pecl for specific php version, when several php versions installed in system?
I have installed both php5.6 and php7.0 from PPA on Ubuntu according to this manual
But I didn’t get how to install extensions using pecl for php5.6 or php7.0.
For example I have already installed version of libevent or amqp in php5.6.
But it was installed only for php5.6 (when this version was active) and now I want to do it for php7.0.
Which commands could help me?
I have found this commands for switch pecl to php7.0 and packet them to executable bash scripts:
But they are not help, pecl still gives me list of already installed extensions to php5.6, even if I switched to php7.
How to solve the problem?
For amqp I have just installed php-amqp package without using pecl.
And libevent still not exists for php7. But I hadn’t found a way to switch pecl installation between 5.6 and 7 version, so question is still open.
4 Answers 4
Here’s what worked best for me when trying to script this (in case anyone else comes across this like I did):
The uninstall line is necessary otherwise installing it will remove any previously installed version, even if it was for a different PHP version (ex: Installing an extension for PHP 7.0 would remove the 5.6 version if the package was still registered as installed).
When pecl throws error is already installed and is the same as the released version
Switch to required php, php-config, phpize versions before installing from pecl
Just run it installation with force flag
I ran into this same issue while updating my Vagrant box with XHGui, as XHGui requires mongodb. I wanted to be able to support profiling on both PHP 5.6 and 7.0.
In PECL’s world, ‘global’ means it can only be set at install time, and not after.
There’s an issue in the PPA tracker over at github: https://github.com/oerdnj/deb.sury.org/issues/407
The final suggestion there is to build the extension manually for alternate PHP versions. I ended up using pecl for PHP 7 extensions, and manual builds for 5.6. Make sure you run update-alternatives for php-config and phpize, and not just php before building:
Then, extract the extension and build it. These steps from the above issue worked for me with the mongodb extension:
Как установить PHP в Ubuntu 18.04
How to Install PHP on Ubuntu 18.04
В этом руководстве мы рассмотрим шаги, необходимые для установки PHP 7.2 по умолчанию в дистрибутиве в Ubuntu 18.04 и интеграции его с Nginx и Apache. Мы также покажем вам, как установить PHP 7.1 и 7.3.
Введение
Установка PHP 7.2 с Apache
Если вы используете Apache в качестве веб-сервера для установки PHP и модуля Apache PHP, выполните следующую команду:
После установки пакетов перезапустите службу Apache:
Установка PHP 7.2 с Nginx
В отличие от Apache, Nginx не имеет встроенной поддержки обработки файлов PHP, поэтому нам нужно установить отдельное приложение, такое как PHP FPM («менеджер процессов fastCGI»), которое будет обрабатывать файлы PHP.
Чтобы установить пакеты PHP и PHP FPM, выполните следующую команду:
После установки пакетов вы можете проверить статус службы PHP FPM с помощью:
Теперь вы можете отредактировать блок сервера Nginx и добавить следующие строки, чтобы Nginx мог обрабатывать файлы PHP:
Не забудьте перезапустить службу Nginx, чтобы новая конфигурация вступила в силу:
Установка расширений PHP
Чтобы расширить основные функции PHP, вы можете установить некоторые дополнительные расширения. Расширения PHP доступны в виде пакетов и могут быть легко установлены с помощью:
Например, если вы хотите установить расширения MySQL и GD PHP, вы должны выполнить следующую команду:
После установки нового расширения PHP не забудьте перезапустить Apache или службу PHP FPM, в зависимости от ваших настроек.
Тестирование обработки PHP
Чтобы проверить, правильно ли настроен ваш веб-сервер для обработки PHP, создайте новый файл с именем info.php внутри /var/www/html каталога со следующим кодом:
Сохраните файл, откройте нужный браузер и посетите http://your_server_ip/info.php
Установка PHP 7.3 в Ubuntu 18.04
Начните с включения репозитория Ondrej PHP:
Установите PHP 7.3 и некоторые из наиболее распространенных модулей PHP:
Чтобы проверить установку, выполните следующую команду, которая распечатает версию PHP:
Установка PHP 7.1 в Ubuntu 18.04
Используйте PHP 7.1 только в том случае, если вы собираетесь устанавливать приложения, несовместимые с PHP 7.2.
Чтобы установить PHP 7.1, выполните следующие действия:
Включите репозиторий Ondrej PHP, набрав:
Установите PHP 7.1 и несколько наиболее распространенных модулей PHP:
Проверьте установку, набрав: