„Laravel 10 – API-Schlüssel in .env-Datei nicht erkannt“
<p>Ich verwende <code>Laravel Framework 10.15.0</code>. </p>
<p>Ich habe versucht, meinen API-Schlüssel auf folgende Weise zu laden: </p>
<pre class="brush:php;toolbar:false;">$apiKeyOpenAI = env('OPENAI_API_KEY');
$client = OpenAI::client($apiKeyOpenAI);</pre>
<p>In meiner Datei <code>.env</code> ist der API-Schlüssel klar definiert: </p>
<p><code>OPENAI_API_KEY=xx-xxxxxxxxxxxxxxxxxxxxxxxx</code></p>
<p>Wenn ich jedoch meine Anwendung auf dem Server ausführe, erhalte ich, dass <code>$apiKeyOpenAI</code> null ist. </p>
<p>Allerdings habe ich OPENAI_API_KEY in meiner <code>.env</code>-Datei.Ich habe es überprüft! </p>
<p>Ich habe versucht, den Cache zu leeren <code>php artisan config:clear </code> aber ich erhalte immer noch die Fehlermeldung: </p>
<pre class="brush:php;toolbar:false;">TypeError
OpenAI::client(): Argument Nr. 1 ($apiKey) muss vom Typ string sein, null gegeben, aufgerufen in /var/www/demo-website/app/Console/Commands/AdminCommand.php in Zeile 151
unter Vendor/openai-php/client/src/OpenAI.php:13
9▕{
10▕ /**11▕ * Erstellt einen neuen Open AI Client mit dem angegebenen API-Token.
12▕*/
➜ 13▕ öffentliche statische Funktion client(string $apiKey, string $organization = null): Client
14▕{
15▕ return self::factory()
16▕ ->withApiKey($apiKey)
17▕ ->withOrganization($organization)
1 app/Console/Commands/AdminCommand.php:151
OpenAI::client()
2 app/Console/Commands/AdminCommand.php:39
AppConsoleCommandsAdminCommand::generateContentUsingOpenAI()</pre>
<p>Irgendwelche Vorschläge, was ich falsch mache? </p>
<p>Vielen Dank für Ihre Antwort! </p>
<p><strong>Update</strong></p>
<p>Nach der Bereitstellung auf dem Server muss ich dieses Skript ausführen, damit es funktioniert: </p>
<pre class="brush:php;toolbar:false;">Route::get('/clear', function() {
Artisan::call('cache:clear');
Artisan::call('config:clear');
return „Cache, Konfiguration wurde gelöscht“;
})->middleware(['auth', 'admin']);</pre>
<p>Bei der Bereitstellung wird dieses Skript auch automatisch ausgeführt: </p>
<pre class="brush:php;toolbar:false;">#!/bin/sh
set -e
echo „Anwendung wird bereitgestellt ...“
# Wartungsmodus aufrufen
(php artisan down) ||
# Codebasis aktualisieren
Git Fetch Origin Deployment
git reset --hard origin/deploy
# Installieren Sie Abhängigkeiten basierend auf der Sperrdatei
Composer-Installation --no-interaction --prefer-dist --optimize-autoloader
#Datenbank migrieren
php artisan migrate --force
# Hinweis: Wenn Sie Warteschlangenarbeiter verwenden, können Sie diese hier neu starten.
#...
# Cache leeren
# PHP-Handwerker optimieren
php artisan config:cache
PHP-Artisan-Route:klar
php artisan route:cache
PHP-Artist-Ansicht: klar
PHP-Artist-Ansicht:Cache
php artisan auth:clear-resets
PHP-Artisan-Cache: klar
php artisan config:clear
#Sitemap generieren
# php artisan sitemap:generieren
# PHP neu laden, um Opcache zu aktualisieren
echo „“ |. sudo -S service php8.1-fpm reload
# Wartungsmodus verlassen
PHP-Artist up
echo "Anwendung bereitgestellt!"</pre></p>