Установка 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, у меня их установлено несколько десятков на все случаи жизни и все они нормально работают.
Установка модулей PHP (Debian / Ubuntu)
Ниже мы рассмотрим установку модулей PHP на сервер с операционной системой Ubuntu или Debian.
Создание phpinfo-скрипта
В процессе установки модулей нам потребуется получать информацию о параметрах PHP на сервере, поэтому в первую очередь разместим скрипт phpinfo.php в директории сайта.
Для этого подключитесь к серверу по SSH и выполните следующие шаги:
1. Перейдите в директорию сайта:
2. Создайте файл phpinfo.php:
3. Добавьте в него следующее содержимое:
4. Сохраните изменения (нажмите Ctrl+x для выхода из nano, далее Y для сохранения изменений и Enter).
После перейдите по адресу http://вашдомен/phpinfo.php, и в браузере будет отображена информация о настройках PHP.
Установка модулей на примере imagick
Рассмотрим установку модулей php на примере модуля imagick.
1. Уточните имя пакета.
Если вы не уверены в точном названии пакета, можно воспользоваться командой ниже, указав часть названия пакета. Для PHP названия большинства библиотек будут начинаться с «php».
Вывод команды выглядит примерно следующим образом:
В данном случае нам будет нужен пакет php-imagick.
2. Обновите информацию из репозиториев:
3. Установите библиотеку:
4. Проверьте, какая директория задана для расширений. Для этого нужно на странице http://вашдомен/phpinfo.php найти параметр «extension_dir»:
Перейдите в указанную директорию:
Проверьте, есть ли в ней установленная библиотека:
Если библиотека присутствует, она будет выведена в консоли:
Перейдите в указанную директорию и просмотрите ее содержимое:
Если конфигурационный файл с директивой, подключающей библиотеку, успешно создан, он будет выведен в консоли:
Если файл отсутствует, воспользуйтесь командой ниже, чтобы его создать:
6. Перезагрузите веб-сервер Apache:
7. Обновите страницу http://вашдомен/phpinfo.php и найдите установленный модуль, чтобы убедиться, что все в порядке:
Подключение внешних библиотек
Если вам требуется подключить библиотеку, скачанную не из репозитория, необходимо:
3. Создать конфигурационный файл:
4. Указать в данном файле директиву и сохранить изменения:
5. Перезапустить Apache:
6. Обновить страницу http://вашдомен/phpinfo.php и убедиться, что библиотека установлена.
Если файл библиотеки был размещен в другой директории, то на шаге 4 необходимо в директиве extension указать соответствующий путь, например:
Установка 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.
Обновляем расширение Intl в PHP 7 на Linux Ubuntu 16.04
Программисты делятся на два типа: консерваторы, для которых переход на новую версию равносилен перелёту на другую планету (если читаешь это из Windows XP — поздравляю, это ты); и Викторы Цои, чьи сердца и глаза требуют перемен, и обновляют всё и вся при первой возможности. Если ты второго типа, и у тебя уже стоит последняя версия PHP на последней LTS версии Ubuntu, но покоя не даёт то, что расширение Intl использует устаревшую версию библиотеки ICU, или тебе просто понравились картинки из «Аватара» — добро пожаловать под кат! (Картинок больше не будет.)
Ну и зачем это?
Библиотека ICU с каждым релизом добавляет поддержку стандартов транслитерации для различных языков, добавляет новые функции и возможности, фиксит баги. Пока неизвестно, по какой причине PHP нерегулярно обновляет ICU в расширении Intl. Поэтому приходится всё брать в свои руки.
Поиск решения
Быстрый поиск по гуглу не дал внятных решений. Детальный тоже. В общем и целом пэхэпэшным программистам по барабану, какую версию ICU использует Intl. Но только не нашим! Отчаявшись искать в англоязычном сегменте интернета, совершенно случайно набрёл на запись русского блогера Сергея Стоянова, где он объясняет процесс обновления ICU в PHP 5 для Ubuntu 14.04. В PHP 7 процесс сильно отличается, но общая последовательность действий остаётся такой же: удаляем Intl; собираем новую версию ICU; устанавливаем Intl, ткнув его носом, где искать ICU; включаем Intl в PHP; открываем шампанское. Также сильно помогли комментарии к статье (особенно комментарий Антона Минина и его shell скрипт).
Версии ICU
Проверить последнюю версию ICU можно на их официальном сайте. На данный момент (февраль 2018) последний релиз — 60.2.
Чтобы проверить, какую версию ICU использует php7.0-intl, напиши в терминале и прокрути до списка установленных модулей. Найди там раздел, озаглавленный «intl». У меня там было:
Internationalization support => enabled
version => 1.1.0
ICU version => 55.1
ICU Data version => 55.1
Мягко говоря, не айс — версия 55.1 была выпущена в первой половине 2015-го, и с тех пор успела обновиться ещё 5 раз. Нужно же что-то делать!
Решение
Internationalization support => enabled
version => 1.1.0
ICU version => 60.2
ICU Data version => 60.2
Как установить 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:
Проверьте установку, набрав:









