LNMPワンタッチパッケージのLaravelフレームワークへの使用に関する注意事項


作成者のテスト環境
   CentOS7.3
LNMP   Nginx 1.16.1  PHP 7.3  Mysql 8.0
   /home/wwwroot/default/newjob/public
 Laravel 

最初のピット 404
  • ソリューション:nginxプロファイルに以下の内容を加える、著者らのテスト環境に虚機がないためnginxを直接使用する.confのデフォルト構成
  •    /usr/local/nginx/conf/nginx.conf
     server{} 
    location / {  
            try_files $uri $uri/ /index.php?$query_string;  
    } 
    
       /usr/local/nginx/conf/enable-php.conf
     try_files $uri =404; 
    

    2番目のピット file not found.
  • ソリューション:
  •  nginx 
     /usr/local/nginx/conf/nginx.conf 
    access_log /home/wwwlogs/access.log;
     
    error_log /home/wwwlogs/error.log;  #  2019/09/05 10:23:10 [error] 3214#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 172.18.71.37, server: _, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi.sock:", host: "172.18.71.220"
    
     
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
     :
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    

    しかし、著者らがワンタッチパッケージで導入したデフォルトはすでに上の構成であり、$document_を考えてみるとrootとは、プロファイル内のサイトのルートディレクトリの設定を指し、ルートディレクトリに関連する著者のルートディレクトリの設定は/home/wwwroot/defaultと推定されるが、プロジェクトはdefaultの下にあるnewjob/publicであり、IP/newjob/publicでアクセスし、依然としてエラーが報告されているため、nginxのプロファイルを修正してルートディレクトリを/home/wwwroot/default/newjob/publicに調整して再アクセスして正常であることが判明した.
    3番目のピット
    以上の問題はすべて処理した後に再び訪問してついに比較的に熟知している新聞が間違っていて、情報は以下の通りです:Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/default/newjob/vendor/autoload.php) is not within the allowed path(s): (/home/wwwroot/default/newjob/public/:/tmp/:/proc/) in /home/wwwroot/default/newjob/public/index.php on line 24
  • ソリューション:
  •  .user.ini
    $ sudo chattr -i / /.user.ini
    $ sudo rm -f / /.user.ini
    
     /usr/local/nginx/conf/fastcgi.conf
     fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; nginx