Joan zuzenean edukira

config.inc.php sakonean

web/config.inc.php MRBS instalazioaren konfigurazio-fitxategia da. Gunearen portaera berezia zehazten du, eta normalean datu sentikorrak ditu. Tratatu produkzioko konfigurazio gisa, ez aplikazioaren iturburu-fitxategi gisa.

Sortu fitxategia

MRBS web/config.inc.php-sample bidaltzen du, baina nahita ez du config.inc.php aktiborik bidaltzen.

cd /var/www/mrbs
cp config.inc.php-sample config.inc.php

Hasi MRBS bertsio bereko laginarekin. Ez eraman lagin zahar bat aldatu gabe.

Konfigurazioa nola kargatzen den

Partekatutako bootstrap-ak ordena honetan kargatzen du konfigurazioa:

  1. systemdefaults.inc.php
  2. areadefaults.inc.php
  3. config.inc.php
  4. site_config.inc
  5. barne balioztatzea eta bateragarritasuna kudeatzea

Geroago egindako esleipenek aurrekoak gainidazten dituzte. Horregatik, config.inc.php labur batek aplikazioaren balio lehenetsiak ordezka ditzake bertsioaren fitxategiak aldatu gabe.

flowchart LR
  System[System defaults] --> Area[New-area defaults]
  Area --> Local[config.inc.php]
  Local --> Site[Site-specific config]
  Site --> Check[Validation and compatibility]

Important

Datu-basean gordeta dauden eremu-balioak Gelak bidez editatzen dira. areadefaults.inc.php edo config.inc.php aldatzeak ez ditu lehendik dauden eremuak berridazten.

PHP sintaxia

Konfigurazioa exekutagarria da PHP. Adierazpen bakoitza puntu eta komarekin amaitzen da. Kateek komatxo bakunak edo bikoitzak erabil ditzakete:

$timezone = 'Europe/Berlin';
$default_view = "week";
$kiosk_mode_enabled = false;
$search["count"] = 30;

Erabili PHP boolearrak, ez kateak:

$mail_settings['disabled'] = false;   // Correct
$mail_settings['disabled'] = "false"; // Wrong: this is a non-empty string

Arrayek onartzen duten PHP sintaxia erabil dezakete:

$auth['admin'] = array('alice', 'bob');
$report_open_areas = [1, 3];

Ez gehitu ixteko ?> etiketarik. Ustekabeko irteera sar ditzake eta goiburuak edo cookieak hautsi ditzake.

Gutxieneko ezarpenak

Gune berri batek normalean gelaren ordu-zona eta datu-basearen konexioa behar ditu:

$timezone = 'Europe/Berlin';

$dbsys = 'mysql';
$db_host = 'localhost';
$db_database = 'mrbs';
$db_login = 'mrbs';
$db_password = 'replace-this-password';
$db_tbl_prefix = 'mrbs_';
$db_persist = false;

Erabili gelak dauden ordu-zona. Zerbitzariaren ordu-eremutik desberdina izan daiteke.

Datu-basearen konfigurazioa

Hautatu datu-basea

$dbsys = 'mysql'; // MySQL or MariaDB

edo:

$dbsys = 'pgsql'; // PostgreSQL

Konexio-portaera

localhost Unix socket bat hauta dezake gidariaren arabera. Erabili 127.0.0.1 TCP behartzeko MySQL. Estandarra ez den ataka bereizita zehaztu daiteke:

$db_host = '127.0.0.1';
$db_port = 3306;

PostgreSQL hainbat eskema dituzten instalazioek ezarri dezakete:

$db_schema = 'public';

Taularen aurrizkiak instalatutako eskemarekin bat etorri behar du:

$db_tbl_prefix = 'mrbs_';

Konexio iraunkorrak desgaituta daude lehenespenez. Gaitu itzazu benetako behar bat neurtu eta transakzioekin eta blokeoekin duten elkarrekintza ulertu ondoren soilik.

URL eta alderantzizko proxy ezarpenak

MRBSk normalean eskaeratik ondorioztatzen du bere URLa. Alderantzizko proxy batek, bide-aurrizki batek edo ezohiko ostalari birtualaren konfigurazio batek informazio hori fidagaitz bihurtzen duenean, kopiatu dagozkion URL ezarpenak systemdefaults.inc.php fitxategitik eta ezarri oinarri publiko esplizitua.

Kanpoko URLak erabiltzaileek ikusitako eskema eta ostalaria erabili behar ditu. Konfiguratu proxy eskema fidagarriak eta ostalariaren informazioa pasatzeko eta fidagarriak ez diren ostalariaren goiburuak baztertzeko.

URLaren portaera aldatu ondoren, probatu:

  • saioa hasi ondoren birzuzenketak;
  • posta elektronikoko estekak;
  • iCalendar URLak;
  • kiosko irteera estekak;
  • gune anitzeko estekak; eta
  • HTTP-to-HTTPS birzuzenketak.

Autentifikazioa eta saioak

Autentifikazio-metodoak identitatea egiaztatzen du; saio-metodoak, berriz, identitatea lortu eta mantentzen du.

$auth["type"] = "db";
$auth["session"] = "php";

Kanpoko sistemek beren ezarpenak gehitzen dituzte, adibidez:

$auth["type"] = "ldap";
$auth["session"] = "php";

Ez kopiatu adibideko erabiltzaileak edo pasahitzak ekoizpenera. Maparen administratzailearen sarbidea esplizituki eta probatu erabiltzaile arrunt bat eta baita administratzaile bat ere. Ikusi Autentifikazioa.

Sarbide kontrola

$auth ataleko ezarpenek ikusgarritasun publikoa eta erreserba-pribilegioak kontrolatzen dituzte:

$auth['deny_public_access'] = true;
$auth['only_admin_can_book'] = false;
$auth['admin_must_obey_policies'] = true;

Berrikusi erlazionatutako ezarpenak elkarrekin. Egutegi publikoak, txosten publikoak, kioskoak eta erreserba pribatuak informazio ezberdina ager dezakete.

Egutegia eta interfazea

Ezaugarri global arruntak hauek dira:

$default_view = 'week';
$weekstarts = 1;                 // Monday
$display_mincals = true;
$show_timeline = true;
$kiosk_mode_enabled = false;

Data eta orduaren formatua lokalak aintzat hartzen ditu. Kopiatu dagokion $datetime_formats sarrera osoa formatu bat gainidazten denean, partzialki berreraiki beharrean.

Erreserba arauak

Erreserba-arau asko eremu batekoak dira eta datu-basean kudeatzen dira. Ezarpen globalek eremuen mugak ezar ditzakete edo gaitasunak mugatu.

Mantendu politika-gainidazketak argi etiketatutako atal batean, eta dokumentatu haien negozio-arrazoia:

// Facilities policy: every user may hold at most 20 future bookings.
$max_per_interval_global_enabled['future'] = true;
$max_per_interval_global['future'] = 20;

Probatu erreserba errepikakorrak, egun anitzekoak eta administratzaileak politikaren mugan.

Posta elektronikoa

Aukeratu bidalketa-metodoa, eta konfiguratu igorlea, hartzaileak, gertaerak eta garraioa:

$mail_settings['admin_backend'] = 'smtp';
$mail_settings['from'] = 'mrbs@example.org';
$mail_settings['booker'] = true;

$smtp_settings['host'] = 'mail.example.org';
$smtp_settings['port'] = 587;
$smtp_settings['auth'] = true;
$smtp_settings['secure'] = 'tls';
$smtp_settings['username'] = 'mrbs@example.org';
$smtp_settings['password'] = 'replace-this-password';

Mantendu gaituta ziurtagiriaren egiaztapena. Ikusi Posta elektroniko bidezko jakinarazpenak.

Hizkuntza eta tokiko idazkera

Ezarri hizkuntza lehenetsi finko bat arakatzailearen negoziazioa desegokia denean soilik:

$default_language_tokens = 'de';

Gainidatzi banakako etiketak web/lang/lang.* editatu gabe:

$vocab_override['en']['mrbs'] = 'Resource Booking';
$vocab_override['de']['mrbs'] = 'Ressourcenbuchung';
$vocab_override['fr']['mrbs'] = 'Réservation de ressources';
$vocab_override['es']['mrbs'] = 'Reserva de recursos';

$vocab_override erabiltzeak tokiko hitzak gordetzen ditu bertsio berritze garaian. Lan-fluxu osoa Testua eta itzulpenak atalean dago.

Eremu pertsonalizatuak

Datu-base pertsonalizatuen zutabeak etiketa eta forma eman daitezke konfigurazioaren bidez:

$vocab_override['en']['room.coffee_machine'] = 'Coffee machine';
$select_options['entry.catering'] = array(
    'c' => 'Coffee',
    's' => 'Sandwiches',
    'h' => 'Hot lunch'
);
$is_mandatory_field['entry.catering'] = true;
$is_private_field['entry.refreshments'] = true;

Datu-basearen aldaketak egin behar dira lehenik. entry zutabe pertsonalizatu batek zutabe berdina behar du repeat. Ikus Eremu pertsonalizatuak onartzen diren motak, eskema adibideak, baliozkotzea, pribatutasuna, eremu-ordena eta probak ikusteko.

Kargatu datu sentikorrak beste fitxategi batetik

config.inc.php beste fitxategi bat sar dezake, baina bideak erabatekoa izan behar du:

require '/etc/mrbs/database-secrets.php';

Sartutako fitxategiak espero diren balioak baino ez ditu itzuli edo esleitu behar, eta PHP prozesuak irakurtzeko modukoa izan behar du. Mantendu web-erroaren kanpoan.

Inguruneko aldagaiak esplizituki irakur daitezke:

$db_password = getenv('MRBS_DB_PASSWORD');

Egiaztatu beharrezko balioa badagoela, datu sentikor huts bat isilean onartu beharrean.

Multigune

Gune anitzak konfigurazio globala gehi guneko konfigurazio espezifikoa erabiltzen du sites/<site>/ azpian. Gutxienez, gune bakoitzak taula aurrizki isolatu bat behar du:

$multisite = true;
$db_tbl_prefix = 'berlin_';

Autentifikazioa, posta, gaia eta bestelako ezarpenak gunearen arabera desberdinak izan daitezke. Ikusi Multigune.

Arazketa

Gaitu arazketa-jokabidea aldi baterako soilik eta inoiz ez erakutsi fidagarriak ez diren erabiltzaileei. Integrazio espezifikoko arazketa-irteerak direktorioko datuak, goiburuak, posta-zerbitzariaren xehetasunak edo informazio pertsonala izan ditzake.

Mantendu kredentzialen erregistroa desgaituta:

$auth['log_credentials'] = false;

Bertsio-mantenimendu segurua

MRBS berritze bakoitzeko:

  1. Egin konfigurazio aktiboaren babeskopia.
  2. Hasi bertsio berriaren config.inc.php-sample.
  3. Konparatu gainidazketa zaharrak balio lehenetsi berriekin.
  4. Nahitako ezarpenak soilik transferitu.
  5. Kendu bateragarritasun-egiaztapenek jakinarazitako aldagai zaharkituak.
  6. Exekutatu sintaxiaren baliozkotzea eta proba funtzionalak.

Saihestu lehenetsi zahar osoak konfigurazio berrian kopiatzea; lehenetsi berriak ezkutatzen dituena eta gerora eguneratzeak zailtzen ditu.

Baliozkotze-zerrenda

php -l /var/www/mrbs/config.inc.php

Ondoren egiaztatu:

  • aplikazio eta datu-baseen bertsioak Laguntza;
  • datu-basearen konexioa eta taula-aurrizkia;
  • gelako ordu-zona eta udako portaera;
  • saioa hasi, amaitzea, iraungitzea eta administratzailearen mapak;
  • ikuspegi publikoak eta pribatuak;
  • sortu, editatu, ezabatu, errepikatu eta politikaren mugak;
  • posta elektronikoaren bidaltzailea, hartzaileak eta TLS;
  • txostenak, esportazioak, kioskoak eta gune anitzekoak erabiltzen diren tokietan; eta
  • pasahitz edo datu pribaturik gabeko erregistroak.

Gomendatutako fitxategien diseinua

Mantendu fitxategia labur eta taldekatuta:

<?php
declare(strict_types=1);
namespace MRBS;

// Timezone
$timezone = 'Europe/Berlin';

// Database
$dbsys = 'mysql';
// ...

// Authentication
$auth['type'] = 'db';
$auth['session'] = 'php';

// Site-specific overrides
// ...

Agerikoa ez den gainidatze bakoitzak instalazioak zergatik behar duen azaldu beharko luke.