¿Cómo accedo a CGI-Scripts Not Stonetworking Under WWW-Root?

¿Cómo accedo a los scripts cgi desde el browser si el directory CGI-Ejecutables está sobre la carpeta www-root? No quiero usar algo como ../. Intenté navegar a localhost / cgi-bin / pero me dio un error. Dijo permiso denegado.

¿Cómo configuro estas configuraciones? ¿También pueden / ~ los alias del directory de nombres de usuario ejecutar cgi-scripts?

2 Solutions collect form web for “¿Cómo accedo a CGI-Scripts Not Stonetworking Under WWW-Root?”

Si echa un vistazo al file de configuration principal de Apache2, /etc/apache2/httpd.conf , verá que hay dos cosas que deben hacerse para permitir que / Library / WebServer / CGI-Executables contengan los files cgi.

En primer lugar, dado que no está cubierto por los permissions para el directory de documentos junto a él, necesitará un bloque "Directorio" para definir los permissions para todos los files y directorys debajo de él. En el caso de este directory, no permite que pase absolutamente nada. Esta es la razón por la que cuando apuntaste tu browser al directory dijo que se denegaron los permissions. No se preocupe, lo segundo permite que se ejecuten los files cgi en el directory.

En segundo lugar, necesita un command "ScriptAlias" que le indique al server qué URL se usará para señalarlo, de modo que el server encuentre los files y permita que se ejecuten.

 ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) \ "/Library/WebServer/CGI-Executables/$1" 

Esto básicamente dice "después de eliminar el nombre de host luego cualquier URL que inicie" / cgi-bin / "y continúa con un text seguido de un punto seguido de otro fragment de text que apunta a un file con un nombre que coincide con el último bit de el directory "" / Library / WebServer / CGI-Executables / $ 1 "

Si desea colocar files CGI en uno de sus directorys de usuario, deberá realizar algunos cambios en un file de configuration diferente. Encontrará el file de configuration para usuarios compartidos en / etc / apache2 / users con un file de configuration para cada usuario. Aquí hay un ejemplo:

 <Directory "/Users/jessica/Sites/"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> 

Para esto, tendrá que agregar "ExecCGI" a la línea "Opciones" para que pueda tener files CGI en cualquier lugar en su directory de Sitios o debajo o agregar un nuevo bloque de Directorio para su carpeta CGI. Se vería así: –

 <Directory "/Users/jessica/Sites/CGI"> Options ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> 

Como esto se encuentra en nuestro DocumentRoot, no es necesario que usemos ScriptAliasMatch.

(La segunda opción es la más segura).

Normalmente odio hacer esto, pero con un poco de experimentación, descubrí cómo resolver el problema.

  1. Agregue una secuencia de commands a la carpeta CGI-Ejecutables / y establezca su permiso en 755 (chmod 755 ./file-name.

  2. Si desea cambiar esta configuration, $ cd / etc / apache2 / y edite el file httpd.conf. Pude confirmar que esta es la location correcta para administrar la configuration, con este snippit del file.

ScriptAliasMatch ^ / cgi-bin / ((?! (? I: webobjects)). * $) "/ Library / WebServer / CGI-Executables / $ 1"

No estoy seguro de qué es exactamente, pero puedo estar seguro de los caracteres que crea el cgi-bin como un alias para CGI-Executables. Entonces, para modificar esto como la carpeta, simplemente cambie esta configuration aquí a una location diferente.

Todavía no estoy seguro de configurar un cgi-bin para un directory ~ / user-name si alguien puede ayudar con eso

Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).