Как создать файл phpinfo и проверить информацию о php

実行時設定

php.ini の設定により動作が変化します。

PHP オプション/情報設定オプション
名前 デフォルト 変更可能 変更履歴
«1» PHP_INI_ALL  
«0» PHP_INI_ALL  
«1» PHP_INI_ALL  
NULL PHP_INI_ALL  
«0» PHP_INI_ALL  
«0» PHP_INI_ALL PHP 7.0.0 以降で利用可能。
«1» PHP_INI_SYSTEM この非推奨の機能は、きっと 将来 削除 されるでしょう。
«30» PHP_INI_ALL  
«-1» PHP_INI_PERDIR  
«64» PHP_INI_PERDIR PHP 5.2.3 以降で有効。
1000 PHP_INI_PERDIR PHP 5.3.9 以降で有効
«1» PHP_INI_PERDIR PHP 5.4.0 で削除。
«0» PHP_INI_ALL PHP 5.4.0 で削除。
«1» PHP_INI_ALL PHP 5.3.0 以降で有効。

どこで設定を行うのか


以下に設定ディレクティブに関する 簡単な説明を示します。

boolean

assert() の評価を有効にします。

boolean

assertion が失敗した時にスクリプトの実行を終了します。

boolean

assertion が失敗する度に PHP 警告を発行します。

string

assertion が失敗した時にコールされるユーザー関数

boolean

assertion 式の評価時に error_reporting() の現在の 設定を使用します。有効な場合、評価時にエラーは表示されません。 (暗黙のうちに error_reporting(0) とします) 無効な場合、エラーは、error_reporting() の設定に 基づき設定されます。

boolean

アサーションに失敗した場合に AssertionError 例外を発行します。

boolean

このディレクティブは、Apacheモジュール版のPHPを使用した場合にのみ 有用です。PHPの動的ロード拡張機能をdl()で 仮想サーバー毎またはディレクトリ毎にオンまたはオフに変更することが できます。

動的ロード機能をオフにするのは主としてセキュリティ上の理由によります。 動的ロード機能により、 の拘束を全て 無視することが可能になります。 デフォルトでは、を 使用している場合以外、動的ロードが可能です。においては、 dl() を使用することが常に不可能になります。

integer

スクリプトがパーサにより強制終了されるまでに許容される最大の 時間を秒単位で指定します。この命令は、いい加減に書かれた スクリプトがサーバーの負荷を上げることを防止するのに役立ちます。 デフォルトでは、30 に設定されています。 PHP を コマンドライン から実行する場合のデフォルト設定は です。

最大実行時間は、システムコール、ストリーム操作等の 影響を受けません。より詳細な情報については、 set_time_limit() 関数の説明を参照ください。

で実行している場合にはこの設定を ini_set() で変更することはできません。次善策としては をオフにするか あるいは php.ini 上で制限時間を変えるしかありません。

Web サーバー側でもタイムアウトの設定項目を持ち、 その設定で PHP の実行が中断されることもあります。 Apache には Timeout ディレクティブ、IIS には CGI タイムアウト関数があり、どちらもデフォルトで 300 秒に設定されています。 これらの意味については、Web サーバーのドキュメントを参照ください。

integer

スクリプトが POST、GET などの入力を パースする最大の時間を、秒単位で指定します。 これは、サーバー側で PHP が起動してからスクリプトの実行を開始するまでの時間です。 デフォルトの設定は -1 です。 これは が代わりに使われることを意味しています。 無制限にするには、 を設定してください。

integer

外部からの入力変数 ($_GET$_POST など) のネストの深さの最大値を設定します。

integer

入力変数 を最大で何個まで受け付けるかを指定します (この制限は、スーパーグローバル $_GET、$_POST そして $_COOKIE にそれぞれ個別に適用されます)。 このディレクティブを使うと、ハッシュの衝突を悪用したサービス不能攻撃を受ける可能性を軽減できます。 このディレクティブで設定した数を超える入力変数があった場合は が発生し、 それ以降の入力変数はリクエストから削除されます。

boolean

警告

この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。

GPC(Get/Post/Cookie) 処理に関する magic_quotes の設定を行います。 magic_quotes が on の場合、'(シングルクオート)、» (ダブルクオート)、\(バックスラッシュ) 、NULL には全て自動的に バックスラッシュでエスケープ処理が行われます。magic_quotes_sybase も on の場合、シングルクオートは、バックスラッシュではなく シングルクオートでエスケープされます。

get_magic_quotes_gpc() も参照してください。

boolean

警告

この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。

が有効の場合、 データベースおよびテクストファイルを含む外部ソースから データを返す全ての関数のクオートは、バックスラッシュで エスケープされます。 も on の場合、シングルクオートは、バックスラッシュの代わりに シングルクオートでエスケープされます。

の影響を受ける関数は次のとおりです (PECL の関数は除きます)。

  • get_meta_tags()
  • file_get_contents()
  • file()
  • fgets()
  • fwrite()
  • fread()
  • fputcsv()
  • stream_socket_recvfrom()
  • exec()
  • system()
  • passthru()
  • stream_get_contents()
  • bzread()
  • gzfile()
  • gzgets()
  • gzwrite()
  • gzread()
  • exif_read_data()
  • dba_insert()
  • dba_replace()
  • dba_fetch()
  • ibase_fetch_row()
  • ibase_fetch_assoc()
  • ibase_fetch_object()
  • mssql_fetch_row()
  • mssql_fetch_object()
  • mssql_fetch_array()
  • mssql_fetch_assoc()
  • mysqli_fetch_row()
  • mysqli_fetch_array()
  • mysqli_fetch_assoc()
  • mysqli_fetch_object()
  • pg_fetch_row()
  • pg_fetch_assoc()
  • pg_fetch_array()
  • pg_fetch_object()
  • pg_fetch_all()
  • pg_select()
  • sybase_fetch_object()
  • sybase_fetch_array()
  • sybase_fetch_assoc()
  • SplFileObject::fgets()
  • SplFileObject::fgetcsv()
  • SplFileObject::fwrite()
boolean

循環参照コレクタを有効あるいは無効にします。

Зачем обновлять, если все работает

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

В каждом релизе PHP появляются новые фишки и функции, а также закрываются уязвимости. Например, is_countable позволяет определить тип переменной — перечисляемый или нет. Это очень удобная возможность для веб-разработчиков. Сейчас приходится использовать для определения типа переменной if, а в PHP 7.3 это можно будет сделать одной функцией.

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

Веб-хостинг Plesk в своем блоге на Хабре выложил статистику, какие версии PHP используют их пользователи на своих сайтах. В начале марта2018 года ситуация выглядела вот так:

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

Об этой статье

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 13 человек(а). Количество просмотров этой статьи: 16 301.

Категории: Программирование

English:Check PHP Version

Español:verificar la versión de PHP

Italiano:Controllare la Versione di un Server PHP

Português:Verificar a Versão do PHP

Deutsch:Die Version von PHP überprüfen

Français:connaitre votre version de PHP

Bahasa Indonesia:Mengecek Versi PHP

Nederlands:De PHP‐versie controleren

ไทย:เช็คเวอร์ชั่น PHP

中文:查看PHP版本

Tiếng Việt:Kiểm tra phiên bản PHP

العربية:التحقق من إصدار البي إتش بي

日本語:PHPのバージョンを確認する

한국어:PHP 버전 확인 방법

हिन्दी:पीएचपी (PHP) वर्जन का पता लगाएँ (Check PHP Version)

Türkçe:PHP Sürümü Nasıl Öğrenilir

Печать

HipHop и прорыв в скорости

Facebook написан на PHP — проблему нужно было решать. Их программисты создали для пятой версии собственный интерпретатор языка. Они компилировали его изначально в промежуточные коды, а затем отправляли в обычный интерпретатор Zend Engine. Программисты Facebook ввели статическую типизацию и ускорили работу языка в два раза. Это стало настоящим прорывом. Транслятор назвали HHVM, или HPHP Compiler — «HipHop для языка PHP».

Но команда разработки PHP плотно занялась массивами. Итогом стала седьмая версия, которая работала быстрее HHVM. При этом статической типизации в PHP7 по-прежнему почти нет. Только в параметрах функции — но это так мало, что можно считать, будто нет.

С версии 7.0 до 7.3, которая сейчас в бета-тестировании, язык ускорялся — разница видна по замерам:

 7.3 станет последним релизом: поддерживать и править ошибки будут, но ничего принципиально нового не появится.

Пример работы PHP в теме WordPress

Давайте немного углубим понимание с помощью небольшого примера, соединяющего в себе серверную природу PHP и ваш сайт WordPress. Если вернетесь к той картинке с темой «Twenty Seventeen»:Вы увидите, что “sidebar.php”, “header.php”, “comments.php” и т.д. представлены в отдельных PHP файлах.

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

Например:

  • sidebar.php определяет как выглядит и функционирует область боковой панели
  • header.php определяет как выглядит и функционирует заголовочная часть
  • comments.php определяет как выглядит и функционирует раздел комментариев и т. д.

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

Life cycle of an extension

A PHP extension goes through several phases during its lifetime. All of these phases are opportunities for the developer to perform various initialization, termination, or informational functions. The Zend API allows for hooks into five separate phases of an extension’s existence, apart from calls by PHP functions.

Loading, unloading, and requests

As the Zend engine runs, it processes one or more «requests» from its client. In the traditional CGI implementation, this corresponds to one execution of a process. However, many other implementations, most notably the Apache module, can map many requests onto a single PHP process. A PHP extension may thus see many requests in its lifetime.

Overview

  • In the Zend API, a module is loaded into memory only once when the associated PHP process starts up. Each module receives a call to the «module initialization» function specified in its structure as it is loaded.
  • Whenever the associated PHP process starts to handle a request from its client — i.e. whenever the PHP interpreter is told to start working — each module receives a call to the «request initialization» function specified in its structure.
  • Whenever the associated PHP process is done handling a request, each module receives a call to the «request termination» function specified in its structure.
  • A given module is unloaded from memory when its associated PHP process is shut down in an orderly manner. The module receives a call to the «module termination» function specified in its structure at this time.

What to do, and when to do it

There are many tasks that might be performed at any of these four points. This table details where many common initialization and termination tasks belong.

What to do, and when to do it
Module initialization/termination Request initialization/termination
Allocate/deallocate and initialize module global variables Allocate/deallocate and initialize request-specific variables
Register/unregister class entries  
Register/unregister INI entries  
Register constants  

The phpinfo() callback

Aside from globals initialization and certain rarely-used callbacks, there is one more part of a module’s lifecycle to examine: A call to phpinfo(). The output a user sees from this call, whether text or HTML or anything else, is generated by each individual extension that is loaded into the PHP interpreter at the time the call is made.

To provide for format-neutral output, the header «ext/standard/info.h» provides an array of functions to produce standardized display elements. Specifically, several functions which create the familiar tables exist:

php_info_print_table_start()

Open a table in phpinfo() output. Takes no parameters.

php_info_print_table_header()

Print a table header in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column heading.

php_info_print_table_row()

Print a table row in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column content.

php_info_print_table_end()

Close a table formerly opened by php_info_print_table_start(). Takes no parameters.

Using these four functions, it is possible to produce status information for nearly any combination of features in an extension. Here is the information callback from the counter extension:

Пример #1 counter’s PHP_MINFO function

/* {{{ PHP_MINFO(counter) */
PHP_MINFO_FUNCTION(counter)
{
    char        buf;

    php_info_print_table_start();
    php_info_print_table_row(2, "counter support", "enabled");
    snprintf(buf, sizeof(buf), "%ld", COUNTER_G(basic_counter_value));
    php_info_print_table_row(2, "Basic counter value", buf);
    php_info_print_table_end();
}
/* }}} */

Шаги

Метод 1 из 2: Веб-сервер

  1. 1

    Откройте текстовый редактор или редактор кода. Воспользуйтесь Notepad++, Блокнотом или TextEdit. Не пользуйтесь мощными текстовыми редакторами, такими как Microsoft Word.

  2. 2

    Введите следующий код. Этот небольшой код отобразит версию PHP, если запустить его на веб-сервере. X Источник информации

    <?php
    echo 'Current PHP version: ' . phpversion();
    ?>
    
  3. 3

    Сохраните файл в формате PHP. Нажмите «Файл» > «Сохранить как», а затем введите имя файла. Добавьте расширение .php в конец имени файла. Введите простое имя, например, version.php.

  4. 4


    Узнайте подробную информацию (если хотите). Приведенный выше код отобразит версию PHP, но если вы хотите получить дополнительные данные, например, информацию о системе, дату сборки, доступные команды, информацию об API и так далее, используйте команду phpinfo (). Сохраните файл как info.php.

    <?php
    phpinfo();
    ?>
    
  5. 5

    Загрузите файл(ы) на веб-сервер.

    Прочитайте эту статью, чтобы научиться загружать файлы на веб-сервер.

    Возможно, вам придется использовать FTP-клиент, или воспользуйтесь панелью управления сервера. Скопируйте файл(ы) в корневой каталог веб-сервера.

  6. 6

    Откройте файл в веб-браузере. Когда вы загрузите файл на сервер, откройте файл в браузере. Найдите файл на сервере. Например, если вы скопировали файл в корневой каталог, перейдите на www.yourdomain.com/version.php

    Чтобы просмотреть полную информацию, перейдите на www.yourdomain.com/info.php.

    .

Метод 2 из 2: Компьютер

  1. 1

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

    • В Windows нажмите ⊞ Win+R и введите cmd.
    • В Mac OS X откройте терминал из папки «Утилиты».
    • В Linux откройте терминал на панели инструментов или нажмите Ctrl+Alt+T.

  2. 2

    Введите команду для проверки версии PHP.

    В Windows, Mac OS X, Linux введите php -v

    Когда вы запустите команду, версия PHP отобразится на экране.

  3. 3

    Выполните следующие действия, если версия PHP не отображается в Windows. Возможно, на экране появится сообщение php.exe не является внутренней или внешней командой, исполняемой программой или пакетным файлом. X Источник информации

    • Найдите файл php.exe. Как правило, он находится в C:\php\php.exe, но, возможно, вы изменили папку, когда устанавливали PHP.
    • Введите set PATH=%PATH%;C:\php\php.exe и нажмите ↵ Enter. В эту команду подставьте правильный путь к файлу php.exe.
    • Запустите команду php -v. Теперь на экране отобразится версия PHP.

Нужно ли обычным пользователям знать PHP чтобы пользоваться WordPress?

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

Но что бы там ни говорили, в изучении основ PHP определенно есть преимущества.

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

Подробнее: Как начать вести свой блог с нуля

Обновлять или не обновлять: вот в чем вопрос

Мы скажем так: Святого Грааля в проблеме обновления нет. Подходить к нему нужно с позиции целесообразности. Большой проект перевести на PHP7 будет сложно: придется рефакторить всю кодовую базу, но ради чего? Любое изменение должно исходить из рабочей потребности.

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

На старых сайтах, где сплошной легасиLegacy codeУстаревшая часть кодовой базы проекта., разработчикам вообще страшно что-либо менять, так как велик риск все случайно поломать. Проект стабильно работает, а значит, изменения ни к чему. Зато разработку новых сайтов однозначно нужно начинать с установки последней версии языка.


С этим читают