«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как включить/отключить собственные функции PHP – Учебное пособие по php.ini

Как включить/отключить собственные функции PHP – Учебное пособие по php.ini

Опубликовано 2 ноября 2024 г.
Просматривать:859

В этой статье я хочу дать вам пошаговую процедуру включения или отключения собственных функций PHP, редактируя директиву «disable_functions» в файле php.ini.

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

Почему этот урок

Я автор Inspector.dev — пакета мониторинга в реальном времени для Laravel и Symfony. Этот пакет использует встроенные функции PHP pro_open и proc_close для асинхронной передачи данных с вашего сервера в API Inspector.

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

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

Это довольно редко, но я решил написать это руководство как ресурс поддержки для этого варианта использования.

Что такое файл php.ini

Файл php.ini — это файл конфигурации PHP. Файл содержит список пар ключ/значение, называемых «директивами». Директивы сгруппированы в разделы, хотя они предназначены в основном для организационных целей.

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

Для тех, кому тоже интересно: PHP может работать, даже если нет файла php.ini, он просто применит значения по умолчанию ко всем директивам.

Для тех, кто с этим не знаком, вот пример файла php.ini:

https://github.com/php/php-src/blob/master/php.ini-production

Включить/отключить функции в php.ini

Редактируя файл php.ini, мы можем отключить встроенные функции PHP, которые вы не сможете вызывать внутри своего PHP-кода.

Иногда эта функция используется для ограничения использования некоторых функций в средах общего хостинга, поскольку неправильное их использование может вызвать проблемы с безопасностью других пользователей. Такие функции, как exec(), обычно отключены, но иногда поставщики серверов слишком консервативны и могут отключить функции, необходимые в повседневных задачах программирования.

Найдите файл php.ini

Запустите команду ниже на терминале вашего компьютера, чтобы получить текущее местоположение файла (она работает как для Win, так и для Unix):

php --ini

Общие местоположения: /etc/php.ini, /etc/php/8.x/php.ini (замените x номером версии вашей установки)

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

// Use the file path from the command above
sudo vim /etc/php.ini

Прокрутите вниз до директивы «disable_functions». Он должен находиться в первой половине файла и содержать список функций, разделенных запятой.

disable_functions=exec,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

Отредактируйте файл php.ini

  • Нажмите букву «i» на клавиатуре, чтобы войти в режим INSERT в vim.
  • Удалите функции proc_open и proc_close из списка.
  • Завершив редактирование файла, нажмите клавишу ESC. Это выведет вас из режима INSERT, и «– INSERT –» исчезнет из нижнего левого угла вашего терминала.
  • Чтобы сохранить файл, введите «:wq» — инструкцию записи и выхода.

Перезапустите движок PHP

Чтобы загрузить новые конфигурации, необходимо перезапустить PHP. Инструкция ниже должна работать на большинстве серверов. В конечном итоге вы можете найти в Google конкретную ОС.

// Change the version of the PHP with what is in use in your machine
sudo systemctl restart php8.2-fpm.service

Чтобы увидеть больше технических статей, вы можете подписаться на меня в Linkedin или X.

Контролируйте свое PHP-приложение бесплатно

Инспектор — это инструмент мониторинга выполнения кода, специально разработанный для разработчиков программного обеспечения. Вам не нужно ничего устанавливать на уровне сервера, просто установите пакет Laravel или Symfony и все готово.

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

Или узнайте больше на сайте: https://inspector.dev

How to enable/disable PHP native functions – php.ini Tutorial

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/inspector/how-to-enabledisable-php-native-functions-phpini-tutorial-kpg?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить это
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3