CodeIgniter3: Warum sollte $_SERVER[‘CI_ENV’] jemals überhaupt eingestellt werden?

Lesezeit: 2 Minuten

Benutzer-Avatar
dsdsdsdsd

Ich sehe, dass in ihrer Standardinstallation ihre index.php Folgendes hat:

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

Warum sollte CI_ENV je schon innerhalb gesetzt werden $_SERVER Anordnung?

Benutzer-Avatar
MackieeE

Wie Oliver beschrieben hat; es ist ein spezieller Anwendungsfall für mehrere Umgebungen. Aufteilung der Entwicklung, Erprobung & Produktion mittels .htaccess bevor es überhaupt zum Code kommt. Um dies zu konfigurieren:

Entwicklung (Localhost)

<IfModule mod_env.c>
    SetEnv CI_ENV development
</IfModule>

Testen (Ihr lokaler Server)

<IfModule mod_env.c>
    SetEnv CI_ENV testing
</IfModule>

Produktion (Remote-Server)

<IfModule mod_env.c>
    SetEnv CI_ENV production
</IfModule>

Sie haben recht, wenn Sie denken, dass sich das niemals ändern wird, wenn nicht manuell eingegriffen wird. Dazu gibt es nicht viel Dokumentation:

“Diese Servervariable kann in Ihrer .htaccess-Datei oder in der Apache-Konfiguration mit SetEnv festgelegt werden. Für nginx und andere Server stehen alternative Methoden zur Verfügung, oder Sie können diese Logik vollständig entfernen und die Konstante basierend auf der IP-Adresse des Servers festlegen.”

Quelle: Verwenden der Umgebungskonstante

Benutzer-Avatar
Talsibon

Nur für den Fall, dass Sie nginx verwenden, hier ist die Konfiguration, die Sie in der vhosts-Konfiguration hinzufügen müssen:

  server {

        location ~ \.php$ {
            fastcgi_param CI_ENV production;
        }

Speichern und führen Sie die nginx-Syntaxprüfung aus (nur um zu vermeiden, dass Sie mich verfluchen):

nginx -t

Wenn Sie Probleme haben oder den Parameter nicht finden können, können Sie der folgenden Antwort folgen: Nginx-Variablen ähnlich wie SetEnv in Apache?

  • Das ist, wonach ich suche!

    – Annari

    16. Juni 2021 um 7:45 Uhr

Benutzer-Avatar
oliver

Es ist eine Konvention, die von Codeigniter verwendet wird. Es hilft dem Framework, „out of the box“ zu funktionieren.

  • Gibt es jemals eine Situation, wenn isset($_SERVER['CI_ENV']) würde zu bewerten true? … und wenn ja, wie und warum wurde es eingestellt?

    – dsdsdsdsd

    17. März 2016 um 3:51 Uhr


  • Abhängig von der Serverkonfiguration wurde es standardmäßig so eingestellt, dass es mit Apache funktioniert

    – oliver

    17. März 2016 um 3:55 Uhr

1130490cookie-checkCodeIgniter3: Warum sollte $_SERVER[‘CI_ENV’] jemals überhaupt eingestellt werden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy