- Установка PHP-расширений в Ubuntu для полноценной работы WordPress и плагинов
- Как установить/обновить PHP 8.0 (Debian/Ubuntu/Mint)
- Изменения расширений и зависимостей в PHP 8.0
- Изменения в файле INI PHP 8.0
- Установка PHP 8
- Установка PHP8 fpm
- Смена установленной версий PHP по умолчанию.
- Installing php extensions linux
- Using APT
- Better control of configuration
- Common Problems
- User Contributed Notes 6 notes
- Установка PHP расширений на Linux
- Установка расширений через панель ISPmanager
- Коротко о pecl
- Установка расширений через apt, yum и pecl
- mcrypt
Установка 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 8.0 (Debian/Ubuntu/Mint)
Как установить PHP 8 на Linux
Релиз PHP 8 состоялся 26 ноября 2020 года, и в этом посте мы установим новую версию или обновим вашу старую версию PHP до 8
PHP 8.0 содержит много новых функций и улучшений производительности, синтаксиса, безопасности и стабильности. Установка PHP 8.0 практически на любой сервер упрощается благодаря предварительно скомпилированным пакетам, доступным во всех поддерживаемых в настоящее время версиях Debian и Ubuntu.
Изменения расширений и зависимостей в PHP 8.0
Несмотря на огромное количество изменений в PHP 8.0, в принципе было произведено не так много изменений в его зависимостях и структуре расширений.
Расширение JSON теперь всегда доступно , и нет флага компиляции для его исключения. Это означает, что больше нет необходимости явно устанавливать пакет php-json.
Расширение xmlrpc перемещено в PECL по уважительным причинам. Репозитории программного обеспечения, упомянутые в этом посте, не включают xmlrpc расширения для PHP 8.0.
Кроме того, в Windows название расширения GD было изменено с php_gd2.dll на php_gd.dll.
Изменения в файле INI PHP 8.0
Также есть несколько изменений в файле INI.
- По умолчанию утверждения вызывают исключения — ( assert.exception=1)
- Отображение ошибок по умолчанию установлено на E_ALL — ( error_reporting=-1)
- При запуске теперь по умолчанию ошибки включены — ( display_startup_errors=1)
- Новая функция JIT в PHP 8.0 добавляет несколько новых директив INI.
- Параметр zend.exception_string_param_max_len для настраиваемой длины строки трассировки стека исключений
Установка PHP 8
1. Необходимо добавить репозиторий ondrej/phpPPA
Приведенные выше шаги добавят PPA в качестве источника пакетов, который содержит все пакеты PHP и их зависимости, такие как argon2 и libzip.
2. Установите PHP 8.0 и нужные расширения
Все пакеты PHP 8.0 следуют шаблону php8.0-имя_расширения , и пакет php8.0-common включает необходимый набор расширений по умолчанию.
Установите PHP 8.0 CLI для работы в консоли
Вы можете установить дополнительные расширения по тому же шаблону php8.0-имя_расширения. Обратите внимание, что вам не нужно устанавливать, так php8.0-json, так как теперь он включен по умолчанию.
Пример установки еще нескольких полезных расширений:
Для разработки также могут быть установлены инструменты покрытия кода или отладчик Xdebug.
Установка PHP8 fpm
В зависимости от используемого веб-сервера вам необходимо будет установить дополнительные пакеты для интеграции с веб-сервером.
Для использования Apache mpm_event, Nginx, Litespeed и т. д. нужно будет установить php8.0-fpm
Для использования Apache mod_php установите libapache2-mod-php8.0
Чтобы проверить установку PHP и расширений, выполните следующие команды:
Если вам потребуется удалить старые пакеты PHP, можно воспользоваться командой
Это предполагает, что вы используете PHP 7.4 в качестве предыдущей версии. Но будьте осторожны, сначала сто раз проверьте что вы больше не используете старые версии в своих проектах.
Смена установленной версий PHP по умолчанию.
Если вдруг вас не устраивает новая установленная версия PHP, вы можете сменить другую версию по умолчанию, командой:
И введя номер нужной вам предыдущей версии PHP.
Веб-разработчик со стажем программирования более 9 лет, всегда в процессе учебы и созидания.
Источник
Installing php extensions linux
This section contains notes and hints specific to installing PHP on » Debian GNU/Linux.
Unofficial builds from third-parties are not supported here. Any bugs should be reported to the Debian team unless they can be reproduced using the latest builds from our » download area.
While the instructions for building PHP on Unix apply to Debian as well, this manual page contains specific information for other options, such as using either the apt or aptitude commands. This manual page uses these two commands interchangeably.
Using APT
First, note that other related packages may be desired like libapache-mod-php to integrate with Apache 2, and php-pear for PEAR.
Second, before installing a package, it’s wise to ensure the package list is up to date. Typically, this is done by running the command apt update.
Example #1 Debian Install Example with Apache 2
APT will automatically install the PHP module for Apache 2 and all of its dependencies, and then activate it. Apache should be restarted in order for the changes take place. For example:
Example #2 Stopping and starting Apache once PHP is installed
Better control of configuration
In the last section, PHP was installed with only core modules. It’s very likely that additional modules will be desired, such as MySQL, cURL, GD, etc. These may also be installed via the apt command.
Example #3 Methods for listing additional PHP packages
The examples will show a lot of packages including several PHP specific ones like php-cgi, php-cli and php-dev. Determine which are needed and install them like any other with either apt or aptitude . And because Debian performs dependency checks, it’ll prompt for those so for example to install MySQL and cURL:
Example #4 Install PHP with MySQL, cURL
APT will automatically add the appropriate lines to the different php.ini related files like /etc/php/7.4/php.ini , /etc/php/7.4/conf.d/*.ini , etc. and depending on the extension will add entries similar to extension=foo.so . However, restarting the web server (like Apache) is required before these changes take affect.
Common Problems
- If the PHP scripts are not parsing via the web server, then it’s likely that PHP was not added to the web server’s configuration file, which on Debian may be /etc/apache2/apache2.conf or similar. See the Debian manual for further details.
- If an extension was seemingly installed yet the functions are undefined, be sure that the appropriate ini file is being loaded and/or the web server was restarted after installation.
- There are two basic commands for installing packages on Debian (and other linux variants): apt and aptitude . However, explaining the subtle differences between these commands goes beyond the scope of this manual.
User Contributed Notes 6 notes
To refresh this document, perhaps it would be worth mentioning more modern methods to serve php content under apache httpd.
Specifically, the preferred method is now fastcgi, using either of those recipes:
While the legacy mod_php approach is still applicable for some older installations, the fastcgi method is much faster, and require much less RAM to operate, based on similar traffic patterns.
Compiling PHP on Ubuntu boxes.
If you would like to compile PHP from source as opposed to relying on package maintainers, here’s a list of packages, and commands you can run
STEP 1:
sudo apt-get install autoconf build-essential curl libtool \
libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \
libreadline-dev libzip-dev libzip4 nginx openssl \
pkg-config zlib1g-dev
So you don’t overwrite any existing PHP installs on your system, install PHP in your home directory. Create a directory for the PHP binaries to live
STEP 2:
# download the latest PHP tarball, decompress it, then cd to the new directory.
STEP 3:
Configure PHP. Remove any options you don’t need (like MySQL or Postgres (—with-pdo-pgsql))
./configure —prefix=$HOME/bin/php-latest \
—enable-mysqlnd \
—with-pdo-mysql \
—with-pdo-mysql=mysqlnd \
—with-pdo-pgsql=/usr/bin/pg_config \
—enable-bcmath \
—enable-fpm \
—with-fpm-user=www-data \
—with-fpm-group=www-data \
—enable-mbstring \
—enable-phpdbg \
—enable-shmop \
—enable-sockets \
—enable-sysvmsg \
—enable-sysvsem \
—enable-sysvshm \
—enable-zip \
—with-libzip=/usr/lib/x86_64-linux-gnu \
—with-zlib \
—with-curl \
—with-pear \
—with-openssl \
—enable-pcntl \
—with-readline
STEP 4:
compile the binaries by typing: make
If no errors, install by typing: make install
STEP 5:
Copy the PHP.ini file to the install directory
/bin/php-latest/etc;
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf
STEP 7:
create symbolic links for your for your binary files
/bin
ln -s php-latest/bin/php php
ln -s php-latest/bin/php-cgi php-cgi
ln -s php-latest/bin/php-config php-config
ln -s php-latest/bin/phpize phpize
ln -s php-latest/bin/phar.phar phar
ln -s php-latest/bin/pear pear
ln -s php-latest/bin/phpdbg phpdbg
ln -s php-latest/sbin/php-fpm php-fpm
STEP 8: link your local PHP to the php command. You will need to logout then log back in for php to switch to the local version instead of the installed version
# add this to .bashrc
if [ -d «$HOME/bin» ] ; then
PATH=»$HOME/bin:$PATH»
fi
Источник
Установка PHP расширений на Linux
Расширения php используют, когда требуется расширить набор функций для работы PHP-скриптов на сервере. Каждое расширение имеет узкую функциональность и способно серьезно облегчить и ускорить выполнение конкретных задач, связанных с php-кодом. В панель ISPmanager уже интегрированы популярные решения и часто достаточно только включить нужное. Но бывает и так, что для работы сайта или его компонентов необходимы другие расширения — и тут без установки вручную не обойтись.
Список практически всех доступных расширений есть на официальном сайте php.
Установленных версий php на сервере может быть несколько. Нативная версия PHP — версия из официального репозитория ОС. Дополнительно можно установить альтернативные версии. Это иногда необходимо, если для работы проекта требуется определенная версия php, которой нет в официальном репозитории.
Ниже мы рассмотрим несколько вариантов установки расширений php:
- через панель управления ISPmanager. Большинство расширений уже установлено и подключено, но есть те, которые можно дополнительно установить или просто подключить.
- через стандартные пакетные менеджеры yum (CentOS) и apt (Ubuntu/Debian) для нативной версии php.
- через репозиторий модулей pecl — подойдёт как для нативной, так и для альтернативной версии php.
Дополнительно расскажем о том, как подключить расширения в консоли.
Установка расширений через панель ISPmanager
Для начала нужно определить, на какой версии работает наш сайт. Для этого переходим в раздел Домены — WWW-домены , выбираем нужный домен и смотрим последний столбец Версия PHP :
После этого переходим в раздел Настройки web-сервера — PHP , выбираем нужную версию php, расширения:
Далее воспользуемся поиском в верхнем правом углу — вводим туда название расширения. Если оно найдено, выбираем его. По необходимости устанавливаем и включаем:
Коротко о 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:
Из этого следует, что для установки нам нужно указать redis-2.2.8, например так (не забудьте поставить знак — между названием расширения и его версией):
Важно!
После установки любого из расширений нужно перезапускать apache2/httpd или php-fpm. Также не забудьте проверить, подключилось ли расширение:
О том, как установить популярное расширение ioncube, читайте в нашей инструкции
Установка расширений через apt, yum и pecl
Ниже описаны установки расширений для всех версий php — от установки зависимостей до подключения. Описание разделено на версию ОС и версию php: нативную (native) или альтернативную (alt). Будьте внимательны при установке расширений для альтернативной версии через pecl.
mcrypt
Во время установки на вопрос “libmcrypt prefix? [autodetect]” жмём Enter.
Источник