2

現在、nginx + php-fpmを実行していますが、.phpsファイルの表示に問題があります。

ロケーションルールに.phpsを追加すると、ソースのダウンロードが開始されます。

Apacheでは、通常はAddType application /x-httpd-php-source.phpsを実行します

php-fpmでこれを修正するにはどうすればよいですか?

これは、構成に含まれているものです。

location ~ \.(txt|php|html)$ {
    include server_fpm;
}

server_fpmは含まれています

include fastcgi_params;
fastcgi_pass backend;

fastcgi_paramsには

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  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

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;

#Custom parameters

#Legacy apache forward FCGI params
fastcgi_param HTTP_X_REAL_IP $remote_addr;
fastcgi_param HTTP_X_NGINX_VERSION $nginx_version;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

fastcgi_connect_timeout         60;
fastcgi_send_timeout            180;
fastcgi_read_timeout            180;
fastcgi_buffer_size             128k;
fastcgi_buffers         4       256k;
fastcgi_busy_buffers_size       256k;
fastcgi_temp_file_write_size    256k;
fastcgi_intercept_errors        on;
fastcgi_ignore_client_abort     off;

fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
4

2 に答える 2

3
location ~ \.phps$ {
    fastcgi_pass backend;
    fastcgi_param  DOCUMENT_ROOT    $document_root;
    fastcgi_param  SCRIPT_NAME      $uri;
    fastcgi_param  SCRIPT_FILENAME  /path/to/hightlight_source.php;
}

hightlight_source.php:

<?php highlight_file($_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME']); ?>
于 2012-06-18T22:03:03.843 に答える
1
location ~ \.phps$ {
    try_files $uri =404;
    fastcgi_pass backend;
    fastcgi_param   DOCUMENT_ROOT    $document_root;
    fastcgi_param   SCRIPT_NAME      $uri;
    fastcgi_param   SCRIPT_FILENAME  /path/to/phps.php;
    include fastcgi_params;
}

次にphps.php(dir o + x / mod 664内)

<?php
error_reporting(0);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><?php echo basename($_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME']);?></title>
</head>
<body>
<?php highlight_file($_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME']); ?>
</body>
</html>
于 2012-09-23T00:01:52.337 に答える