thinkphp5.0点環境構成レコード

6347 ワード

ThinkPHP5の環境要件は次のとおりです.
  • PHP >= 5.4.0
  • PDO PHP Extension
  • MBstring PHP Extension
  • CURL PHP Extension
  •      tp    
    echo THINK_VERSION;
       ,  {$Think.THINK_VERSION}   {$Think.VERSION}       ThinkPHP   
    

    擬似静的規則
    Apacheのルール:
    
      Options +FollowSymlinks
      RewriteEngine On
    
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
    
    

    Nignxのルール:
    location / {
      if ( !-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
        break;
      }
    }

     
     
    よくあるインストールの問題:
    1. No input file specified
    .htaccessファイルRewriteRuleリファレンス構成
    ^(.*)$ index.php [L,E=PATH_INFO:$1]
    ^(.*)$ index.php?/$1 [QSA,PT,L]
    2.phpStudio環境PHP 5.6.27-nts+Apache:session_start(): Cannot send session cache limiter - headers already sent
    php.iniファイルでalways_populate_raw_post_data=-1前のコメントを消せばいい
    3.LNMP下500エラーリファレンス
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/:/tmp/:/proc/";
    実際の状況に応じて、上記の文を修正したり注釈したりします.
    4.phpstudy環境でコミットデータ500エラーが発生した場合
    publicディレクトリの下にhtaccessファイルのRewriteRule部分を^(.*)$indexに変更します.php[L,E=PATH_INFO:$1]で解決できる.
    5.一部のNginxバージョンでは、コントローラに問題はなく、以下の構成を参照してください.
    server {
    	listen 80;
    
    	root /Users/song/wwwroot/onebase/public/;
    
    	index index.php index.html index.htm;
    
    	server_name www.ob.com  ob.com;
    
    	location / {
                    # try_files $uri $uri/ =404;
                    index index.php admin admin.php
                    add_header Access-Control-Allow-Origin *;
                    add_header Access-Control-Allow-Method GET,POST,PUT,DELETE,OPTIONS;
                   try_files $uri  @rewrite;
            }
    
       
          #    
        location @rewrite {
          #   admin.php   ,  
          rewrite ^/admin.php(.*)$ /admin.php?s=$1 last;
         #    index.php    ,  
          rewrite ^/index.php(.*)$ /index.php?s=$1 last; 
         #    index.php 
          rewrite . /index.php?s=$uri last;
         }
    
    
    }
    

    Centos 7+LNMPプロファイルリファレンス
    nginx.confファイル
    user  www www;
    
    worker_processes auto;
    
    error_log  /home/wwwlogs/nginx_error.log  crit;
    
    pid        /usr/local/nginx/logs/nginx.pid;
    
    #Specifies the value for maximum file descriptors that can be opened by this process.
    worker_rlimit_nofile 51200;
    
    events
        {
            use epoll;
            worker_connections 51200;
            multi_accept on;
        }
    
    http
        {
            include       mime.types;
            default_type  application/octet-stream;
    
            server_names_hash_bucket_size 128;
            client_header_buffer_size 32k;
            large_client_header_buffers 4 32k;
            client_max_body_size 50m;
    
            sendfile   on;
            tcp_nopush on;
    
            keepalive_timeout 60;
    
            tcp_nodelay on;
    
            fastcgi_connect_timeout 300;
            fastcgi_send_timeout 300;
            fastcgi_read_timeout 300;
            fastcgi_buffer_size 64k;
            fastcgi_buffers 4 64k;
            fastcgi_busy_buffers_size 128k;
            fastcgi_temp_file_write_size 256k;
    
            gzip on;
            gzip_min_length  1k;
            gzip_buffers     4 16k;
            gzip_http_version 1.1;
            gzip_comp_level 2;
            gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
            gzip_vary on;
            gzip_proxied   expired no-cache no-store private auth;
            gzip_disable   "MSIE [1-6]\.";
    
            #limit_conn_zone $binary_remote_addr zone=perip:10m;
            ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.
    
            server_tokens off;
            access_log off;
    
    
    
      	add_header Access-Control-Allow-Origin *;
    
    
    
    
    server
        {
            listen 80 default_server;
    	listen 443 ssl;
    
            #listen [::]:80 default_server ipv6only=on;
            server_name www.onebase.org;
    
            index index.html index.htm index.php;
    
    
       	ssl_certificate   /usr/local/nginx/conf/cert/214303441400802.pem;
       	ssl_certificate_key  /usr/local/nginx/conf/cert/214303441400802.key;
        	ssl_session_timeout 5m;
        	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        	ssl_prefer_server_ciphers on;
    
    
            set $root  /home/wwwroot/OneBase/public;
    	#set $root /home/wwwroot/default;
    
    	root $root;
    		
            #error_page   404   /404.html;
    
            # Deny access to PHP files in specific directory
            #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
    
            #include enable-php.conf;
    
    	location / {
               try_files $uri $uri/ /index.php?s=$uri&$args;
            }
    
            include enable-php-pathinfo.conf;
    
            location /nginx_status
            {
                stub_status on;
                access_log   off;
            }
    
            location ~ /.well-known {
                allow all;
            }
    
            location ~ /\.
            {
                deny all;
            }
    
            access_log  /home/wwwlogs/access.log;
        }
    
        	include vhost/*.conf;
    }
    
    
    

    fastcgi.confファイル
    
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param  QUERY_STRING       $query_string;
    fastcgi_param  REQUEST_METHOD     $request_method;
    fastcgi_param  CONTENT_TYPE       $content_type;
    fastcgi_param  CONTENT_LENGTH     $content_length;
    
    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
    fastcgi_param  REQUEST_URI        $request_uri;
    fastcgi_param  DOCUMENT_URI       $document_uri;
    fastcgi_param  DOCUMENT_ROOT      $document_root;
    fastcgi_param  SERVER_PROTOCOL    $server_protocol;
    fastcgi_param  REQUEST_SCHEME     $scheme;
    fastcgi_param  HTTPS              $https if_not_empty;
    
    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
    fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
    
    fastcgi_param  REMOTE_ADDR        $remote_addr;
    fastcgi_param  REMOTE_PORT        $remote_port;
    fastcgi_param  SERVER_ADDR        $server_addr;
    fastcgi_param  SERVER_PORT        $server_port;
    fastcgi_param  SERVER_NAME        $server_name;
    
    # PHP only, required if PHP was built with --enable-force-cgi-redirect
    fastcgi_param  REDIRECT_STATUS    200;
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/:/tmp/:/proc/";