Просмотр версии php ubuntu

Установка и смена версий PHP: пошаговая инструкция

PHP — это скриптовый язык программирования, который обычно используется для разработки веб-приложений. С его помощью можно создавать динамические сайты, которые будут адаптировать страницы под конкретного пользователя. Такие сайты не хранятся на сервере в готовом виде, а создаются на сервере после запроса от пользователя. Это означает, что PHP — это серверный язык, т.е. написанные на нём скрипты выполняются на сервере, а не на компьютере пользователя.

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

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

Как установить PHP на сервер

Установить PHP можно вручную или через панель управления, такую как ISPmanager. Разберем оба способа.

Ручная установка

Чтобы установить PHP на Ubuntu Server, совершите следующие действия:

sudo apt install build-essential libssl-dev

После этого PHP будет установлен на сервер. Осталось установить веб-сервер для работы с языком. Настройка может включать в себя указание модуля PHP в конфигурационном файле веб-сервера и настройку обработки файлов с расширением .php.

Читайте также:  overflow

В конце перезапустите веб-сервер. Например, для перезагрузки Apache вы можете выполнить следующую команду:

sudo service apache2 restart

ISPmanager: установка php

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

Через ISPmanager вы можете управлять версиями PHP, в том числе и устанавливать дополнительные. Для установки выполните следующие шаги:

  1. Войдите в ISPmanager от имени администратора.
  2. Перейдите в раздел «Конфигурация ПО».
  3. Выберите нужную версию программного обеспечения:

Как узнать версию PHP

Есть несколько способов узнать, на какой версии работает сайт:

Узнаем версию через phpinfo()

  1. Сохраните файл в корневой директории веб-сайта (там, где расположен файл index.html или index.php).
  2. Откройте этот файл в браузере, набрав в адресной строке http://адрес_вашего_сайта/phpinfo.php .

Вы увидите страницу такую страницу с подробной информацией:

После того, как узнаете версию, не забудьте удалить файл phpinfo.php , так как он содержит важную информацию о конфигурации сервера, которую могут использовать злоумышленники.

Через терминал

Выполните в терминале команду:

Вы получите подобный вывод:

Через ISPmanager

В ISPmanager версия PHP, на которой работает сайт, находится в настройках сайта:

Где находятся настройки версий PHP в ISPmanager

В ISPmanager настройки версий расположены в разделе «Настройки» -> «Настройки PHP». Например, в этом разделе вы можете включить или отключить различные расширения PHP. Обратите внимание, что в ISPmanager вы можете управлять только теми версиями, которые уже установлены на сервере.

А вот как изменить версию php в ISPmanager :

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

Как выбрать версию PHP при работе в командной строке (SSH)

В некоторых случаях отсутствует возможность сменить версию через панель управления. В таких ситуациях можно воспользоваться командной строкой. Чтобы переключиться между установленными версиями на Ubuntu, следуйте этим шагам:

  1. Убедитесь, что у вас установлено несколько версий PHP. Чтобы увидеть список установленных пакетов, выполните эту команду:
  1. Установите пакет php-switch , который позволяет легко переключаться между установленными версиями PHP:
sudo apt-get install -y php-switch
  1. Воспользуйтесь командой php-switch , чтобы переключиться между установленными версиями PHP. Например, чтобы переключиться на PHP 7.4, выполните эту команду:

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

Что делать, если не обрабатываются PHP-скрипты

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

Чтобы узнать, в чем заключается проблема, можно сделать следующее:

Для этого выполните команду, используя вашу версию php:

sudo service php7.4-fpm status

Если сервис запущен, то в выводе команды должно быть указано active (running) . Если сервис не запущен, то запустите его, используя команду:

sudo service php7.4-fpm start

Для этого можно использовать команду:

Эта команда выведет последние строки лог-файла PHP, что может помочь в определении проблемы.

Откройте файл php.ini в текстовом редакторе и проверьте, что опция display_errors установлена в значение On . Это позволит отображать ошибки PHP на страницах сайта.

Откройте скрипты в текстовом редакторе и поищите в них ошибки синтаксиса или другие ошибки, которые могут привести к неработоспособности скриптов.

Например, в файле .htaccess могут быть указаны ограничения на работу скриптов для определенных директорий.

Если скрипты работают на другом сервере, то возможно проблема с конфигурацией текущего сервера.

Заключение

Мы рассмотрели установку PHP на сервер вручную и с помощью популярной панели ISPmanager. Если вы используете другую панель, возможно, вам пригодятся наши инструкции из Базы знаний по настройке PHP в панелях Fastpanel и ISPConfig.

Источник

phpinfo

Outputs a large amount of information about the current state of PHP. This includes information about PHP compilation options and extensions, the PHP version, server information and environment (if compiled as a module), the PHP environment, OS version information, paths, master and local values of configuration options, HTTP headers, and the PHP License.

Because every system is setup differently, phpinfo() is commonly used to check configuration settings and for available predefined variables on a given system.

phpinfo() is also a valuable debugging tool as it contains all EGPCS (Environment, GET, POST, Cookie, Server) data.

Parameters

The output may be customized by passing one or more of the following constants bitwise values summed together in the optional flags parameter. One can also combine the respective constants or bitwise values together with the bitwise or operator.

phpinfo() options

Name (constant) Value Description
INFO_GENERAL 1 The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS 2 PHP Credits. See also phpcredits() .
INFO_CONFIGURATION 4 Current Local and Master values for PHP directives. See also ini_get() .
INFO_MODULES 8 Loaded modules and their respective settings. See also get_loaded_extensions() .
INFO_ENVIRONMENT 16 Environment Variable information that’s also available in $_ENV .
INFO_VARIABLES 32 Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE 64 PHP License information. See also the » license FAQ.
INFO_ALL -1 Shows all of the above.

Return Values

Always returns true .

Examples

Example #1 phpinfo() Example

// Show all information, defaults to INFO_ALL
phpinfo ();

// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo ( INFO_MODULES );

Notes

Note:

In versions of PHP before 5.5, parts of the information displayed are disabled when the expose_php configuration setting is set to off . This includes the PHP and Zend logos, and the credits.

Note:

phpinfo() outputs plain text instead of HTML when using the CLI mode.

See Also

  • phpversion() — Gets the current PHP version
  • phpcredits() — Prints out the credits for PHP
  • ini_get() — Gets the value of a configuration option
  • ini_set() — Sets the value of a configuration option
  • get_loaded_extensions() — Returns an array with the names of all modules compiled and loaded
  • Predefined Variables

User Contributed Notes 21 notes

A simple method to style your own phpinfo() output.

ob_start () ;
phpinfo () ;
$pinfo = ob_get_contents () ;
ob_end_clean () ;

// the name attribute «module_Zend Optimizer» of an anker-tag is not xhtml valide, so replace it with «module_Zend_Optimizer»
echo ( str_replace ( «module_Zend Optimizer» , «module_Zend_Optimizer» , preg_replace ( ‘%^.*(.*).*$%ms’ , ‘$1’ , $pinfo ) ) ) ;

This is necessary to obtain a W3C validation (XHTML1.0 Transitionnal).
phpinfo’s output is declared with that DTD :
— «System ID» has the wrong url to validate : «DTD/xhtml1-transitional.dtd» rather than «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»
— Some module names contains space and the function’s output use the name in anchors as ID and NAME. these attributes can’t be validated like that (unique name only).

ob_start (); // Capturing
phpinfo (); // phpinfo ()
$info = trim ( ob_get_clean ()); // output

// Replace white space in ID and NAME attributes. if exists
$info = preg_replace ( ‘/(id|name)(=[«\’][^ «\’]+) ([^ «\’]*[«\’])/i’ , ‘$1$2_$3’ , $info );

$info_doc = new DOMDocument ( ‘1.0’ , ‘utf-8’ );
/* Parse phpinfo’s output
* operator @ used to avoid messages about undefined entities
* or use loadHTML instead
*/
@ $info_doc -> loadXML ( $info );

$doc -> documentElement -> appendChild ( // Adding HEAD element to HTML
$doc -> importNode (
$info_doc -> getElementsByTagName ( ‘head’ )-> item ( 0 ),
true // With all the subtree
)
);
$doc -> documentElement -> appendChild ( // Adding BODY element to HTML
$doc -> importNode (
$info_doc -> getElementsByTagName ( ‘body’ )-> item ( 0 ),
true // With all the subtree
)
);

// Now you get a clean output and you are able to validate.
/*
echo ($doc->saveXML ());
// OR
echo ($doc->saveHTML ());
*/

// By that way it’s easy to add some style declaration :
$style = $doc -> getElementsByTagName ( ‘style’ )-> item ( 0 );
$style -> appendChild (
$doc -> createTextNode (
‘/* SOME NEW CSS RULES TO ADD TO THE FUNCTION OUTPUT */’
)
);

// to add some more informations to display :
$body = $doc -> getElementsByTagName ( ‘body’ )-> item ( 0 );
$element = $doc -> createElement ( ‘p’ );
$element -> appendChild (
$doc -> createTextNode (
‘SOME NEW CONTENT TO DISPLAY’
)
);
$body -> appendChild ( $element );

// to add a new header :
$head = $doc -> getElementsByTagName ( ‘head’ )-> item ( 0 );
$meta = $doc -> createElement ( ‘meta’ );
$meta -> setAttribute ( ‘name’ , ‘author’ );
$meta -> setAttribute ( ‘content’ , ‘arimbourg at ariworld dot eu’ );
$head -> appendChild ( $meta );

// As you wish, take the rest of the output and add it for debugging
$out = ob_get_clean ();

$pre = $doc -> createElement ( ‘div’ ); // or pre
$pre -> setAttribute ( ‘style’ , ‘white-space: pre;’ ); // for a div element, useless with pre
$pre -> appendChild ( $doc -> createTextNode ( $out ));
$body -> appendChild ( $pre );

$doc -> formatOutput = true ; // For a nice indentation
$doc -> saveXML ();

?>

All that could be done with only RegExp but I prefer the use of DOM for manipulating documents

Источник

Оцените статью