Как обновить php ubuntu

Как обновить php ubuntu

Для веб-разработчиков и системных администраторов важно поддерживать актуальность версии PHP на сервере. Особенно это касается серверов на базе Ubuntu, где обновление PHP может повлиять на производительность и безопасность сайтов и приложений. Однако обновление может быть не таким простым, как кажется на первый взгляд, особенно когда речь идет о несовместимости версий или зависимости от специфических настроек.

Для начала важно понимать, что стандартные репозитории Ubuntu могут не содержать самую свежую версию PHP, что требует использования дополнительных источников, таких как repository от Ondřej Surý. Этот репозиторий регулярно обновляется и поддерживает несколько версий PHP, что дает возможность гибко выбирать нужную версию для конкретных проектов.

Перед обновлением стоит проверить текущую версию PHP. Для этого достаточно выполнить команду php -v в терминале. Если текущая версия устарела, и необходимо обновить её, вам предстоит выполнить несколько шагов. Важно учитывать, что простая установка новой версии может привести к проблемам с совместимостью, если на сервере уже настроены приложения, использующие старые версии PHP.

Как проверить текущую версию PHP в Ubuntu

Для проверки текущей версии PHP в Ubuntu выполните несколько простых шагов. Это позволит понять, какая версия PHP установлена на вашей системе, и нужно ли её обновить.

Самый простой способ – использовать команду в терминале:

  1. Откройте терминал.
  2. Введите команду php -v.
PHP 7.4.3 (cli) (built: Mar  1 2020 12:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

В строке PHP 7.4.3 указана версия PHP, установленная в системе. Это основной способ получения информации о версии PHP в командной строке.

sudo apt install php

Если у вас установлено несколько версий PHP, для проверки конкретной версии используйте команду:

php7.4 -v

Замените 7.4 на нужную версию (например, 8.0) для её проверки.

Для пользователей, использующих серверный стек LAMP, можно также проверить версии PHP, настроенные для Apache или Nginx. Для этого откройте соответствующий конфигурационный файл веб-сервера и ищите строчку, где указывается путь к исполняемому файлу PHP.

Теперь вы точно знаете, как узнать версию PHP на вашем сервере или локальной машине под Ubuntu.

Шаги для добавления репозитория с новой версией PHP

Шаги для добавления репозитория с новой версией PHP

Для обновления PHP до нужной версии в Ubuntu необходимо добавить соответствующий репозиторий. Это позволит установить последнюю стабильную версию PHP, предоставляемую внешним источником.

Прежде чем приступать, убедитесь, что у вас есть права суперпользователя (root) или возможность использовать команду sudo.

  1. Откройте терминал и обновите списки пакетов:
  2. sudo apt update
  3. Установите необходимые пакеты для добавления сторонних репозиториев:
  4. sudo apt install software-properties-common
  5. Добавьте репозиторий для PHP с помощью следующей команды:
  6. sudo add-apt-repository ppa:ondrej/php
  7. После добавления репозитория обновите список пакетов:
  8. sudo apt update
  9. Теперь можно установить нужную версию PHP. Для этого используйте команду:
  10. sudo apt install phpX.X

    Замените X.X на нужную версию, например, php8.1 или php7.4.

  11. Если вам нужно установить дополнительные модули для PHP, можно использовать такую команду:
  12. sudo apt install phpX.X-modulename

    Замените X.X на вашу версию PHP и указанный модуль, например, php8.1-mbstring.

  13. После установки проверьте установленную версию PHP:
  14. php -v

Теперь репозиторий с новой версией PHP добавлен, и вы можете использовать актуальные пакеты для работы с PHP на вашем сервере.

Как обновить пакеты и установить нужную версию PHP

Как обновить пакеты и установить нужную версию PHP

Для обновления пакетов и установки нужной версии PHP в Ubuntu необходимо выполнить несколько шагов. Прежде всего, убедитесь, что ваша система обновлена до последней версии, чтобы избежать проблем с зависимостями.

1. Обновление списка пакетов

Для начала выполните команду sudo apt update. Это обновит информацию о доступных пакетах из репозиториев, что обеспечит установку актуальных версий пакетов.

2. Установка необходимых репозиториев

PHP не всегда доступен в стандартных репозиториях Ubuntu, особенно если требуется версия выше той, что предустановлена в системе. Чтобы установить более новые версии, добавьте репозиторий Ondřej Surý, который поддерживает актуальные версии PHP. Для этого выполните команду:

sudo add-apt-repository ppa:ondrej/php

Затем снова обновите список пакетов:

sudo apt update

3. Установка необходимой версии PHP

Теперь, когда репозиторий добавлен, можно установить нужную версию PHP. Например, для установки PHP 8.1 используйте команду:

sudo apt install php8.1

Если нужно установить дополнительные пакеты, такие как PHP-FPM или модули для Apache, выполните команду:

sudo apt install php8.1-fpm php8.1-mysql php8.1-xml

4. Проверка версии PHP

После установки версии PHP проверьте её с помощью команды:

php -v

Эта команда покажет установленную версию PHP, например, PHP 8.1.0.

5. Переключение между версиями PHP

Если в системе установлены несколько версий PHP, для переключения между ними используйте инструмент update-alternatives. Чтобы изменить версию командной строки PHP, выполните команду:

sudo update-alternatives --set php /usr/bin/php8.1

Также можно переключать версии для php-fpm или apache2 аналогичными командами.

6. Перезапуск веб-сервера

После установки новой версии PHP необходимо перезапустить веб-сервер для применения изменений. Для Apache это можно сделать командой:

sudo systemctl restart apache2

Для Nginx используйте:

sudo systemctl restart nginx

Таким образом, вы обновите PHP до необходимой версии и настроите систему для работы с новыми пакетами.

Настройка веб-сервера для работы с новой версией PHP

Настройка веб-сервера для работы с новой версией PHP

После обновления PHP на сервере важно корректно настроить веб-сервер для работы с новой версией. Рассмотрим настройку Apache и Nginx для использования PHP 7.4 и выше.

Для Apache необходимо убедиться, что установлен нужный модуль PHP. Для этого выполняем команду:

sudo apt install libapache2-mod-php

После установки модуля перезапускаем Apache:

sudo systemctl restart apache2

Чтобы указать, какая версия PHP будет использоваться, применим команду:

sudo update-alternatives --set php /usr/bin/php7.4

Если на сервере несколько версий PHP, важно проверить, какой именно модуль активен для Apache. Для этого используется команда:

sudo a2query -m php

Если Apache по-прежнему использует старую версию, необходимо отключить её командой:

sudo a2dismod php7.3

Затем активируем нужную версию:

sudo a2enmod php7.4

После этого снова перезапускаем Apache:

sudo systemctl restart apache2

Для Nginx настройка немного отличается, так как Nginx не имеет встроенной поддержки PHP. Нужно настроить его для работы с PHP-FPM. Убедитесь, что PHP-FPM для нужной версии установлен:

sudo apt install php7.4-fpm

Далее необходимо отредактировать конфигурацию Nginx. Откройте файл конфигурации сайта:

sudo nano /etc/nginx/sites-available/default

Убедитесь, что конфигурация включает обработку PHP через сокет PHP-FPM. В секции server добавьте или проверьте следующие строки:

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

После изменения конфигурации перезапустите Nginx:

sudo systemctl restart nginx

Проверьте, что веб-сервер использует правильную версию PHP, создав файл с кодом:


Откройте этот файл в браузере. На странице будет отображена информация о текущей версии PHP, если настройка выполнена корректно.

Как переключить версию PHP на сервере с помощью update-alternatives

Как переключить версию PHP на сервере с помощью update-alternatives

Для переключения версии PHP на сервере Ubuntu с помощью инструмента `update-alternatives` выполните следующие шаги:

1. Убедитесь, что на сервере установлены все необходимые версии PHP. Для этого используйте команду:

sudo apt list php*

Если нужная версия PHP отсутствует, установите ее командой:

sudo apt install php7.4 php7.4-cli php7.4-fpm

2. После установки версий PHP используйте команду `update-alternatives` для управления приоритетом версий. Для начала настройте версию PHP для командной строки:

sudo update-alternatives --set php /usr/bin/php7.4

3. Для переключения версий PHP для других компонентов, таких как `phpize`, `php-config` или PHP-FPM, выполните следующие команды:

sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4

4. Для переключения версии PHP-FPM используйте команду:

sudo update-alternatives --set php-fpm /usr/sbin/php-fpm7.4

5. Если вы хотите выбрать нужную версию PHP из доступных, используйте команду:

sudo update-alternatives --config php

В этом случае будет предложено выбрать одну из установленных версий. Просто введите номер желаемой версии и нажмите Enter.

6. Для изменения конфигурации PHP-FPM (если используется с Nginx или Apache) необходимо также обновить конфигурационные файлы, указав нужную версию в конфигурации веб-сервера. Например, для Nginx это может быть указание в блоках server соответствующего пути к PHP-FPM.

После выполнения этих шагов выбранная версия PHP будет использоваться на сервере. Для проверки текущей версии PHP используйте команду:

php -v

Проверка работы обновленной версии PHP через командную строку

Проверка работы обновленной версии PHP через командную строку

После обновления PHP до нужной версии важно проверить, что новая версия правильно установлена и функционирует. Для этого можно воспользоваться несколькими простыми командами в терминале.

PHP 8.1.2 (cli) (built: Jan  5 2023 12:56:52) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies

Если в результате вы видите версию, которую вы только что установили, это подтверждает, что PHP обновлен корректно. Если версия отличается от ожидаемой, возможно, обновление не завершилось успешно.

В случае, если у вас установлено несколько версий PHP, используйте команду update-alternatives —display php. Эта команда покажет все доступные версии PHP и текущую активную версию. Чтобы выбрать активную версию, выполните:

sudo update-alternatives --config php

В результате будет предложен список доступных версий. Выберите номер нужной версии и подтвердите свой выбор. После этого повторно выполните php -v, чтобы убедиться в корректности выбора.

Для тестирования работы PHP с веб-сервером, например, Apache, необходимо перезапустить сервер. Для этого используйте команду:

sudo systemctl restart apache2

Если после перезапуска веб-сервер корректно работает с обновленной версией PHP, значит, обновление прошло успешно. Вы можете также создать PHP-скрипт с функцией phpinfo() для проверки настроек PHP через браузер.

При необходимости можно проверить, что требуемые модули для новой версии PHP установлены. Например, для проверки модуля curl выполните:

php -m | grep curl

Если модуль присутствует в списке, значит, он установлен и активирован.

Настройка PHP для работы с фреймворками и CMS

Настройка PHP для работы с фреймворками и CMS

Для эффективной работы с популярными фреймворками и CMS (такими как Laravel, Symfony, WordPress, Joomla), важно настроить PHP с учетом требований этих систем. Каждая платформа имеет свои особенности, и для их корректной работы необходимо учитывать версии PHP, установленные расширения и оптимизацию настроек.

Прежде всего, важно убедиться, что PHP установлен в необходимой версии. Для большинства фреймворков и CMS требуются версии PHP не ниже 7.4, а для некоторых современных решений (например, Laravel 8) – PHP 8.0 и выше. Обновление версии можно выполнить с помощью команд:

sudo apt update
sudo apt upgrade
sudo apt install php8.0

Для корректной работы с фреймворками и CMS требуется ряд PHP-расширений. Наиболее востребованные из них:

  • php-cli – для выполнения командной строки PHP.
  • php-fpm – для управления процессами FastCGI.
  • php-mbstring – для работы с многобайтовыми строками (необходим для CMS и фреймворков, таких как Laravel).
  • php-xml – для обработки XML.
  • php-mysql – для работы с базами данных MySQL.
  • php-curl – для выполнения HTTP-запросов.
  • php-intl – для международной локализации и работы с Unicode.
  • php-zip – для работы с архивами.

Установка нужных расширений выполняется через команду:

sudo apt install php8.0-cli php8.0-fpm php8.0-mbstring php8.0-xml php8.0-mysql php8.0-curl php8.0-intl php8.0-zip

После установки важно настроить php.ini для оптимизации работы с фреймворками и CMS. Некоторые ключевые параметры:

  • memory_limit – увеличьте лимит памяти, особенно для крупных приложений или обработки больших данных. Рекомендуется устанавливать минимум 256M:
  • memory_limit = 256M
    
  • max_execution_time – увеличьте время выполнения скриптов, особенно для тяжелых операций. Рекомендуется установить минимум 30 секунд:
  • max_execution_time = 30
    
  • file_uploads – включите загрузку файлов, если ваша CMS или фреймворк используют загрузку файлов. Обычно включено по умолчанию:
  • file_uploads = On
    
  • upload_max_filesize – задайте максимальный размер загружаемых файлов, если используется загрузка больших файлов:
  • upload_max_filesize = 64M
    

Для работы с PHP-FPM (FastCGI Process Manager), который улучшает производительность при обработке запросов, следует настроить его для работы с вашим веб-сервером (Nginx, Apache). В конфигурации PHP-FPM установите:

  • listen – указывает адрес сокета или порт для соединения с веб-сервером:
  • listen = /var/run/php/php8.0-fpm.sock
    
  • pm – режим управления процессами PHP-FPM. Для высоконагруженных сайтов рекомендуется использовать режим «dynamic»:
  • pm = dynamic
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    

При настройке веб-сервера необходимо удостовериться, что он правильно взаимодействует с PHP-FPM. Например, для Nginx настройка выглядит следующим образом:

server {
listen 80;
server_name example.com;
root /var/www/html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Дополнительно для фреймворков, таких как Laravel, рекомендуется установить Composer для управления зависимостями и пакетами. Для этого достаточно выполнить команду:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Убедитесь, что ваша система и PHP-окружение настроены под рабочие процессы выбранного фреймворка или CMS, чтобы избежать проблем с производительностью и совместимостью.

Решение распространенных ошибок после обновления PHP

Решение распространенных ошибок после обновления PHP

После обновления PHP до новой версии в Ubuntu могут возникать проблемы, связанные с несовместимостью старого кода или некорректной настройкой окружения. Рассмотрим несколько распространенных ошибок и способы их решения.

1. Ошибка «Class ‘XXX’ not found»

Эта ошибка может возникнуть из-за изменений в автозагрузке классов или несовместимости с версией PHP. Чтобы исправить, убедитесь, что используемые библиотеки и фреймворки поддерживают вашу версию PHP. Запустите команду composer dump-autoload для пересоздания автозагрузки. Если используете старые версии библиотек, обновите их через composer update.

2. Проблемы с расширениями PHP

При обновлении PHP могут быть отключены или недоступны некоторые расширения. Чтобы проверить доступные расширения, используйте команду php -m. Если требуется установить недостающие расширения, выполните sudo apt install php-xxx, заменив «xxx» на имя нужного расширения. Например, для работы с базами данных MySQL потребуется установить sudo apt install php-mysql.

3. Ошибка «Call to undefined function»

Эта ошибка может свидетельствовать о том, что в новой версии PHP изменены или удалены некоторые функции. Проверьте документацию для версии PHP, чтобы убедиться в поддержке используемых функций. Например, функция mysql_query() была удалена в PHP 7, и вам нужно будет заменить её на mysqli_query() или использовать PDO для работы с базами данных.

4. Проблемы с конфигурацией Apache/Nginx

Если после обновления PHP сервер не загружает страницы или возникают ошибки 500, проверьте конфигурацию веб-сервера. Для Apache убедитесь, что модуль PHP активирован: выполните sudo a2enmod php7.x, заменив 7.x на вашу актуальную версию. Перезапустите Apache командой sudo systemctl restart apache2.

5. Проблемы с производительностью

После обновления версии PHP могут возникнуть проблемы с производительностью, особенно если используется новая версия с изменениями в оптимизации. Для диагностики используйте инструменты профилирования, такие как Xdebug или Blackfire, для выявления узких мест в производительности. Рассмотрите возможность включения OPcache для повышения производительности PHP, отредактировав файл /etc/php/7.x/cli/conf.d/10-opcache.ini и установив opcache.enable=1.

6. Ошибки совместимости с фреймворками

Многие популярные фреймворки, такие как Laravel или Symfony, имеют версии, совместимые только с определенными версиями PHP. Если после обновления возникли проблемы с фреймворком, проверьте его документацию на предмет совместимости с вашей версией PHP. Возможно, потребуется обновить фреймворк через composer update или установить совместимую версию.

7. Ошибка «Deprecated function»

PHP постепенно удаляет устаревшие функции. В случае возникновения ошибки о deprecated-функции проверьте, поддерживает ли ваша версия PHP данную функцию. Например, mysql_connect() был удален в PHP 7.0. Замените его на mysqli_connect() или используйте PDO.

Вопрос-ответ:

Как обновить PHP до нужной версии в Ubuntu?

Для обновления PHP в Ubuntu нужно выполнить несколько шагов. Во-первых, убедитесь, что ваш список репозиториев обновлён. Для этого выполните команду `sudo apt update`. После этого можно установить нужную версию PHP с помощью команды `sudo apt install php<версия>`, заменив `<версия>` на желаемую, например, `php8.1`. Если нужной версии нет в стандартных репозиториях, можно добавить репозиторий от Ondřej Surý, который поддерживает несколько версий PHP. Для этого выполните команду `sudo add-apt-repository ppa:ondrej/php` и затем снова выполните `sudo apt update`. После этого можно установить любую доступную версию PHP.

Как проверить текущую версию PHP на сервере?

Для того чтобы проверить текущую версию PHP, достаточно выполнить команду в терминале: `php -v`. Эта команда выведет информацию о текущей установленной версии PHP, включая номер версии и дополнительные детали, такие как дату сборки и информацию о конфигурации.

Как переключиться между несколькими версиями PHP на Ubuntu?

Если на вашем сервере установлено несколько версий PHP, переключение между ними можно выполнить с помощью команды `update-alternatives`. Например, чтобы переключить версию PHP CLI, выполните команду `sudo update-alternatives —config php`. Вам будет предложен список установленных версий, и нужно будет выбрать нужную цифру. Для переключения версии PHP в Apache или других веб-серверах нужно будет использовать команды типа `sudo a2dismod php<старая версия>` и `sudo a2enmod php<новая версия>`, а затем перезапустить сервер командой `sudo systemctl restart apache2`.

Что делать, если после обновления PHP перестала работать часть сайтов?

Если после обновления PHP сайты на сервере перестали работать, первым делом стоит проверить, совместим ли код ваших сайтов с новой версией PHP. Для этого можно изучить логи ошибок Apache или Nginx, которые обычно находятся в `/var/log/apache2/error.log` или `/var/log/nginx/error.log`. Возможно, на сайте используются устаревшие функции PHP, которые были удалены или изменены в новой версии. В таком случае, можно либо обновить код сайта, либо переключиться на более старую версию PHP, если обновление кода невозможно. Важно также проверить настройки PHP в конфигурационных файлах, таких как `php.ini`, так как некоторые параметры могли измениться.

Ссылка на основную публикацию