Файл конфига php?

Ссылка скопирована
28 февраля 2026 1 ответ

У меня проблема, делаю cms на php уже хотел её публиковать на github но тут заметил что у меня в каждом файле

... $conn = mysqli_connect(); ...

... $conn = mysqli_connect(); ...

и заменять везде(<10 файлов) пользователю не удобно как мне сделать чтобы данные были на пример в config.php.
Я знаю вещь гугл но все способы от туда не совсем у меня работают(я начинающий).

Дополнительно:

все способы от туда не совсем у меня работают

Не может быть

  • Соединение с БД в каждом файле в современном РНР - это заведомый говнокод.
  • Adamos, Так вот и я о том же
  • MrColdCoffee, Я тупо не так их использую я и пришёл сюда за помощью
  • stasbombit, среди "всех способов от туда" есть, например, такой: выкинуть велосипед и поучить фреймворки, в которых и конфиг лежит где надо, и логика работы с базой не из видеокурсиков по методичкам техникума.
  • Ответы:

    Очень хороший вопрос, только вы путаете файл с настройками и файл первоначальной настройки приложения.
    Вам нужны оба.
    1. файл c настройками
    Их должно быть два.
    Первый файл называется config.sample.php, он содержит только один массив, который заполняется пустыми/дефолтными значениями и может содержать не только настройки БД но и содержать другие секции:

    &lt;?php return [   'db' =&gt; [     'hostname' =&gt; '',     'username' =&gt; '',     'password' =&gt; '',     'database' =&gt; '',   ], ];

    &lt;?php return [ 'db' =&gt; [ 'hostname' =&gt; '', 'username' =&gt; '', 'password' =&gt; '', 'database' =&gt; '', ], ];

    Этот файл добавляется в репозиторий.

    Второй файл называется config.php и он создается руками каждый раз при установке CMS на новом сервере. В него пишутся актуальные настройки для каждого сервера.
    Этот файл не добавляется в репозиторий (а добавляется, соответственно, в .gitignore).

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

    if (!file_exists('config.php'))  {      $msg = 'Создайте файл config.php на основе config.sample.php и внесите в него настройки';      throw new RuntimeException($msg);  }

    if (!file_exists('config.php')) { $msg = 'Создайте файл config.php на основе config.sample.php и внесите в него настройки'; throw new RuntimeException($msg); }

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

    И вот этот файл, назовем его init.php, уже и подключаем во все остальные файлы.

    Кстати, начиная с 8 версии РНР можно писать просто
    $conn = mysqli_connect(...$config['db']);
    В этом случае ключи массива $config['db'] будут использоваться в качестве имен параметров функции - очень удобно

    config.php

    &lt;?php  return [   'db_host' =&gt; '',   'db_name' =&gt; '',   'db_user' =&gt; '',   'db_pass' =&gt; '', ];

    &lt;?php return [ 'db_host' =&gt; '', 'db_name' =&gt; '', 'db_user' =&gt; '', 'db_pass' =&gt; '', ];

    Там где он нужен

    $config = include 'config.php'; $conn = mysqli_connect(     hostname: $config['db_host'],     username: $config['db_user'],     password: $config['db_pass'],     database: $config['db_name'], );

    $config = include 'config.php'; $conn = mysqli_connect( hostname: $config['db_host'], username: $config['db_user'], password: $config['db_pass'], database: $config['db_name'], );

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Алексей Денисов Ответ

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

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

    2. Для большинства UNIX-подобных систем, таких как Linux, файл php.ini обычно располагается в директории /etc/php/. Вы можете найти его, выполнив команду в терминале:

    $ php -i | grep "Loaded Configuration File"

    $ php -i | grep "Loaded Configuration File"

    3. Для Windows-серверов, местоположение файла php.ini может быть разным в зависимости от способа установки PHP. Однако, часто он находится в папке с установленным PHP, например C:\php\php.ini.

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

     

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

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

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

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

    Вам также может быть интересно