찾다

 >  Q&A  >  본문

"Laravel 10 - .env 파일에서 API 키가 인식되지 않습니다."

<p>저는 <code>Laravel Framework 10.15.0</code>을 사용하고 있습니다. </p> <p>다음과 같은 방법으로 API 키를 로드해 보았습니다. </p> <pre class="brush:php;toolbar:false;">$apiKeyOpenAI = env('OPENAI_API_KEY'); $client = OpenAI::client($apiKeyOpenAI);</pre> <p><code>.env</code> 파일에는 API 키가 명확하게 정의되어 있습니다. </p> <p><code>OPENAI_API_KEY=xx-xxxxxxxxxxxxxxxxxxxxxxx</code></p> <p>그러나 서버에서 애플리케이션을 실행할 때 <code>$apiKeyOpenAI</code>가 null이라는 메시지가 표시됩니다. </p> <p>그러나 내 <code>.env</code> 파일에는 OPENAI_API_KEY가 있습니다.확인해 봤습니다! </p> <p>캐시 <code>php artisan config:clear </code>를 삭제하려고 했지만 여전히 오류가 발생합니다. </p> <pre class="brush:php;toolbar:false;">TypeError OpenAI::client(): 인수 #1($apiKey)은 문자열 유형이어야 하며, null이 주어지고 151행의 /var/www/demo-website/app/Console/Commands/AdminCommand.php에서 호출되어야 합니다. 공급업체/openai-php/client/src/OpenAI.php:13에서 9▕{ 10▕ /**11▕ * 주어진 API 토큰을 사용하여 새로운 Open AI 클라이언트를 생성합니다. 12▕*/ ➜ 13▕ 공용 정적 함수 클라이언트(문자열 $apiKey, 문자열 $organization = null): 클라이언트 14▕{ 15▕ return self::factory() 16▕ ->withApiKey($apiKey) 17▕ ->withOrganization($organization) 1개의 앱/콘솔/명령/AdminCommand.php:151 OpenAI::클라이언트() 2 앱/콘솔/명령/AdminCommand.php:39 AppConsoleCommandsAdminCommand::generateContentUsingOpenAI()</pre> <p>내가 뭘 잘못하고 있는지 제안해 주실 수 있나요? </p> <p>답변해 주셔서 감사합니다! </p> <p><strong>업데이트</strong></p> <p>서버에 배포한 후 작동하려면 다음 스크립트를 실행해야 합니다. </p> <pre class="brush:php;toolbar:false;">Route::get('/clear', function() { Artisan::call('캐시:클리어'); Artisan::call('config:clear'); "캐시, 구성이 지워졌습니다"를 반환합니다. })->middleware(['auth', 'admin']);</pre> <p>배포 시 다음 스크립트도 자동으로 실행됩니다. </p> <pre class="brush:php;toolbar:false;">#!/bin/sh -e로 설정 echo "애플리케이션 배포 중..." # 유지 관리 모드로 들어갑니다 (php artisan 다운) || 참 # 코드베이스 업데이트 git 가져오기 원본 배포 git Reset --하드 오리진/배포 # 잠금 파일을 기반으로 종속성을 설치합니다. 작곡가 설치 --no-interaction --prefer-dist --optimize-autoloader #데이터베이스 마이그레이션 PHP 장인 마이그레이션 --force # 참고: 대기열 작업자를 사용하는 경우 여기에서 다시 시작할 수 있습니다. #... # 캐시 지우기 # PHP 장인 최적화 PHP 장인 구성:캐시 PHP 장인 경로: 지우기 PHP 장인 경로:캐시 PHP 장인 보기:지우기 PHP 장인 보기:캐시 php artisan 인증:지우기 재설정 PHP 장인 캐시:지우기 PHP 장인 구성: 지우기 #사이트맵 생성 # php artisan 사이트맵:생성 # opcache를 업데이트하려면 PHP를 다시 로드하세요. 에코 "" sudo -S 서비스 php8.1-fpm 다시 로드 # 유지관리 모드 종료 PHP 장인 최대 echo "애플리케이션이 배포되었습니다!"</pre></p>
P粉198814372P粉198814372496일 전568

모든 응답(1)나는 대답할 것이다

  • P粉317679342

    P粉3176793422023-08-31 00:38:30

    config/*.php文件之外不要使用env()。如果你曾经运行过php artisan config:cache(通常应该在生产环境中进行),那么env()将停止在这些文件之外工作(对于大多数情况来说;env键仍然可以加载,但这对于大多数Laravel设置来说并不典型)。这就是为什么你需要运行php artisan config:clear才能使env()不返回null 이유가 있습니다.

    config/app.php(或config/ 디렉토리의 다른 파일에 키를 추가하세요:

    으아악

    그런 다음 이 키를 사용하려면 config()도우미 기능을 사용하세요.

    으아악

    주의:app是文件名,open_ai_api_key是数组索引。如果你使用了不同的文件,比如config/services.php,那么应该使用config('services.open_ai_api_key')

    자세한 내용은 설명서를 참조하세요.

    https://laravel.com/docs/10.x/configuration#configuration-caching

    회신하다
    0
  • 취소회신하다