Red de conocimiento informático - Material del sitio web - Cómo configurar Apache en Linux para publicar sitios web y admitir cgi

Cómo configurar Apache en Linux para publicar sitios web y admitir cgi

Primero determine si hay un problema de configuración:

Instrucciones relacionadas

AddHandler

Opciones

ScriptAlias

CGI (Common Gateway Interface) define el método de interacción entre el servidor del sitio web y los programas de negociación de contenido externos. Generalmente se refiere a programas CGI o scripts CGI, que implementan páginas dinámicas en el sitio web. método utilizado. Este artículo presentará cómo establecer CGI en el servidor del sitio web Apache y cómo escribir programas CGI.

Configurar Apache para permitir CGI

Para que los programas CGI funcionen normalmente, Apache debe estar configurado para permitir la ejecución CGI. Hay muchos métodos.

ScriptAlias

La directiva ScriptAlias ​​permite a Apache ejecutar programas CGI en un directorio específico. Cuando un cliente solicita un recurso en este directorio en particular, Apache asume que los archivos que hay son programas CGI e intenta ejecutarlos.

La directiva ScriptAlias ​​tiene el formato:

ScriptAlias ​​​​/cgi-bin/ /usr/local/apache/cgi-bin/

Si Apache está instalado en la ubicación predeterminada, el archivo de configuración predeterminado /cgi-bin/test.pl solicita, Apache intentará ejecutar el archivo /usr/local/apache/cgi-bin/test.pl y devolverá su salida. Por supuesto, este archivo debe existir y ser ejecutable y producir resultados de una manera específica; de lo contrario, Apache devuelve un mensaje de error.

CGI fuera del directorio de ScriptAlias

Por razones de seguridad, los programas CGI generalmente están restringidos a los directorios especificados por ScriptAlias. De esta manera, los administradores pueden controlar estrictamente quién puede usar CGI. programas. Sin embargo, si se toman las medidas de seguridad adecuadas, no hay razón para no permitir que se ejecuten programas CGI en otros directorios. Por ejemplo, es posible que desee que los usuarios almacenen páginas en el directorio de host especificado por UserDir. Tienen sus propios programas CGI pero no tienen permiso para acceder al directorio cgi-bin. Esto crea la necesidad de ejecutar programas CGI en otros directorios.

Utilice Opciones para permitir explícitamente la ejecución CGI

Puede utilizar la directiva Opciones en el archivo de configuración del servidor principal para permitir explícitamente la ejecución CGI en un directorio específico:

lt;Directorio /usr/local/apache/htdocs/somedirgt;

Opciones ExecCGI

lt;/Directorygt;

La directiva anterior permite que Apache permita CGI Ejecución del expediente. Además, se debe indicar al servidor qué archivos son archivos CGI. La siguiente directiva AddHandler le dice al servidor que todos los archivos con el sufijo cgi o pl son programas CGI:

AddHandler cgi-script cgi pl

archivo .htaccess

Los archivos .htaccess son una forma de configurar directorios. Cuando Apache proporciona un recurso, buscará el archivo .htaccess en el directorio donde se encuentra el recurso, si lo hay, las instrucciones que contiene tendrán efecto. La directiva AllowOverride determina si el archivo .htaccess es válido, especifica qué directivas pueden aparecer en él o no están permitidas en absoluto.

Para hacer esto, debes configurarlo así en la configuración principal del servidor:

Opciones de AllowOverride

En el archivo .htaccess, debes configurarlo así:

Opciones ExecCGI

Para hacer que Apache permita la ejecución de programas CGI en este directorio.

Tenga en cuenta también:

El programa cgi debe generar primero

Tipo de contenido: texto/html dicha línea

Y hay Una línea en blanco.