Sida 1 av 1

Olika (databas) konfiguration för utveckling och produktion

InläggPostat: 24 apr 2018, 10:17
av mos
I kursen oophp (och ramverk1) finns behovet att ha en databas lokalt för utveckling och en annan databasserver som används när koden är i produktion på studentservern.

Vi behöver alltså en konfigurationsfil som anpassar sig efter det systemet där den körs för närvarande.

Här är en konfigurationsfil som returnerar olika konfiguration för sin databaskoppling, om man är på studentservern eller ej. Konfigurationsfilen är config/database.php (Anax).
Kod: Markera allt
<?php
/**
* Config file for Database.
*
* Example for MySQL.
*  "dsn" => "mysql:host=localhost;dbname=test;",
*  "username" => "test",
*  "password" => "test",
*  "driver_options"  => [
*      \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
*  ],
*
* Example for SQLite.
*  "dsn" => "sqlite:memory::",
*
*/
if ($_SERVER["SERVER_NAME"] === "www.student.bth.se") {
    return [
        "dsn"             => "mysql:host=blu-ray.student.bth.se;dbname=mos;",
        "username"        => "mos",
        "password"        => "hemligt",
        "driver_options"  => [
            \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
        ],
        "fetch_mode"      => \PDO::FETCH_OBJ,
        "table_prefix"    => null,
        "session_key"     => "Anax\Database",

        // True to be very verbose during development
        "verbose"         => false,

        // True to be verbose on connection failed
        "debug_connect"   => true,
    ];
}

return [
    "dsn"             => "mysql:host=127.0.0.1;dbname=oophp;",
    "username"        => "user",
    "password"        => "pass",
    "driver_options"  => [
        \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
    ],
    "fetch_mode"      => \PDO::FETCH_OBJ,
    "table_prefix"    => null,
    "session_key"     => "Anax\Database",

    // True to be very verbose during development
    "verbose"         => false,

    // True to be verbose on connection failed
    "debug_connect"   => true,
];


Du kan se att server, databas, användare och login är olika för de båda maskinerna (lokalt och produktion).

Re: Olika (databas) konfiguration för utveckling och produkt

InläggPostat: 24 apr 2018, 10:19
av mos
Här finns en SO diskussion om hur man tar reda på serverns namn.