Файл конфига php?
У меня проблема, делаю cms на php уже хотел её публиковать на github но тут заметил что у меня в каждом файле
... $conn = mysqli_connect(); ... |
... $conn = mysqli_connect(); ...
и заменять везде(<10 файлов) пользователю не удобно как мне сделать чтобы данные были на пример в config.php.
Я знаю вещь гугл но все способы от туда не совсем у меня работают(я начинающий).
Дополнительно:
все способы от туда не совсем у меня работают
Не может быть
Ответы:
Очень хороший вопрос, только вы путаете файл с настройками и файл первоначальной настройки приложения.
Вам нужны оба.
1. файл c настройками
Их должно быть два.
Первый файл называется config.sample.php, он содержит только один массив, который заполняется пустыми/дефолтными значениями и может содержать не только настройки БД но и содержать другие секции:
<?php return [ 'db' => [ 'hostname' => '', 'username' => '', 'password' => '', 'database' => '', ], ]; |
<?php return [ 'db' => [ 'hostname' => '', 'username' => '', 'password' => '', 'database' => '', ], ];
Этот файл добавляется в репозиторий.
Второй файл называется 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
<?php return [ 'db_host' => '', 'db_name' => '', 'db_user' => '', 'db_pass' => '', ]; |
<?php return [ 'db_host' => '', 'db_name' => '', 'db_user' => '', 'db_pass' => '', ];
Там где он нужен
$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'], );
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для определения расположения файла конфигурации PHP на сервере, вам следует учитывать несколько важных моментов.
1. По умолчанию, файл конфигурации PHP, который содержит настройки PHP для вашего сервера, называется php.ini. Он может находиться в различных местах в зависимости от вашей операционной системы и способа установки PHP.
2. Для большинства UNIX-подобных систем, таких как Linux, файл php.ini обычно располагается в директории /etc/php/. Вы можете найти его, выполнив команду в терминале:
$ php -i | grep "Loaded Configuration File"
3. Для Windows-серверов, местоположение файла php.ini может быть разным в зависимости от способа установки PHP. Однако, часто он находится в папке с установленным PHP, например C:\php\php.ini.
4. Если вы хотите узнать, какой именно файл конфигурации используется в вашем проекте, вы можете создать PHP-скрипт с таким содержанием:
Сохраните его на сервере и откройте в браузере. В результате вы увидите полную информацию о текущей конфигурации PHP, включая путь к файлу php.ini.
Учитывайте, что изменения в файле php.ini могут повлиять на работу вашего сервера, поэтому будьте осторожны при его редактировании. Не забудьте делать резервные копии перед внесением изменений. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.