Where is my PHP php.ini Configuration File Located?

Where is my PHP php.ini Configuration File Located? Хостинг

php.ini file location.

What is the php.ini file, why we use it ? Where do I find this file on Ubuntu ? How I open and edit the php.ini file on a terminal. This is the most common questions asked by beginners who are either new to PHP or Linux.

Imagine you are given a server and you are asked to change its PHP settings. Also, assume that several different versions of PHP are installed on this server. What do you think is the best way to find a PHP configuration file? You will find the answer to this question below.

Method 3 (locate command) #

 $ locate php.ini

You should see a list of php.ini files here.

How install PHP extension (like Zip) on Cantos / Ubuntu / Linux

Method 2 (PHP. ini & grep command) #

In Linux, run this command to locate the PHP.ini configuration file.

 $ php -i | grep "Loaded Configuration File" 

Or better way:

 $ php -i | grep ini 

Or in Windows Command Line:

 $ php -i | findstr /c:"Loaded Configuration File"

The result should be something like this.

 $ Loaded Configuration File => /etc/php/7.4/cli/php.ini

Method 1 (phpinfo file)

One way to find out exactly which php.ini file your web sever is using is by creating a new PHP file in document root called info.php

<?php
phpinfo();
?>

Load this file in your browser, press CTRL + F and search for “Loaded Configuration File”. You should see something like.

php php.ini configuration file location 1536x1000 1 1024x667 - Where is PHP php.ini Configuration File Location ?

This will tell you the exact location of the php.ini file you want to edit.

Сегодня займемся поднятием одной из наиболее востребованных ролей любого linux сервера, которые занимают в этом функциональном сегменте лидирующую роль. Настройка web сервера CentOS 7 на базе связки популярного http сервера apache, интерпретатора php и сервера баз данных mysql, или коротко — установка lamp. Данная связка является самой популярной конфигурацией на сегодняшний день среди веб хостинга. Хотя последнее время ей на пятки наступает та же компания, но на базе nginx, возможно уже и опередила, точных данных у меня нет на этот счет.

Если у вас есть желание научиться администрировать системы на базе Linux, рекомендую познакомиться с онлайн-курсом «Linux для начинающих» в OTUS. Курс для новичков, для тех, кто с Linux не знаком. Подробная информация.

Данная статья является частью единого цикла статьей про сервер Centos.

Файл конфигурации (php.ini)
считывается при запуске PHP. Для версий серверных модулей PHP
это происходит только один раз при запуске веб сервера. Для
CGI и CLI версий это происходит при
каждом вызове.

Поиск php.ini производится в следующих местах (по порядку поиска):


  • По месту расположения модуля SAPI (PHPIniDir директива
    Apache 2, -c параметр командной строки CGI и CLI,
    php_ini параметр в NSAPI,
    PHP_INI_PATH переменная среды в THTTPD)

  • Переменная среды PHPRC. До PHP 5.2.0
    поиск по переменной производился после поиска в реестре, указанном ниже.

  • Текущая директория (исключая CLI).

  • Директория веб сервера (для SAPI модулей), или директория PHP
    (иначе в директории Windows).

  • В директории Windows (C:\windows
    или C:\winnt) (для Windows), или
    —with-config-file-path с выбором при компиляции.

Если файл php-SAPI.ini существует (где SAPI — это тип интерфейса, который используется,
например, php-cli.ini или
php-apache.ini), то он используется вместо php.ini.
Тип интерфейса между веб-сервером и PHP может быть определен с помощью функции .

Веб сервер Apache изменяет текущую директорию на корневую при запуске, в
результате чего PHP считывает php.ini из корневой файловой системы, если файл существует.

В php.ini можно использовать переменные окружения, как показано в примере ниже.

Пример #1 php.ini Environment Variables

; PHP_MEMORY_LIMIT берется из окружения
memory_limit = ${PHP_MEMORY_LIMIT}

Пример #2 Пример php.ini

; любой текст в строке после точки с запятой (;) без кавычек игнорируется
[php] ; маркеры разделов (текст в квадратных скобках) также игнорируется
; Могут быть установлены следующие логические значения:
; true, on, yes
; или false, off, no, none
register_globals = off
track_errors = yes
; вы можете заключать строки в двойные кавычки
include_path = ".:/usr/local/lib/php"
; обратный слеш обрабатывается так же, как любые другие символы
include_path = ".;c:\php\lib"

Вернуться к: Конфигурация запуска

PHP php.ini Configuration File location

In this article, we will guide you on a treasure hunt to find the php.ini configuration file, unravel its mysteries, and unlock the full capabilities of your PHP environment. Whether you are a seasoned PHP developer or a newcomer to the world of web development, understanding the ins and outs of this essential configuration file will make your journey smoother and your projects more efficient. So, let’s embark on this exciting quest to locate and master the php.ini file!

Method 1

One way to find out exactly which php.ini file your web sever is using is by creating a new PHP file in document root called info.php.

<?php
phpinfo();
?>

Load this file in your browser, press CTRL + F (or Command + F on Mac) and search for “Loaded Configuration File”. You should see something like

/etc/php/8.1/apache2/php.ini

This will tell you the exact location of the php.ini file you want to edit.

Method 2

In Linux, run this command to locate the PHP.ini configuration file.

php -i | grep "Loaded Configuration File"

Or in Windows Command Line:

php -i | findstr /c:"Loaded Configuration File"

The result should be something like this:

Loaded Configuration File => /etc/php/8.1/cli/php.ini

In the above example, we can see that the PHP install is located in /etc/php/8.1. Note that there are three different configuration files you should we aware of:

CLI

/etc/php/8.1/cli/php.ini is for the CLI PHP program. Changes to this config file will only affect PHP as it runs in the terminal – it will NOT affect the web server.

Apache

/etc/php/8.1/apache2/php.ini is for the PHP plugin used by Apache. This is the one you need to edit if you are using the Apache web server.

Nginx or Apache with PHP-FPM

/etc/php/8.1/fpm/php.ini is a fastcgi-compatible ‘wrapper’ for PHP processing. This is the one you need to edit if you’re using the Nginx web server or Apache with PHP-FPM.

Method 3

Using the locate command in Linux,. If it’s not already installed, run  sudo apt update && sudo apt install mlocate.

You should see a list of php.ini files here. Try editing one of them and restarting you web server to see if makes the required changes.

Editing php.ini in Linux

Apache

On Apache, php.ini is usually located in /etc/php/8.1/apache2/php.ini. Replace 8.1 with your own version, e.g, php5.6php7.4, etc.

sudo nano /etc/php/8.1/apache2/php.ini

However, if you are using PHP FPM, it may be located in /etc/php/8.1/fpm/php.ini. Replace 8.1 with your own version, e.g, php5.6php7.4, etc.

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

To save file and exit, press CTRL + X, press Y and then press ENTER

You must restart Apache after altering php.ini.

sudo systemctl restart apache2

If you are using PHP-FPM, you must restart that service. Replace php8.1 with your own version, e.g, php5.6php7.4, etc.

sudo service php8.1-fpm restart

Nginx or Apache with PHP-FPM

Nginx uses PHP FPM and php.ini is usually located in /etc/php/8.1/fpm/php.ini. Replace 8.1 with your own version, e.g, php5.6php7.4, etc.

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

Save and exit (press CTRL + X, press Y and then press ENTER)

You must restart Nginx after altering php.ini.

sudo systemctl reload nginx

Older Versions

For versions of Ubuntu lower than 16.04, /etc/php/5.6/,/etc/php/7.0/,/etc/php/7.1/, and so on, are replaced by /etc/php5/ and so on. Otherwise, these paths remain accurate.

p.s. I increased my AdSense revenue by 200% using AI 🤖. Read my Ezoic review to find out how.

Этот раздел содержит инструкции для ручной установки и настройки
PHP на Microsoft Windows.

Выбор и загрузка пакета дистрибутивов PHP

Загрузите дистрибутив PHP в виде zip-архива с
» PHP для Windows: Исполняемые файлы и исходные коды.
Существует несколько различных версий zip-пакетов — выберите версию, которая подходит для
используемого веб сервера:

  • Если PHP используется с IIS, тогда следует использовать PHP 5.3 VC9 Non Thread Safe или
    PHP 5.2 VC6 Non Thread Safe;

  • Если PHP используется с IIS7 или выше и версия PHP 5.3+, тогда должна использоваться версия
    дистрибутива PHP VC9.

  • Если PHP используется с Apache 1 или Apache 2 тогда выбирайте PHP 5.3 VC6 или
    PHP 5.2 VC6.

Версии VC9 компилируются с помощью Visual Studio 2008 и имеют улучшенную
производительность и стабильность. Версии VC9 требуют наличия в системе
» Microsoft 2008 C++ Runtime (x86) или
» Microsoft 2008 C++ Runtime (x64).

Структура пакетов PHP и их содержимое

Распакуйте содержимое zip архива в директорию по вашему выбору,
например C:\PHP\. Директория и структура файлов, извлеченных из zip, будет
такой:

Читайте также:  ТОП хостингов серверов Minecraft 2022 |

Пример #1 Структура пакета PHP 5

c:\php | +--dev | | | |-php5ts.lib -- версия php5.lib без поддержки многопоточности | +--ext -- DLL расширения для PHP | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-... | +--extras -- пустой | +--pear -- начальная копия PEAR | | |-go-pear.bat -- скрипт установки PEAR | |-... | |-php-cgi.exe -- исполняемый файл CGI | |-php-win.exe -- выполняет скрипты без открытой консоли | |-php.exe -- Исполняемый файл PHP для командной строки (CLI) | |-... | |-php.ini-development -- настройки php.ini по умолчанию | |-php.ini-production -- рекомендуемые настройки php.ini | |-php5apache2_2.dll -- имеется только в многопоточной версии | |-php5apache2_2_filter.dll -- имеется только в многопоточной версии | |-... | |-php5ts.dll -- ядро PHP DLL ( php5.dll в версии без поддержки многопоточности) | |-...

Ниже представлен список модулей и исполняемых файлов, включенных в PHP zip
дистрибутив:

  • go-pear.bat — скрипт установки PEAR. Подробнее см. » Установка (PEAR).

  • php-cgi.exe — исполняемый файл CGI, который может быть использован во время запуска PHP
    на IIS через CGI или FastCGI.

  • php-win.exe — исполняемый файл PHP для выполнения PHP скриптов без использования консоли
    (например, приложения PHP, использующие Windows GUI).

  • php.exe — исполняемый файл PHP для выполнения PHP скриптов в консоли (CLI).

  • php5apache2_2.dll — модуль Apache 2.2.X.

  • php5apache2_2_filter.dll — фильтр Apache 2.2.X.

Изменение файла php.ini

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

Файл php.ini содержит правила исполнения PHP и инструкции по работе с
окружением, в котором он запускается. Ниже приводятся некоторые из настроек php.ini,
которые могут улучшить работу PHP в Windows. Некоторые из них опциональны. Есть
много других директив, которые могут быть полезны в вашем окружении — обращайтесь к
списку директив php.ini за более подробной информацией.

  • extension_dir = <путь к директории расширений>extension_dir
    указывает директорию, где расположены расширения PHP. Путь может быть абсолютным
    (например «C:\PHP\ext») или относительным (например «.\ext»). Используемые в php.ini расширения
    должны быть расположены в extension_dir.

  • extension = xxxxx.dll — Для каждого подключаемого расширения необходимо указать директиву «extension=».
    Расширения из extension_dir, отмеченные такой директивой, загружаются при старте PHP.

  • log_errors = On — в PHP есть механизм ведения лога ошибок, который может использоваться для сохранения ошибок в файле
    или для отправки в сервис (например syslog). Механизм также использует значение директивы error_log. Когда PHP исполняется службой IIS,
    log_errors должен быть включен с корректным error_log.

  • error_log = <пусть к файлу лога ошибок> — error_log нужен для обозначения абсолютного
    или относительного пути к файлу, в который протоколируются ошибки PHP. Этот файл должен доступным для записи веб-сервером.
    Самые распространенные места размещения этого файла — различные временные TEMP директории, например «C:\inetpub\temp\php-errors.log».

  • cgi.force_redirect = 0 — Эта директива необходима для исполнения под IIS.
    Это механизм защиты директории, требуемый многими другими веб серверами. Однако, включение его под IIS
    вызовет ошибки ядра PHP в Windows.

  • cgi.fix_pathinfo = 1 — Обеспечивает поддержку PATH_INFO согласно спецификации CGI.
    IIS FastCGI использует эту настройку.

  • fastcgi.impersonate = 1 — FastCGI под IIS поддерживает способность идентифицировать
    маркеры безопасности вызывающего клиента. Это позволяет IIS определять контекст безопасности, под которые выполняется запрос.

  • fastcgi.logging = 0 — Запись логов FastCGI должна быть выключена в IIS. Если запись включена,
    тогда все сообщения любых классов распознаются FastCGI как ошибки, что приведет IIS к генерации исключения HTTP 500.

  • max_execution_time = ## — Эта директива указывает максимальное время выполнения любого скрипта PHP.
    По умолчанию равно 30 секундам. Следует увеличить это значение, если приложение PHP должно выполняться дольше.

  • memory_limit = ###M — Количество памяти, доступное процессу PHP, в Мб.
    По умолчанию 128, что достаточно для большинства PHP приложений. Некоторым сложным приложениям может потребоваться больше памяти.

  • display_errors = Off — Директива определяет, какие ошибки следует возвращать веб-серверу для
    дальнейшего протоколирования. При значении «On» PHP сообщает обо всех видах ошибок, которые
    приводятся в директиве error_reporting.
    По соображениям безопасности рекомендуется установить в «Off» на рабочих серверах, чтобы исключить передачу
    вывода ошибок конечному пользователю, так как они могут содержат информацию, угрожающую безопасности приложения.

  • open_basedir = <пути к директориям, разделенные точкой с запятой>, например
    openbasedir=»C:\inetpub\wwwroot;C:\inetpub\temp». Эта директива указывает пути к директориям, в которых PHP
    разрешены операции с файловой системой. Любая операция с файлами и директориями вне указанных путей будет приводить к ошибке.
    Эта директива особенно полезна для предотвращения доступа к установленному PHP в окружениях разделяемых хостингов для предотвращения
    доступа PHP скриптов к любым файлам вне корневой директории веб сайта.

  • upload_max_filesize = ###M и post_max_size = ###M
    Максимальный разрешенный размер загруженного файла и присланных данных соответственно. Значения этих директив должны быть
    увеличены, если приложения PHP должны обрабатывать большие загружаемые файлы, например изображения или видеофайлы.

После установки PHP в вашей системе, следующим шагом будет выбор веб-сервера и его дальнейшая
настройка для работы с PHP. Выберите конкретный веб-сервер в оглавлении к данному материалу.

Помимо запуска PHP с помощью веб-сервера, PHP может быть запущен из командной строки
как .BAT скрипт. За более подробной информацией обращайтесь к материалу
Консоль PHP на Microsoft Windows.

Вернуться к: Установка в системах Windows

Вернуться к: ЧАВО

Этот раздел содержит общие вопросы по установке PHP.
PHP доступен практически для любой ОС (за исключением, может быть,
MacOS предшествующей OSX) и любого web сервера.

Для установки PHP следуйте инструкциям в Установка и настройка.

Почему я не должен использовать Apache2 с потоковым MPM в промышленном окружении?

PHP — это клей. Клей, используемый для построения классных веб-приложений,
склеивая дюжины сторонних библиотек и создавая впечатление одного согласованного
целого, с помощью интуитивного и легко изучаемого языка.
Гибкость и мощь PHP полагается на стабильность и устойчивость используемой
платформы. Для склейки вместе ему необходимы работающая ОС, работающий
веб-сервер и работающие сторонние библиотеки. Когда что-либо из этого перестает
работать, PHP нужны способы определения проблем и их быстрого исправления.
Если вы усложняете низлежащую систему, не разделяя полностью потоки выполнения,
не выделяя раздельные сегменты памяти и не предоставляя «песочницу» для
игры для каждого запроса, то в вашей PHP системе появятся слабые места.

Если вы хотите использовать потоковый MPM,
взгляните на конфигурацию с FastCGI, где вы можете запускать PHP
в своем собственном пространстве памяти.

Unix/Windows: Где должен находиться файл php.ini?

На Unix по умолчанию он должен находиться в директории
/usr/local/lib, определяемой как
<install-path>/lib.
Большинство людей изменяют его во время компиляции с помощью опции
—with-config-file-path
Для примера, вы можете задать что-то типа:

--with-config-file-path=/etc

Затем скопировать файл php.ini-development из
дистрибутива в /etc/php.ini и отредактировать
его для ваших локальных нужд.

--with-config-file-scan-dir=PATH

На Windows по умолчанию php.ini находится в Windows директории.
Если вы используете веб-сервер Apache, php.ini сначала ищется в
директории, где был установлен Apache, например, c:\program
files\apache group\apache
. В этом случае на одной машине
у вас могут быть разные файлы php.ini для разных версий Apache.

Unix: Я установил PHP, но каждый раз при загрузке документа я получаю
сообщение ‘Document Contains No Data’ (Документ Не Содержит Данных)!
Что происходит?

Вероятно, PHP падает по какой-то причине. Для того, чтобы убедиться в этом,
просмотрите лог ошибок вашего сервера и затем попытайтесь воспроизвести
проблему с помощью небольшого тестового примера. Если вы умеете пользоваться
‘gdb’, то добавьте трассировку к вашему сообщению об ошибке, это поможет
разработчикам точно определить проблему.
Если вы используете PHP как модуль Apache, попробуйте что-то типа:

  • Остановите ваши httpd процессы

  • Остановите ваши httpd процессы

  • > run -X -f /path/to/httpd.conf

  • Затем вызовите URL, на котором возникает проблема, из вашего браузера

  • > run -X -f /path/to/httpd.conf

  • Если вы получаете дамп, gdb должен сейчас же сообщить вам об этом

  • Вам необходимо включить трассировку в ваше сообщение об ошибке, которое
    должно быть отправлено с
    » http://bugs.php.net/

Если ваш скрипт использует функции регулярных выражений
( и другие), то вам необходимо убедиться,
что вы скомпилировали PHP и Apache с одним и тем же пакетом регулярных
выражений. Это должно происходить автоматически для PHP и Apache 1.3.x

Unix: Я установил PHP с помощью RPMS, но Apache не обрабатывает PHP страницы!
Что происходит?

Предполагается, что Apache и PHP оба были установлены из пакетов RPM.
Вам требуется в вашем файле httpd.conf раскомментировать или добавить
все или некоторые из следующих строк:

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c
# Extra Modules
LoadModule php_module modules/mod_php.so
LoadModule php5_module modules/libphp5.so
LoadModule perl_module modules/libperl.so

И добавить:

AddType application/x-httpd-php .php

… в глобальные свойства или в свойства VirtualDomain, для которого
вы хотите иметь поддержку PHP.

Unix: Я установил заплатку в Apache для расширений FrontPage и
неожиданно PHP перестал работать.
Неужели PHP не совместим с FrontPage расширениями для Apache?

Нет, PHP прекрасно работает с FrontPage расширениями.
Проблема в том, что FrontPage заплатка изменяет некоторые важные для
PHP структуры. Перекомпиляция PHP (с помощью ‘make clean ; make’)
после установки FP заплатки должна решить эту проблему.

Unix/Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего
браузера, я получаю пустой экран.

Сделайте просмотр исходника (‘view source’) в web браузере
и, вероятно, вы увидите исходный код вашего PHP скрипта.
Это означает, что web сервер не передал скрипт PHP для интерпретации.
Что-то не так с конфигурацией сервера, проверьте конфигурацию сервера
согласно установочным инструкциям PHP.

Unix/Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего
браузера, я получаю ошибку сервера 500.

Что-то произошло, когда сервер пытался выполнить PHP.
Чтобы увидеть более вразумительное сообщение об ошибке,
используя командную строку, перейдите в директорию где находится
исполняемый файл PHP (php.exe на Windows)
и запустите php -i. Если при запуске PHP
возникли какие-либо проблемы, то появится соответствующее сообщение
об ошибке, которое может дать вам понять что делать дальше.
Если вы получаете экран, заполненный HTML кодом (вывод функции
), то PHP работает и ваша
проблема возможно связана с конфигурацией вашего сервера, которую
вам необходимо проверить.

Некоторые операционные системы: Я установил PHP без ошибок,
но когда я пытаюсь запустить Apache, я получаю ошибки «undefined symbol»
(неопределенный символ):

[mybox:user /src/php5] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress

На самом деле это связано с клиентскими библиотеками MySQL и не имеет
никакого отношения к PHP. Одним нужна опция
—with-zlib
, другим — нет. Это также
описано в MySQL FAQ.

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

cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

Это сообщение об ошибке означает, что PHP не смог вывести
абсолютно ничего. Чтобы увидеть более вразумительное сообщение об ошибке,
используя командную строку, перейдите в директорию, где находится
исполняемый файл PHP (php.exe на Windows) и
запустите php -i. Если при запуске PHP
возникли какие-либо проблемы, то появится соответствующее сообщение
об ошибке, которое может дать вам понять, что делать дальше.
Если вы получаете экран, заполненый HTML кодом (вывод функции
функции), то PHP работает.

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


  • Анонимный пользователь Internet ISUR_<machinename>
    не имеет доступ к вашему PHP скрипту,
    php.exe, php4ts.dll,
    php.ini или любому загружаемому PHP расширению из за прав доступа,
    установленных на эти файлы.

  • Файл скрипта не существует (или, вероятно, не там где вы думаете он
    должен быть, относительно вашей корневой web директории).
    Заметьте, что для IIS вы можете поймать эту ошибку пометив ‘check file
    exists’ при настройке ассоциирования скриптов (script mappings) в
    Администраторе Internet Сервисов (Internet Services Manager).
    Если файл скрипта не существует, то сервер выдаст ошибку 404.
    Также есть дополнительное преимущество, заключающееся в том, что IIS будет выполнять
    необходимую вам аутентификацию, основываясь на NTLanMan правах
    доступа на ваш скрипт.

Windows: Я следовал всем инструкциям, но так и не смог заставить PHP и IIS
работать вместе!

Убедитесь что все пользователи, кому необходимо запускать PHP скрипты,
имеют право выполнять php.exe!
IIS использует анонимного пользователя, который добавлен во время
установки IIS. Этот пользователь должен иметь права на
php.exe. Также любому аутентифицированному пользователю
будут нужны права на выполнение php.exe.
И для IIS4 вам необходимо сказать ему, что PHP является скриптовой системой.
Также вам захочется прочитать
это.

Когда PHP запускается как CGI в IIS, PWS, OmniHTTPD или Xitami,
я получаю следующую ошибку: Security Alert! PHP CGI
cannot be accessed directly.
.

Вы должны установить директиву
cgi.force_redirect
в 0.
По умолчанию она установлена в 1, поэтому убедитесь, что
директива не закоммментирована (с ;). Как все директивы,
она задается в php.ini

Так как значение по умолчанию 1, то очень важно
быть уверенным на 100%, что был прочитан верный php.ini файл.
Для подробностей читайте
здесь
.

Как узнать, что мой php.ini был найден и прочтен?
Похоже, что мои изменения не были восприняты?

Чтобы убедиться, что PHP прочитал ваш php.ini, вызовите
и недалеко от начала будет находиться
строка, озаглавленная Configuration File (php.ini).
Она скажет вам, где PHP ищет php.ini и был ли файл прочитан.
Если указана только директория, то файл не был прочитан и вы должны поместить
ваш php.ini в эту директорию. Если php.ini включен в , то он
был прочитан.

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

Как на Windows добавить мою PHP директорию в ?

На Windows NT+ и Windows Server 2000+:

  • Зайдите в Control Panel и откройте системную иконку (Start -> Settings
    -> Control Panel -> System, или просто Start -> Control Panel
    -> System for Windows XP/2003)

  • Перейдите в закладку Advanced

  • Нажмите кнопку ‘Environment Variables’

  • Смотрите в окошко ‘System Variables’

  • Найдите Path (возможно, вам придется сделать прокрутку, чтобы найти его)

  • Двойной щелчок на Path

  • Добавьте в конец вашу PHP директорию, поставив спереди ‘;’ (например
    ;C:\php)

На Windows 98/Me вам необходимо отредактировать файл
autoexec.bat:

  • Откройте Notepad (Start -> Run и введите notepad)

  • Откройте файл C:\autoexec.bat

  • Сохраните файл и перезапустите ваш компьютер

Замечание:

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

Прежде в руководстве по PHP рекомендовалось копировать файлы в системную
директорию Windows, так как эта директория
(C:\Windows, C:\WINNT и т.п.)
входит в системный по умолчанию. Копирование файлов в системную директорию
Windows давно уже противопоказано и может вызвать проблемы.

Как в Windows сделать файл php.ini доступным для PHP?

Для этого есть несколько путей. Если вы используете Apache, то читайте
инструкции по его установке (Apache 1,
Apache 2),
в ином случае, вы должны установить переменную окружения
PHPRC:

На Windows NT, 2000, XP и 2003:

  • Зайдите в Control Panel и откройте системную иконку (Start -> Settings
    -> Control Panel -> System, или просто Start -> Control Panel
    -> System for Windows XP/2003)

  • Перейдите в закладку Advanced

  • Нажмите кнопку ‘Environment Variables’

  • Посмотрите в окошко ‘System variables’

  • Щелкните на ‘New’ и введите ‘PHPRC’ как имя переменной и директорию,
    где находится php.ini, как значение переменной (например,
    C:\php)

  • Нажмите OK и перезапустите ваш компьютер

На Windows 98/Me вам необходимо отредактировать файл
autoexec.bat:

  • Откройте Notepad (Start -> Run и введите notepad)

  • Откройте файл C:\autoexec.bat

  • Добавьте новую строку в конец файла: set
    PHPRC=C:\php
    (замените C:\php на директорию,
    где находится php.ini). Учтите, что путь не должен содержать
    пробелы. Например, если вы установили PHP в
    C:\Program Files\PHP, вы можете
    вместо этого ввести C:\PROGRA~1\PHP.

  • Сохраните файл и перезапустите ваш компьютер

Возможно ли использовать согласование содержания в Apache
(опция MultiViews) c PHP?

Все работает замечательно, если ссылки на PHP файлы имеют расширение.
Этот FAQ рассматривает только случай, когда ссылки на PHP файлы не имеют расширения
и вы хотите использовать согласование содержания для отбора PHP файлов из
URL без расширений.
В этом случае, замените строку AddType application/x-httpd-php
.php
на:

AddHandler php5-script php
AddType text/html php

Это решение не работает в Apache 1, так как в нем PHP модуль не ловит
php-script.

PHP может обрабатывать только GET и POST запросы?

Нет, можно обрабатывать любые запросы, например, CONNECT.
Необходимый статус ответа можно послать с помощью функции
.
Если нужно обрабатывать только GET и POST запросы, то этого
можно достигнуть с помощью такой конфигурации Apache:

<LimitExcept GET POST>
Deny from all
</LimitExcept>

Вернуться к: ЧАВО

Установка php в CentOS 7

Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:

# yum install -y php

И следом еще несколько полезных компонентов. Установим популярные модули для php:

# yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

Выполним перезапуск apache:

# systemctl restart httpd

Создадим файл в директории виртуального хоста и проверим работу php:

# mcedit /web/site1.ru/www/index.php
 
# chown apache. /web/site1.ru/www/index.php

Заходим по адресу 

centos php

Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там.

Где лежит php.ini

После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для все виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:

# mcedit /etc/httpd/conf.d/site1.ru.conf

Добавляем в самый конец, перед </VirtualHost>

php_admin_value date.timezone 'Europe/Moscow'
php_admin_value max_execution_time 60
php_admin_value upload_max_filesize 30M

Для применения настроек нужно сделать restart apache. Теперь в выводе phpinfo можно увидеть изменение настроек.

Обновление до php 5.6 в CentOS 7

В нашем примере мы установили на CentOS 7 php 5.4 из стандартного репозитория. А что делать, если нам нужна более новая версия, например php 5.6? В таком случае нужно выполнить обновление php.

Для этого подключим remi репозиторий:

# wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# rpm -Uvh remi-release-7*.rpm

Теперь обновляем php 5.4 до php 5.6:

# yum --enablerepo=remi,remi-php56 install php php-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd
# systemctl restart httpd

И идем смотреть вывод phpinfo — 

centos 7 php 5.6

Отлично, мы обновили php до версии 5.6.

How to open & edit the php. ini configuration file on a Terminal

To open & edit the php.ini file I am using vim/vi editor.

NOTE – Once you have done the changes in the php.ini file. You need to restart the apache web server so that the new changes get reflected.

To restart the Apache WebServer.

Установка MySQL в CentOS 7

Как я уже писал ранее, сейчас все большее распространение получает форк mysql — mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.

Устанавливаем mariadb на CentOS 7:

# yum install -y mariadb mariadb-server

Добавляем mariadb в автозапуск:

# systemctl enable mariadb.service
# systemctl start mariadb

Проверяем, запустилась или нет:

# netstat -tulnp | grep mysqld
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      22276/mysqld

Обращаю внимание, что она даже в системе отображается как сервис . Теперь запускаем стандартный скрипт настройки безопасности:

# /usr/bin/mysql_secure_installation

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

Файл настроек mysql/mariadb лежит в /etc/my.cnf. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.

Перезапуск mariadb/mysql в CentOS 7:

# systemctl restart mariadb

На этом все. Базовый функционал web сервера на CentOS 7 настроен.

Буду рад замечаниям и комментариям по теме статьи. Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Если у вас есть желание научиться администрировать системы на базе Linux, но вы с ними никогда не работали и не знакомы, то рекомендую начать с онлайн-курса «Linux для начинающих» в OTUS. Курс для новичков, для тех, кто с Linux не знаком. Цена за курс минимальная (символическая). Информация о курсе и цене.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Php. ini File

The php.ini file is a default configuration file used when your PHP application runs. When PHP starts it reads the configuration setting from the php.ini file.

If you have installed LAMP on a Ubuntu operating system and unable to find and edit this file then this tutorial is for you.

Web сервер на CentOS 7

Итак, наш веб сервер centos будет состоять из трех основных компонентов — http сервера apache, интерпретатора языка программирования php и сервера баз данных mysql. Познакомимся немного с каждым из них:

  1. Apache — http сервер или просто веб сервер апач. Является кросплатформенным ПО, поддерживающим практически все популярные операционные системы, в том числе и Windows. Ценится прежде всего за свою надежность и гибкость конфигурации, которую можно существенно расширить благодаря подключаемым модулям, которых существует великое множество. Из недостатков отмечают большую требовательность к ресурсам, по сравнению с другими серверами. Держать такую же нагрузку, как, к примеру, nginx, apache не сможет при схожих параметрах железа.
  2. PHP — язык программирования общего назначения, который чаще всего применяется в веб разработке. На сегодняшний день это самый популярный язык в этой области применения. Поддерживается практически всеми хостинг-провайдерами.
  3. Mysql — система управления базами данных. Завоевала свою популярность в среде малых и средних приложений, которых очень много в вебе. Так что, как и php, на сегодняшний день является самой популярной бд, использующейся на веб сайтах. Поддерживается большинством хостингов. В CentOS вместо mysql устанавливается mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Последнее время я встречал информацию, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. На практике мне не довелось это наблюдать, так как никогда не работал с нагруженными базами данных. А в обычных условиях разница не заметна.

Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:

Это кастомная настройка параметров. Они не оптимальны по цене, но мне были нужны именно такие.

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

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

Abstract vs Interface in PHP

Abstract class in PHP

Programming Videos Tutorial

Conclusion

I hope this tutorial helped you to find and edit the php.ini file. If you are still facing any issue you can ask your question through comments.

Настройка apache в CentOS 7

В CentOS служба apache называется httpd. Когда я только знакомился с этим дистрибутивом, мне было непривычно. В Freebsd и Debian, с которыми я до этого работал служба веб сервера называлась apache, хотя где-то я замечал, кажется во фрюхе, что файл конфигурации имеет имя httpd.conf. До сих пор я не знаю, почему распространились оба эти названия. Был бы рад, если бы со мной кто-то поделился информацией на этот счет в комментариях.

Теперь приступим к установке apache. В CentOS 7 это делается очень просто:

# yum install -y httpd

Добавляем apache в автозагрузку:

# systemctl enable httpd

Запускаем apache в CentOS 7:

# systemctl start httpd

Проверяем, запустился ли сервер:

# netstat -tulnp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      21586/httpd

Все в порядке, повис на 80-м порту, как и положено. Уже сейчас можно зайти по адресу и увидеть картинку:

установка apache на centos 7

Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:

Создаем подобную структуру:

# mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs
# chown -R apache. /web

Дальше редактируем файл конфигурации apache — httpd.conf по адресу . Первым делом проверим, раскомментированна ли строчка в самом конце:

IncludeOptional conf.d/*.conf

Если нет, раскомментируем и идем в каталог оздаем там файл :

# mcedit /etc/httpd/conf.d/site1.ru.conf
<VirtualHost *:80> ServerName site1.ru ServerAlias www.site1.ru DocumentRoot /web/site1.ru/www <Directory /web/site1.ru/www> Options FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog /web/site1.ru/logs/error.log CustomLog /web/site1.ru/logs/access.log common
</VirtualHost>

Перезапуск apache в centos

Теперь делаем restart :

# systemctl restart httpd

Если возникли какие-то ошибки — смотрим лог apache . Если все в порядке, то проверим, нормально ли настроен наш виртуальный хост. Для этого создадим в папке /web/site1.ru/www файл index.html следующего содержания:

# mcedit /web/site1.ru/www/index.html
<h1>Апач настроен!</h1>
# chown apache. /web/site1.ru/www/index.html

Дальше в винде правим файл , чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:

192.168.1.25 site1.ru

где 192.168.1.25 ip адрес нашего веб сервера.

Теперь в браузере набираем адрес . Если видим картинку:

Проверка apache в centos 7

значит все правильно настроили. Если какие-то ошибки, то идем смотреть логи. Причем в данном случае не общий лог , а лог ошибок конкретного виртуального хоста по адресу .

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

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

# mcedit /etc/logrotate.d/httpd
/web/*/logs/*.log/var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript
}

Мы добавили одну строку в самое начала файла. Теперь логи всех виртуальных хостов в папке будут ротироваться по общему правилу.

В принципе, простейший веб сервер уже готов и им можно пользоваться. Но вряд ли сейчас найдутся сайты со статическим содержимым, которым достаточно поддержки только html. Так что продолжим нашу настройку.

Если вам необходимо организовать работу сайта по протоколу https, то воспользуйтесь руководством по настройке ssl в apache.

Php. ini File Location in Ubuntu

To view the files present in apache2 directory, type ls command. The files present in this directory (conf.d and php.ini) are displayed.

For PHP 7.4 version

The path of php.ini is

If you are not familiar with Linux commands then read my previous post on Linux Commands with Examples .

The other easiest way to locate the php.ini location is using locate command.

PHP Script to Find php. ini Location

If you are working on  Windows, Ubuntu or any operating system. You can easily find the location of php.ini configuration file using simple PHP script.

Create a PHP file. Let’s name it inipath.php (you can choose any name with a .php extension) .

Open this file in your browser and you will get the path of  the php.ini.

php.ini file location

I am using Ubuntu and the location of php.ini in Ubuntu is /etc/php5/apache2/php.ini . Similarly, if you are running this script on Windows and Mac you’ll get the path as per their directory structure.

For version 7.4.3, the php.ini path is /etc/php/7.4/apache2/php.ini.

php.ini path on php 7

Читайте также:  Обновите свою систему связи с помощью последней версии Freepbx
Оцените статью
Хостинги