>  기사  >  PHP 프레임워크  >  고통스러운 문제 해결 "입력 파일이 지정되지 않았습니다."

고통스러운 문제 해결 "입력 파일이 지정되지 않았습니다."

步履不停
步履不停원래의
2019-06-28 16:07:338511검색

고통스러운 문제 해결

오류 "입력 파일이 지정되지 않았습니다." 문제 해결

Background

오늘 오후에 저는 친구들과 함께 Laravel 프로젝트를 개발할 예정입니다. 이 프로젝트는 제 파트너가 부분적으로 개발한 것이므로 제 파일에 복사본을 복제했습니다. 컴퓨터를 설정했는데 URL을 열면 "입력 파일이 지정되지 않았습니다."라는 메시지가 나타납니다. 404 오류

Troubleshooting

  • 우선 프로젝트 소스 코드에 문제가 있는 것으로 의심했습니다. , 그리고 나서 파일 끝에 항목 파일을 직접 입력했습니다. 이전에 웹사이트를 방문할 때에도 다음 문장을 추가했습니다.

    <?php
    exit(1);

    내 프로젝트의 소스 코드에 문제가 없다고 설명하고 코드 문제를 배제합니다.

  • 내 환경에 문제가 있다는 의심이 들기 시작해서 장난을 치기 시작했습니다. 프로젝트를 삭제하고 새 프로젝트를 시작했지만 여전히 작동하지 않습니다. 나는 이것이 이 프로젝트의 유일한 문제라는 것을 알았습니다. 그래서 환경 문제가 아니라고 확신합니다.

    환경 문제가 아니라는 뜻입니다. 환경 문제를 배제하세요

  • 바이두에서 검색해 봤는데 Homestead.yaml 문제일지도 모른다는 분들도 계시던데 꼼꼼히 확인해 보니 문제가 없네요. . 그래서 구글링을 해보니 마땅한 이유를 찾을 수 없었습니다.

    가상머신 구성 문제 해결

  • 그래서 환경 문제도 아니고 프로그램 문제도 아닌 줄 알았더니 드디어 가상머신 내부를 확인해 봐야겠다는 생각이 들어서 결국 ngnix를 살펴봤습니다. 이 오류에 기록하십시오.

    2019/05/23 12:31:44 [error] 5085#5085: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  Unknown: open_basedir restriction in effect. File(/home/vagrant/Code/haopai-git/public/index.php) is not within the allowed path(s): (/www/wwwroot/dev.guooo.top/:/tmp/:/proc/) in Unknown on line 0
    PHP message: PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
    Unable to open primary script: /home/vagrant/Code/haopai-git/public/index.php (Operation not permitted)" while reading response header from upstream, client: 192.168.10.1, server: hp.hopa.cc, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "hp.hopa.cc"
  • 저도 위 에러를 보고 인터넷에 접속해서 찾아보니 주로 ngnix에서 fastcgi_param을 설정하는 문제에 대한 이야기가 많았는데, 별 문제가 없어서 옳지 않다고 생각했습니다. 다른 프로젝트도 있었는데, 이 프로젝트만으로는 문제가 있었습니다. 무슨 이유에서인지 "/www/wwwroot/"라는 폴더가 내 컴퓨터에 존재하면 안 되는 폴더라는 것을 발견하고, 이 문자열을 검색하기 위해 프로젝트에 갔는데, 마침내 .user.ini 파일에서 발견하게 되었습니다. 나는 그것이 그의 문제라는 것을 깨닫고 이 파일의 구성을 삭제했습니다. 파일 내용은 다음과 같습니다.

    open_basedir=***********
  • 자, 문제가 해결되었습니다.

    Reflection

    돌아보고 생각해보니 사실 처음부터 ngnix 로그를 볼 생각을 했어야 했는데. 예전에 .user.ini 파일을 접한 적이 있었는데, 당시에는 크로스 사이트 공격을 방지하기 위해 사용되었다는 것만 기억했습니다.

    .user.ini 지식 포인트

    PHP 5.3.0부터 PHP는 디렉토리별로 .htaccess 스타일 INI 파일을 지원합니다. 이러한 파일은 CGI/FastCGI SAPI에 의해서만 처리됩니다. 이 기능으로 인해 PECL의 htscanner 확장이 더 이상 사용되지 않습니다. Apache를 사용하는 경우 .htaccess 파일을 사용해도 동일한 효과가 있습니다.

    기본 php.ini 외에도 PHP는 실행된 PHP 파일이 있는 디렉터리부터 시작하여 웹 루트 디렉터리($_SERVER['DOCUMENT_ROOT']로 지정됨)까지 모든 디렉터리의 INI 파일을 검색합니다. ). 실행 중인 PHP 파일이 웹 루트 디렉터리 외부에 있는 경우 해당 디렉터리만 검사됩니다.

    PHP_INI_PERDIR 및 PHP_INI_USER 모드의 INI 설정만 .user.ini 스타일 INI 파일에서 인식됩니다.

더 많은 Laravel 관련 기술 기사를 보려면 Laravel Tutorial 칼럼을 방문하여 알아보세요!

위 내용은 고통스러운 문제 해결 "입력 파일이 지정되지 않았습니다."의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.