지난 며칠 동안 요구 사항이 발생했습니다. 이 요구 사항은 PHP 파일에 작성되어 있으며 명령줄에서 실행하는 것이 가장 좋습니다.
그런데 문제가 발생했습니다.
브라우저에서 php 파일을 실행해보니 괜찮습니다.
그런데
명령줄에서 실행하면 오류가 납니다!
오류 메시지는 다음과 같습니다.
<code>PHP Fatal error: Uncaught Exception: could <span>not</span> find driver <span>in</span> /<span>var</span>/www/html/huxintong_admin/include/lib/DataBase.<span>class</span>.php:<span>149</span> Stack trace: <span>#0</span> /<span>var</span>/www/html/huxintong_admin/include/<span>class</span>/Base.<span>class</span>.php(<span>9</span>): DataBase->__construct(<span>Array</span>) <span>#1</span> /<span>var</span>/www/html/huxintong_admin/include/<span>class</span>/System.<span>class</span>.php(<span>22</span>): Base::__instance() <span>#2</span> /<span>var</span>/www/html/huxintong_admin/include/crontab/remind/qb_sms_remind_queue.php(<span>13</span>): System::get(<span>'timezone'</span>) <span>#3</span><span>{main}</span> thrown <span>in</span> /<span>var</span>/www/html/huxintong_admin/include/lib/DataBase.<span>class</span>.php <span>on</span> line <span>149</span></code>
알겠습니다. 당연합니다! PHP에는 cli 아래에 pdo 드라이버가 없습니다.
그래서 pdo 드라이버가 추가되었는지 확인하기 위해 /etc/php5/cli를 찾아 아래와 같이 일련의 구성을 해 보았으나 여전히 작동하지 않았습니다!
붕괴!
그런데 방법이 없어요. 재설치가 너무 귀찮거든요.
묵묵히 터지지 않으면 묵묵히 터진다 이번에는 내가 터뜨렸다.
Du Niang에서 검색해 보니 관련 질문에 대한 답변이 없습니다. 프로그래머여, 구글을 사용하자!
Google에서 이 질문을 영어로 검색해 보세요.
스택오버플로우 홈페이지를 확인해 보니 저와 같은 문제를 겪으신 분들이 많네요.
그래서 다른 사람들의 제안을 확인했습니다.
cli에서 php의 세부 정보를 보려면 php -i를 사용하세요.
cli에서 php가 로드되는 모듈을 보려면 php -m을 사용하세요.
사용하세요 php –ini php가 어떤 ini 파일을 로드했는지 확인하세요.
그냥 php –ini를 누르세요. 상관없습니다. /etc/php/7.0 아래의 구성 파일이 로드됩니다.
맙소사, 언제 php7.0을 설치했는지 모르겠어요. 어떻게 작동하지 않을 수 있냐고요? . .
알고 보니 php5.0 이하에서는 설정 파일을 변경하고, php7.0 이하에서는 설정 파일을 사용하고 있었습니다.
좋아, 지금은 php7.0에서 작업하지 말자.
에서
php 테스트.php
에
php5 테스트.php
문제 해결
부록: stackoverflow 이 문제
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });위에서는 오류 디버깅에 대해 소개했습니다. php 명령줄 [php cli]에 대해서는 php와 cli의 내용이 포함되어 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.