[решено] обновление php до версии 7.4 на ubuntu server с nginx + php-fpm + vestacp

Upgrading PHP-FPM with Nginx

This section describes the upgrade process for a system using Nginx as the web server and PHP-FPM to execute PHP code.

First, install the new PHP-FPM package and its dependencies:

You’ll be prompted to continue. Press Enter to complete the installation.

If you are using MySQL, be sure to re-install the PHP MySQL bindings:

Note: If you have made substantial modifications to any configuration files in , those files are still in place, and can be referenced. Configuration files for PHP 7.0 now live in .

Updating Nginx Site(s) to Use New Socket Path

Nginx communicates with PHP-FPM using a Unix domain socket. Sockets map to a path on the filesystem, and our PHP 7 installation uses a new path by default:

PHP 5 PHP 7
/var/run/php5-fpm.sock /var/run/php/php7.0-fpm.sock

Open the site configuration file with (or your editor of choice):

Your configuration may differ somewhat. Look for a block beginning with , and a line that looks something like . Change this to use .

/etc/nginx/sites-enabled/default

Exit and save the file. In , you can accomplish this by pressing Ctrl-X to exit, y to confirm, and Enter to confirm the filename to overwrite.

You should repeat this process for any other virtual sites defined in which need to support PHP.

Now we can restart :

cPanel

Большинство виртуальных хостингов предлагают cPanel, и если вы тоже используете его, то обновление PHP будет очень простым.

  • Войдите в cPanel вашего хостинга
  • Найдите версию PHP в верхнем поле
  • Нажмите Выбрать версию PHP.
  • Щелкните раскрывающийся список рядом с текущей версией PHP и выберите последнюю версию (на момент написания последней версии является 7.4).
  • Нажмите «Установить как текущий»

Если на вашей cPanel нет последней версии PHP, скорее всего, ваш хостинг-провайдер ее еще не предлагает. Вы можете связаться со службой поддержки хостинга и узнать, смогут ли они сделать это за вас в фоновом режиме. Если нет, вы можете перейти на платформу, которая поддерживает актуальность своего технологического стека, например на хостинг A2.

Установка PHP 7(php-fpm) с Nginx 1.9 в Debian 8

Недавно, вышла новая версия PHP7

В данной статье «Установка PHP 7 в Debian 8» я хотел бы уделить внимание установки PHP 7 в Debian 8

И так начнем…

Установка nginx 1.9 в Debian 8.

Для начала, добавляем ключ:

Добавляем репозиторий:

И выполняем установку:

Я ленивый иногда, по этому для этой задачи, я написал bash скрипт. Вы можете его тоже использовать:

Установка PHP 7 в Debian 8 с использованием репозитория Dotdeb.

Чтобы установить PHP 7 на Debian 8, но для начала добавляем репозиторий:

После этого, загружаем и запускаем ключ GnuPG:

Обновляем репозиторий:

Запускаем установку PHP как fpm:

Чтобы запустить PHP 7, используйте:

Запуск:

Останавливаем:

Перезапуск:

Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:

Ну это простой вариант и взят в качестве примера (что можно использовать данный репозиторий), а дальше, я опишу нормальное решение.

Установка PHP 7 в Debian 8 с исходного кода.

Для начала выполняем установку всех необходимых компонентов и все зависимости для PHP 7:

Я указал все нужные зависимости для моей сборки, вы можете дополнить их (в зависимости от своих нужд). Если не сделать это, то вы получите ошибку в процессе выполнения команды ./configure.

Переходим в директорию, скачиваем и распаковываем архив с php7, для этого выполните команду:

Вы можете использовать другую ссылку (если вышла пхп свежей версии) с официального сайта.

Переходим в папку:

Добавляем нужные модули в свою сборку и указываем параметры:

При необходимости, можно просмотреть весь список доступных модулей:

А сейчас, приступаем к компиляции и собственно к самой установки PHP 7:

Идем далее, копируем конфигурационный файл с php.ini в папку установки PHP:

Подключаем модуль Zend OPcache: /usr/local/php7/etc/conf.d

Прописываем в него:

И так, настроим сейчас PHP-FPM, для этого открываем файл:

И прописываем в него:

И для этого, создаем init.d скрипт:

Назначаем нужные права (исполнение) и добавляем скрипт в автозагрузку своей ОС:

Чтобы запустить (в данном случае перезапусить) php7-fpm выполняем:

Если используете PHP-FPM с Nginx, то нужно добавьте в блок server виртуального хоста следующий текст:

PS: Для всего этого, я написал bash скрипт, вы можете его использовать для своих нужд:

Осталось только перезапустить все службы:

Вот и все!

Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:

SimpleXML: Резюме

  • SimpleXML — очень удобный выбор, поскольку он встроен в PHP начиная с версии 5 и доступен на всех серверах, поддерживающих PHP.
  • Это парсер на основе дерева. Следовательно, вам необходимо понимать структуру документа, который вы собираетесь анализировать. Элемент в XML-документе классифицируется как SimpleXMLElement.
  • SimpleXML позволяет обрабатывать XML-файлы как полезные структуры данных: вы можете легко извлекать определенное содержимое, атрибуты или имена элементов. По сути, он превращает PHP XML в массив.
  • По сравнению с парсерами Expat или DOM, ему требуется меньше строк кода для правильного анализа XML-данных PHP.

Назад
Вперёд

Установка NGINX

Устанавливаем NGINX:

apt-get install nginx

Внесем изменение в файл nginx.conf:

vi /etc/nginx/nginx.conf

http {
    …
    server_names_hash_bucket_size 64;
    ….
}

* в данном примере мы сняли комментарий со строчки server_names_hash_bucket_size 64;* на практике, может встретиться ошибка could not build server_names_hash, you should increase server_names_hash_bucket_size: 32. Она возникает при большом количестве виртуальных серверов или если один из них будет иметь длинное название. Данная строка в конфиге исправит ситуацию.

Запускаем nginx:

systemctl enable nginx

systemctl start nginx

* в процессе запуска мы можем увидим ошибку — возможно, в системе работает другой веб-сервер и занимает 80 порт. Как правило, это apache. Чтобы его выключить (на данном этапе он нам не нужен) вводим команду systemctl stop apache2.

Проверим работу веб-сервера. Открываем браузер и вводим в адресной строке http://. В итоге мы должны увидеть заголовок «Welcome to nginx!»:

Если стартовая страница не загружается, проверяем состояние сервиса:

systemctl status nginx

Чтение XML-данных из строки

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

Представьте, что у нас есть переменная $my_data, содержащая данные XML. В следующем примере кода показано, как это будет выглядеть при первом объявлении:

Пример

Скопировать

В приведенном ниже примере, функция PHP используется для чтения XML-данных прямо из ранее упомянутой переменной:

Пример

Попробуй сам

Результат выполнения кода:

SimpleXMLElement Object ( => You => Me => The Game => You lost it. )

Чтобы поймать все ошибки и затем просмотреть их во время загрузки XML-файла PHP, вы можете использовать функции .

В следующем примере предпринимается попытка загрузить неработающую строку XML:

Пример

Попробуй сам

Результат выполнения кода:

Failed to load XML:
Opening and ending tag mismatch: to line 3 and wrong
Opening and ending tag mismatch: from line 4 and wrong
Opening and ending tag mismatch: heading line 5 and wrong
Opening and ending tag mismatch: body line 6 and wrong

Шаг 2. — Установка PHP7.2 на Ubuntu 18.04

Нужно добавить репозиторий чтобы все пакеты PHP7.2 нормально установились.(Рис.2)

sudo add-apt-repository ppa:ondrej/php

Рис.2 — Добавляем репозиторий для установки PHP7.2.

Обновляем список пакетов:

sudo apt update

Переходим к установке PHP7.2.(Рис.3)

sudo apt -y install php7.2 php7.2-fpm php7.2-mysql php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline

Если вы устанавливаете PHP7.2 для веб-сервера Apache, то требуется установить ещё один пакет libapache2-mod-php. Для того чтобы PHP-код у вас работал на Apache, а не просто отображал код в браузере:

sudo apt -y install php libapache2-mod-php

Пакеты я устанавливал по отдельности для проверки все они успешно установились. Пакеты php-common, php7.2-cli, php7.2-common, php7.2-json, php7.2-opcache, php7.2-readline скорее всего установятся вместе с предыдущими пакетами, которые написаны в начале этой длинной команды и вы получите в ответ «Уже установлен пакет … самой новой версии». 

Рис.3 — Установка PHP7.2.

Проверяем статус php7.2-fpm.(Рис.4)

sudo service php7.2-fpm status

Рис.4 — Проверяем статус  php7.2-fpm.

У меня php7.2-fpm запустился. Об этом свидетельствует строчка — «Active: active (running)», также отсутствуют ошибки.

И php7.2-fpm добавлен в автозагрузку. Это мы понимаем по слову «enabled;» В строке  «Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; «.

Если у вас не запустился или не добавился в автозагрузку  php7.2-fpm, то воспользуйтесь командами:

Запускаем php7.2-fpm.

sudo service php7.2-fpm start

Добавляем php7.2-fpm в автозагрузку.

sudo systemctl enable php7.2-fpm

Доработка только для Nginx

Если у вас веб-сервер Apache, то переходите к следующему шагу — 

Для того чтобы PHP-FPM заработал с Nginx, необходимо отредактировать конфигурационный файл виртуального хоста. Так как у нас чистый Nginx мы не создавали новые конфигурационные файлы и не вносили изменения в существующие, то у нас доступен один стандартный конфигурационный файл виртуального хоста — /etc/nginx/sites-available/default, приступаем к его редактирванию.

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

Найдите данный фрагмент и приведите его к следующему виду.(Рис.5) :

Рис.5 — Редактирования файла виртуального хоста default.

location ~ \.php$ {
        include snippets/fastcgi-php.conf;

        # With php-fpm (or other unix sockets):
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        # With php-cgi (or other tcp sockets):
        # fastcgi_pass 127.0.0.1:9000;
}

Сохраняем(Ctrl+o -> Enter) и закрываем(Ctrl+x -> Enter) конфигурационный файл.

Чтобы изменения применились нужно, чтобы Nginx перечитал конфигурационные файлы — делаем reload.

sudo service nginx reload

Настройка php 7.1

Настройка php будет заключаться в следующем:

  • Устранение уязвимостей
  • Увеличение размера загружаемого файла
  • Увеличение времени работы скрипта
  • Настройка opcache

Открываем php.ini

sudo nano /etc/php/7.1/fpm/php.ini

ищем строчку

;cgi.fix_pathinfo = 1

раскомментируем строчку и поставим за место единицы 0

cgi.fix_pathinfo = 0

Увеличим размер загружаемых файлов. Находим post_max_size и приводим к виду

post_max_size = 100M

Увеличим время обработки скрипта, ищем max_execution_time выставив 300 секунд — обычно нужно для работы с большими таблицами mysql

max_execution_time = 300

Далее ищем opcache. Приводим данные директивы к такому виду:

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=64
opcache.interned_strings_buffer=4
opcache.max_accelerated_files=7963
opcache.revalidate_freq=20

Сохраняем файл. Перезапускаем php7.1-fpm

service php7.1-fpm restart

Устанавливаем MySQL сервер и phpmyadmin

sudo apt install mysql-server-5.7

Во время установки нас попросит задать пароль для администратора mysql сервера. Выполните просьбу.
Все готово. Теперь установим менеджер работы с базами данных

sudo apt install phpmyadmin

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

ln -s /usr/share/phpmyadmin /var/www/html/my.site.ru

Зайти в менеджер базых можно будет по адресу

my.site.ru/phpmyadmin/

В будущем можно создать свой конффигурационный файл nginx для менеджера баз данных phpmyaadmin, и перенести его на поддомен типа mysql.my.site.ru, и поставить серверную авторизацию.

Установка PHP 7.2

Установка базовых пакетов для работы с PHP 7.2:

1 apt-get install php7.2php7.2-common php7.2-cli

Список всех пакетов для работы с PHP 7.2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

php7.2-bcmath-Bcmath module forPHP

php7.2-bz2-bzip2 module forPHP

php7.2-cgi-server-side,HTML-embedded scripting language(CGI binary)

php7.2-cli-command-line interpreter forthe PHP scripting language

php7.2-common-documentation,examples and common module forPHP

php7.2-curl-CURL module forPHP

php7.2-dba-DBA module forPHP

php7.2-dev-Files forPHP7.2module development

php7.2-enchant-Enchant module forPHP

php7.2-fpm-server-side,HTML-embedded scripting language(FPM-CGI binary)

php7.2-gd-GD module forPHP

php7.2-gmp-GMP module forPHP

php7.2-imap-IMAP module forPHP

php7.2-interbase-Interbase module forPHP

php7.2-intl-Internationalisation module forPHP

php7.2-json-JSON module forPHP

php7.2-ldap-LDAP module forPHP

php7.2-mbstring-MBSTRING module forPHP

php7.2-mysql-MySQL module forPHP

php7.2-odbc-ODBC module forPHP

php7.2-opcache-Zend OpCache module forPHP

php7.2-pgsql-PostgreSQL module forPHP

php7.2-phpdbg-server-side,HTML-embedded scripting language(PHPDBG binary)

php7.2-pspell-pspell module forPHP

php7.2-readline-readline module forPHP

php7.2-recode-recode module forPHP

php7.2-snmp-SNMP module forPHP

php7.2-soap-SOAP module forPHP

php7.2-sodium-libsodium module forPHP

php7.2-sqlite3-SQLite3 module forPHP

php7.2-sybase-Sybase module forPHP

php7.2-tidy-tidy module forPHP

php7.2-xml-DOM,SimpleXML,WDDX,XML,and XSL module forPHP

php7.2-xmlrpc-XMLRPC-EPI module forPHP

php7.2-xsl-XSL module forPHP(dummy)

php7.2-zip-Zip module forPHP

Speed up PHP by using an opcode cache

You can improve the performance of your PHP by using a caching method. We’ll use APCu, but there are other alternatives available.

If you have the ‘php-pear’ module installed (we included it in our instructions above), you can install APCu with the following command:

pecl install apcu

There are also other ways you can install APCu, including using a package.

To start using APCu, you should run the following command for PHP 7.2:

echo "extension=apcu.so" | tee -a /etc/php/7.2/mods-available/cache.ini

Or this command for PHP 7.3:

echo "extension=apcu.so" | tee -a /etc/php/7.3/mods-available/cache.ini

And the following command for PHP 7.4:

echo "extension=apcu.so" | tee -a /etc/php/7.4/mods-available/cache.ini

If you’re following our LAMP tutorials and you’re using Apache, create a symlink for the file you’ve just created.

For PHP 7.2:

ln -s /etc/php/7.2/mods-available/cache.ini /etc/php/7.2/apache2/conf.d/30-cache.ini

For PHP 7.3:

ln -s /etc/php/7.3/mods-available/cache.ini /etc/php/7.3/apache2/conf.d/30-cache.ini

For PHP 7.4:

ln -s /etc/php/7.4/mods-available/cache.ini /etc/php/7.4/apache2/conf.d/30-cache.ini

And finally, reload Apache for the changes to take effect:

systemctl restart apache2

To further configure APCu and how it works, you can add some additional lines to the cache.ini file you previously created. The best configuration depends on what kind of server you’re using, what applications you are using etc. Either google it and find a configuration that works for you, or contact professionals and let them do it for you.

Testing PHP

With a web server configured and the new packages installed, we should be able to verify that PHP is up and running. Begin by checking the installed version of PHP at the command line:

You can also create a test file in the web server’s document root. Depending on your server and configuration, this may be one of:

Using , open a new file called in the document root. By default, on Apache, this would be:

On Nginx, you might instead use:

Paste the following code:

info.php

Exit the editor, saving . Now, load the following address in your browser:

You should see PHP version and configuration info for PHP 7. Once you’ve double-checked this, it’s safest to to delete :

Install PHP 7.4 on Ubuntu

PHP 7.4 is the latest stable version is available for installation. Use the following set of commands to enable PPA for PHP 7.4 in your Ubuntu system and install it. You can use this version for production use also.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php7.4

Now use the following command to check installed php version on your system.

php -v 

PHP 7.4.5 (cli) (built: Apr 28 2020 14:49:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.5, Copyright (c), by Zend Technologies

Шаг 4 — Тестирование сайтов

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

Откройте в браузере сайты и . Вы увидите две страницы, выглядящие следующим образом:

Обратите внимание на заголовки. На первой странице указано, что на сайте развернута версия PHP 7.0

На второй странице указано, что на сайте развернута версия PHP 7.2.

Мы протестировали сайты и теперь можем удалить файлы . Эти файлы представляют собой угрозу безопасности, поскольку они содержат важную информацию о вашем сервере и при этом доступны неуполномоченным пользователям. Удалите файлы:

Теперь у вас имеется один сервер CentOS 7, обслуживающий два сайта с двумя разными версиями PHP. Однако PHP-FPM можно применять и для других целей.

Parameter Values

Parameter Description
file Required. Specifies the path to the XML file
class Optional. Specifies the class of the new object
options Optional. Specifies additional Libxml parameters. Is set by specifying the option and 1 or 0 (TRUE or FALSE, e.g. LIBXML_NOBLANKS(1))

Possible values:

  • LIBXML_COMPACT — Activate nodes allocation optimization (may speed up application)
  • LIBXML_DTDATTR — Set default DTD attributes
  • LIBXML_DTDLOAD — Load external subset
  • LIBXML_DTDVALID — Validate with the DTD
  • LIBXML_NOBLANKS — Remove blank nodes
  • LIBXML_NOCDATA — Merge CDATA as text nodes
  • LIBXML_NOEMPTYTAG — Expand empty tags (e.g. <br/> to <br></br>), only available in the DOMDocument->save() and DOMDocument->saveXML() functions
  • LIBXML_NOENT — Substitute entities
  • LIBXML_NOERROR — Do not show error reports
  • LIBXML_NONET — Disable network access while loading documents
  • LIBXML_NOWARNING — Do not show warning reports
  • LIBXML_NOXMLDECL — Drop the XML declaration when saving a document
  • LIBXML_NSCLEAN — Remove redundant namespace declarations
  • LIBXML_PARSEHUGE — Sets XML_PARSE_HUGE flag, which relaxes any hardcoded limit from the parser. This affects limits like maximum depth of a document and limits of the size of text nodes
  • LIBXML_XINCLUDE — Implement XInclude substitution
  • LIBXML_ERR_ERROR — Get recoverable errors
  • LIBXML_ERR_FATAL — Get fatal errors
  • LIBXML_ERR_NONE — Get no errors
  • LIBXML_ERR_WARNING — Get simple warnings
  • LIBXML_VERSION — Get libxml version (e.g. 20605 or 20617)
  • LIBXML_DOTTED_VERSION — Get dotted libxml version (e.g. 2.6.5 or 2.6.17)
ns Optional. Specifies a namespace prefix or URI
is_prefix Optional. Specifies a Boolean value. TRUE if ns is a prefix. FALSE if ns is a URI. Default is FALSE

Установка PHP в Ubuntu

Предполагается, что у вас уже установлен какой-нибудь PHP версии 7.x. Если нет, то давайте это исправим:

apt-get update && apt-get upgrade
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php7.2
apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml

1
2
3
4
5
6

apt-get update&&apt-get upgrade

apt-get install software-properties-common

add-apt-repository ppaondrejphp

apt-get update

apt-get install php7.2

apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml

Теперь, например устанавливаем версию 5.6:

sudo apt install php5.6

1 sudo apt install php5.6

После всех этих команд на вашей машине установлены 7.2 и 5.6 версии. Выведем список всех установленных версий в меню, которое позволит выбрать нужную версию:

sudo update-alternatives —config php

1 sudo update-alternatives—config php

После этого вы увидите примерно такое:

There are 2 choices for the alternative php (providing /usr/bin/php).

Selection Path Priority Status

————————————————————

* 0 /usr/bin/php7.2 72 auto mode

1 /usr/bin/php5.6 56 manual mode

2 /usr/bin/php7.2 72 manual mode

Press <enter> to keep the current choice, or type selection number:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

There are2choices forthe alternative php(providingusrbinphp).

Selection    Path             Priority   Status

————————————————————

*usrbinphp7.272auto mode

1usrbinphp5.656manual mode

2usrbinphp7.272manual mode

Press<enter>tokeep the current choice*,ortype selection number

В коде выше можно выбрать например пункт — 1 и тогда версия переключится на 5.6. Проверить это можно следующей командой:

php -v

1 php-v

Которая вернет примерно такое сообщение:

PHP 5.6.38+deb.sury.org+2 (cli)

Copyright (c) 1997-2016 The PHP Group

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

1
2
3
4
5
6
7

PHP5.6.38+deb.sury.org+2(cli)

Copyright(c)1997-2016The PHP Group

Zend Engine v2.6.0,Copyright(c)1998-2016Zend Technologies

with Zend OPcache v7.0.6-dev,Copyright(c)1999-2016,by Zend Technologies

Таким образом, теперь вы можете легко менять свои версии даже легче чем в Open Server

Install PHP 7.1 on Ubuntu

Use the following set of commands to add PPA for PHP 7 in your Ubuntu system and install PHP 7.1 version.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php7.1

Now use the following command to check installed php version on your system.

php -v 

PHP 7.1.27-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar  7 2019 20:02:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.27-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Install PHP 7.1 on Ubuntu

Use the following set of commands to add PPA for PHP 7 in your Ubuntu system and install PHP 7.1 version.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php7.1

Now use the following command to check installed php version on your system.

php -v 

PHP 7.1.27-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar  7 2019 20:02:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.27-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Тестирование PHP

Теперь веб-сервер настроен, все новые пакеты установлены. Нужно убедиться, что обновление прошло успешно.

Запросите версию PHP:

Также можно создать тестовый файл в каталоге document root веб-сервера. В зависимости от используемого сервера и настройки это может быть один из этих каталогов:

  • /var/www/html
  • /var/www/
  • /usr/share/nginx/html

При помощи nano откройте новый файл info.php в каталоге document root. По умолчанию для Apache это каталог:

Для Nginx:

Вставьте в файл следующий код:

Закройте редактор и сохраните файл. Теперь откройте файл в браузере:

Появившаяся на экране страница указывает версию PHP и предоставляет данные о настройке PHP 7. После проверки рекомендуется удалить файл info.php, так как он содержит конфиденциальные данные.

Обновление PHP-FPM на Nginx

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

$ sudo apt-get install php7.0-fpm

Для завершения установки вам нужно нажать Enter.

Всем пользователям MySQL необходимо убедиться, что они повторно добавили обновленные двухсторонние биндинги PHP MySQL:

$ sudo apt-get install php7.0-mysql

Примечание.
Если вы делали какие-то значительные изменения в файлах конфигурации в /etc/php5/, они будут все еще доступны. Конфигурационные файлы для PHP 7 вы можете найти в /etc/php/7.0.

Обновление PHP-FPM для Nginx

Этот раздел содержит инструкции по обновлению PHP-FPM для поддержки новой версии PHP.

Установите пакеты новой версии PHP и её зависимостей:

Нажмите Enter, чтобы продолжить.

При использовании MySQL нужно переустановить связки PHP:

Примечание: Если вы вносили существенные изменения в конфигурационные файлы в /etc/php5/, на них по-прежнему можно ссылаться, они не удалены. Конфигурационные файлы PHP 7.0 хранятся в /etc/php/7.0

Настройка сокетов Nginx

Nginx взаимодействует с PHP-FPM при помощи сокетов Unix. Сокеты задают пути в файловой системе; по умолчанию установка PHP 7 использует новый путь.

PHP 5 PHP 7
/var/run/php5-fpm.sock /var/run/php/php7.0-fpm.sock

Откройте конфигурационный файл default:

Примечание: Приведённые здесь настройки могут отличаться от ваших.

Найдите блок location ~ \.php$ {, и строку, которая выглядит примерно так:

Отредактируйте её следующим образом:

Теперь блок выглядит так:

Сохраните и закройте файл.

Если у вас несколько сайтов, повторите этот процесс в конфигурационных файлах всех сайтов, добавленных в /etc/nginx/sites-enabled, если они должны поддерживать PHP.

Перезапустите nginx:

Тестирование PHP

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

$ php –v

На экране высветится сообщение с необходимой информацией.

Создание тестового файла возможно и в корневом каталоге документов веб-сервера. В зависимости от того, какой у вас веб-сервер и конфигурация, это может быть один из следующих вариантов:

  • /var/www/html
  • /var/www/
  • /usr/share/nginx/html

Используя редактор nano, откройте файл info.php в корневом каталоге документов. По умолчанию в Apache этот путь:

$ sudo nano /var/www/html/info.php

В Nginx этот путь выглядит так:

$ sudo nano /usr/share/nginx/html/info.php

Скопируйте туда следующий код:

<?php
phpinfo();
?>

Выйдите из редактора, сохранив info.php. Теперь загрузите в своем браузере следующую страницу:

http://домен_или_IP/info.php
На экране должна высветиться версия PHP, а также данные, касающиеся конфигурации для PHP 7. После того, как вы все проверите, советуем удалить info.php:

$ sudo rm /var/www/html/info.php

Добавление PPA для пакетов PHP7

Персональные архивы пакетов (PPA) представляют собой пакеты, которые обычно создаются и распространяются в репозиториях, специальных серверах-хранилищах для таких файлов. launchpad.net – сервис, созданный для поддержки и развития подобных свободных проектов. Именно там вы можете найти бета-версии, модифицированные сборки и ретроподдержки для более старых версий операционной системы.

$ sudo add-apt-repository ppa:ondrej/php

После того, как на экране высветилось описание пакета PPA, нажмите Enter.

Примечание.
Если в вашей локали установлена не UTF-8 кодировка, тогда при установке PPA может возникнуть ошибка, связанная с обработкой букв имени автора. В качестве временного решения вы можете установить language-pack-en-base, и, когда локали сгенерированы, заместить настройки локали системы в то время, как добавляется PPA:

$ sudo apt-get install -y language-pack-en-base
$ sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

После того, как пакет PPA установлен, вам необходимо обновить кэш локального пакета. Это нужно для того, чтобы локальный пакет включал содержание PPA:

$ sudo apt-get update

После того, как вы получили доступ к пакетам PHP 7.0, можно заменить уже установленную версию PHP.

How to Install PHP 7.2 on Ubuntu 16.04

PHP 7.2 is a stable version of PHP and has many new features, improvements, and bug fixes. You should definitely use it if you want a better, faster website/application.

Of course, as always, first update Ubuntu:

apt-get update && apt-get upgrade

Add the PHP repository

You can use a third-party repository to install the latest version of PHP. We’ll use the repository by Ondřej Surý.

First, make sure you have the following package installed so you can add repositories:

apt-get install software-properties-common

Next, add the PHP repository from Ondřej:

add-apt-repository ppa:ondrej/php

And finally, update your package list:

apt-get update

Install PHP 7.2

After you’ve added the repository, you can install PHP 7.2 with the following command:

apt-get install php7.2

This command will install additional packages:

  • libapache2-mod-php7.2
  • libargon2-0
  • libsodium23
  • libssl1.1
  • php7.2-cli
  • php7.2-common
  • php7.2-json
  • php7.2-opcache
  • php7.2-readline

And that’s it. To check if PHP 7.2 is installed on your server, run the following command:

php -v

Install PHP 7.2 modules

You may need additional packages and modules depending on your applications. The most commonly used modules can be installed with the following command:

apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml

And that’s all. You can now start using PHP on your Ubuntu server.

If you want to further tweak and configure your PHP, read our instructions below.

Adding a PPA for PHP 7.0 Packages

A Personal Package Archive, or PPA, is an Apt repository hosted on Launchpad. PPAs allow third-party developers to build and distribute packages for Ubuntu outside of the official channels. They’re often useful sources of beta software, modified builds, and backports to older releases of the operating system.

Ondřej Surý maintains the PHP packages for Debian, and offers a PPA for PHP 7.0 on Ubuntu. Before doing anything else, log in to your system, and add Ondřej’s PPA to the system’s Apt sources:

You’ll see a description of the PPA, followed by a prompt to continue. Press Enter to proceed.

Note: If your system’s locale is set to anything other than UTF-8, adding the PPA may fail due to a bug handling characters in the author’s name. As a workaround, you can install to make sure that locales are generated, and override system-wide locale settings while adding the PPA:

Once the PPA is installed, update the local package cache to include its contents:

Now that we have access to packages for PHP 7.0, we can replace the existing PHP installation.

Шаг 3. — Проверка — info.php

Для того чтобы проверить PHP-FPM и узнать подробную информацию о PHP, нужно создать файл info.php в каталоге html вэб-сервера, вписать в него специальную строчку php-кода, для отображения информации, и в браузере открыть страницу IP-адрес/info.php. Приступим!

Проверка PHP для вэб-серверов Apache и Nginx одинаковая:

Создаём файл info.php.

sudo touch /var/www/html/info.php

Вписываем в файл info.php строчку <?php phpinfo(); ?>. Сделал это одной командой, так быстрее вам будет скопипастить.

sudo sh -c "echo '<?php phpinfo(); ?>' >> /var/www/html/info.php"

Проверим, через cat, вписалась ли строчка в файл info.php.

cat /var/www/html/info.php

У меня всё ок! Теперь в браузере по адресу 192.168.3.8/info.php можно увидеть всю информацию о PHP установленном нашем сервере.(Рис.6) Это значит что PHP корректно работает на нашем Apache или Nginx.

Рис.6 — Информация о PHP в браузере.

В целях безопасности файл info.php лучше удалить, чтобы скрыть информацию от хакеров.

sudo rm /var/www/html/info.php

У меня всё!

Поделиться публикацией

Была ли вам полезна статья? Есть возможность

поддержать проект.

CentOS 8.x

Вы можете легко обновить PHP на CentOS 8.x следующим образом.

CentOS 8 по умолчанию предоставит вам PHP 7.2.

Допустим, вам нужно обновить его до последней версии 7.4.

Первым делом вам необходимо установить репозиторий REMI с помощью команды DNF.

Пример:

Давайте перечислим доступный модуль PHP с помощью после добавления репозитория REMI.

Как видите, 7.2 по умолчанию и включен, но можно активировать другую версию, например 7.3, 7.4 и 8.0. PHP 8.0 все еще находится в стадии бета-тестирования, поэтому его не рекомендуется использовать для работающего сайта.

Включим 7.4.

После включения вы должны запустить команду списка модулей для проверки.

Как вы можете видеть выше, теперь включена версия 7.4.

И, наконец, мы можем установить PHP 7.4, как показано ниже.

После этого проверьте версию для проверки.

Вы хотите поиграть с бета-версией PHP 8.0?

Если да, то выполните команду ниже.

А затем проверьте установленную версию PHP.

PHP расширения

Дополнительный функционал в PHP реализован с помощью расширений. Некоторые расширения могут сразу поставляться с интерпретатором, а некоторые расширения следует устанавливать дополнительно.

Установка

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

Подключение расширения GD:

sudo apt-get install php-gd

Подключение расширения MySQL:

sudo apt-get install php-mysql

Подключение расширения Mcrypt:

sudo apt-get install php-mcrypt

Настройка

Файлы настроек доступных расширений располагаются в директории . У каждого варианта запуска интерпретатора существует своя директория в которой находятся символьные ссылки на активные расширения.

Установка PHP 8 для NGINX сервера Ubuntu

В отличие от Apache, NGINX не имеет встроенных возможностей для обработки PHP-документов. Чтобы обойти эту проблему, вам нужно установить PHP-FPM (то есть PHP FastCGI Process Manager) и настроить его для работы с NGINX.

Первое что требуется это убедится в том, что вы добавили репозиторий ondre/php.

Кроме того, проверьте наличие обновлений пакета с помощью команды:

Чтобы установить PHP-FPM 8.0 на Ubuntu 20.04, выполните приведенную ниже команду.

Теперь проверьте версию PHP с помощью команды:

Затем откройте файл блока сервера NGINX по умолчанию, делается это следующим образом.

Прокрутите вниз, пока не дойдете до строки, начинающейся с index, а затем добавьте index.php к списку, как показано на рисунке ниже.


Добавить index.php директива to NGINX index

Прокрутите страницу вниз еще дальше, пока не увидите раздел # pass PHP scripts to FastCGI server. Измените эту часть конфигурационного файла так, чтобы она выглядела так, как вы видите в приведенном ниже блоке кода.

Обратите внимание, что определенные строки были раскомментированы, а php7.4-fpm.sock был заменен на php8.0-fpm.sock. Сохраните внесенные изменения и закройте файл блокировки сервера

Сохраните внесенные изменения и закройте файл блокировки сервера.

Тест PHP 8 на NGINX

Чтобы убедиться, что после установки PHP 8, он правильно работает с NGINX. Создайте index.php файл в корне документа по умолчанию.

Скопируйте и вставьте приведенный ниже пример PHP — кода в текстовый редактор.

Сохраните и закройте index.php файл.

И последнее, откройте веб-браузер и перейдите к server IP/index.php… Заменив serverIP на ваш фактический IP-адрес сервера.

Если вы видите страницу PHP версии 8.0.3 info, то вы все сделали правильно.


PHP Версия 8.0.3 страница на NGINX

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: