Artículo Actualizado: 03/04/2020
Nota 1: Instalar la pitón Ver también: de pitón instalación y gramática básica
Nota 2: Configurar un entorno web Ver también: Windows y Linux usando un entorno integrado para construir servidor web
Nota 3: Configuración de Windows CGI Ver: uso pitón debajo de las ventanas de configuración del entorno CGI
Nota 4: Más consulte Configuración de CGI: la práctica de programación Python CGI
En primer lugar, configurar el acceso al directorio CGI
1, instale httpd
Esto ciertamente no es para decir, CGI está proporcionando servicios basados en la web, que sin duda tiene que instalar un programa de servicio web.
Recoger httpd, los terminales lleva a cabo sudo yum install httpd
la instalación.
2, encontrar el directorio cgi-bin y escribir un pequeño programa
Instalado httpd
posteriormente en /var/www/
el directorio será un cgi-bin
directorio, este es el valor predeterminado cgi
directorio de programa de colocación, se puede utilizar directamente.
En este directorio se puede escribir directamente a un programa CGI, y luego tratar de acceso.
Para el castaño:
#! /usr/bin/env python
# -*- coding:UTF-8 -*-
print('Content-Type: text/html; charset=utf-8\n')
import os
print("你好")
print("<br>你的IP是:%s"%os.environ['REMOTE_ADDR'])
print ("<br>你的UA是:%s"%os.environ['HTTP_USER_AGENT'])
print("<br>你的请求端口是:%s"%os.environ['REMOTE_PORT'])
print("<br>你的请求路径是:http://anti-fraud.wiki%s"%os.environ['REQUEST_URI'])
print("<br>你的请求方法是:%s"%os.environ['REQUEST_METHOD'])
Explica:
1, la primera línea de declarar el programa CGI intérprete, aquí es la pitón, por supuesto, también ser usada python3. Sin embargo, cuando la salida del python3 china podría haber algunos problemas, se discute la forma de resolver esto más adelante. Por supuesto, también se puede escribir ruta #! /usr/bin/python
2, la segunda línea es para especificar la codificación, nota que después de la segunda línea de este código puede ser interpretado como un comentario en lugar de la codificación.
3, la tercera línea en respuesta a la información de cabecera de impresión, un retorno de carro en el extremo es el extremo de la cabeza.
4, varias líneas debajo de la salida de un número de variables ambientales, tales como IP del visitante, UA y otra información.
Acceso efecto es el siguiente:
En segundo lugar, añadir / cambiar la ruta del programa CGI
1, el cambio CGI camino
Aunque el programa está en marcha. Sin embargo, el cgi-bin
camino hacia el cambio a cambio de lo que hago, no se asuste, vistazo a la operación.
(1) editar /etc/httpd/conf/httpd.conf
el archivo de configuración.
Recomendada vim
editor, modo de comando, pulse /
la tecla y escriba la cgi
búsqueda.
ScriptAlias cgi refiere a la ruta alias, donde vamos a cambiarlo ok
, tal como se muestra a continuación:
! [Cambiar alias cgi] (https://img-blog.csdnimg.cn/20200304224650819.png
Guardar y salir después de que el fichero de configuración httpd restart tenga efecto y luego tratar de acceso.
2, ruta complemento CGI
Si ya tiene el camino no se ajusta a nuestras necesidades, que no cunda el pánico, poseemos un punto a favor.
Edición de un archivo de configuración de paso, editar el contenido de la siguiente manera:
A continuación añadimos una ruta de acceso a la web a hello
la ruta del archivo real es /var/www/hello/
el programa cgi ruta
Intentamos visitar en:
En tercer lugar, la resolución de salida python3 CGI del problema de la basura china
1, fenómeno ilegible
Efecto de acceso:
Registro:
AH01215: UnicodeEncodeError: 'ascii' codec pueden no caracteres codifican en la posición 0-1: no ordinal en el rango (128)
2, la solución
1, además de la cabeza del código de programa se muestra a continuación:
#! /usr/bin/env python3
# -*- coding:UTF-8 -*-
import codecs, sys
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.buffer)
print('Content-Type: text/html; charset=utf-8\n')
import os
print("hello")
print("你好")
print("<br>你的IP是:%s"%os.environ['REMOTE_ADDR'])
print ("<br>你的UA是:%s"%os.environ['HTTP_USER_AGENT'])
print("<br>你的请求端口是:%s"%os.environ['REMOTE_PORT'])
print("<br>你的请求路径是:http://anti-fraud.wiki%s"%os.environ['REQUEST_URI'])
print("<br>你的请求方法是:%s"%os.environ['REQUEST_METHOD'])
print("end")
En el primer código de cabecera del programa anterior se añadió 3- 5, línea, acceso efecto como sigue:
2, han sido probados, el siguiente código de cabecera igualmente eficaces
#! /usr/bin/env python3
# -*- coding:UTF-8 -*-
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.detach(),encoding='utf-8')
print('Content-Type: text/html; charset=utf-8\n')