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?
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?
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:
<IfModule mod_env.c>
SetEnv CI_ENV development
</IfModule>
<IfModule mod_env.c>
SetEnv CI_ENV testing
</IfModule>
<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
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
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