• Publicidad

Error 500

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Error 500

Notapor elistraus » 2011-10-31 23:56 @039

Hola y saludos al equipo de Perl En Español...
Soy nuevo en Perl y no logro configurar bien para que los archivos .pl se me visualicen con mi servidor Apache.

Tengo instalado Apache 2.2, PHP v5, MySQL v5, PostgreSQL v8.4, phpmyadmin, todo correctamente instalado sobre Windows... La carpeta donde tengo alojados los archivos es en www...

He instalado Perl y en la configuración he logrado ver los archivos .cgi pero los archivos .pl no los he podido configurar: me manda el error 500, y leído que es por un asunto de permisos...

Quisiera si me pudieran ayudar a configurar bien el Apache para que se puedan ver los archivos.pl.

Aquí le muestro la configaración de Apache en el httpd.conf a ver si pueden ver dónde está mi error.

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. #
  2. # This is the main <span class="posthilit">Apache</span> HTTP server configuration file.  It contains the
  3. # configuration directives that give the server its instructions.
  4. # See <URL:http://httpd.<span class="posthilit">apache</span>.org/docs/2.2> for detailed information.
  5. # In particular, see
  6. # <URL:http://httpd.<span class="posthilit">apache</span>.org/docs/2.2/mod/directives.html>
  7. # for a discussion of each configuration directive.
  8. #
  9. # Do NOT simply read the instructions in here without understanding
  10. # what they do.  They're here only as hints or reminders.  If you are unsure
  11. # consult the online docs. You have been warned.  
  12. #
  13. # Configuration and logfile names: If the filenames you specify for many
  14. # of the server's control files begin with "/" (or "drive:/" for Win32), the
  15. # server will use that explicit path.  If the filenames do *not* begin
  16. # with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
  17. # with ServerRoot set to "C:/servidor/<span class="posthilit">apache</span>" will be interpreted by the
  18. # server as "C:/servidor/<span class="posthilit">apache</span>/logs/foo.log".
  19. #
  20. # NOTE: Where filenames are specified, you must use forward slashes
  21. # instead of backslashes (e.g., "c:/<span class="posthilit">apache</span>" instead of "c:\<span class="posthilit">apache</span>").
  22. # If a drive letter is omitted, the drive on which httpd.exe is located
  23. # will be used by default.  It is recommended that you always supply
  24. # an explicit drive letter in absolute paths to avoid confusion.
  25.  
  26. #
  27. # ServerRoot: The top of the directory tree under which the server's
  28. # configuration, error, and log files are kept.
  29. #
  30. # Do not add a slash at the end of the directory path.  If you point
  31. # ServerRoot at a non-local disk, be sure to point the LockFile directive
  32. # at a local disk.  If you wish to share the same ServerRoot for multiple
  33. # httpd daemons, you will need to change at least LockFile and PidFile.
  34. #
  35. ServerRoot "C:/servidor/<span class="posthilit">apache</span>"
  36.  
  37. #
  38. # Listen: Allows you to bind <span class="posthilit">Apache</span> to specific IP addresses and/or
  39. # ports, instead of the default. See also the <VirtualHost>
  40. # directive.
  41. #
  42. # Change this to Listen on specific IP addresses as shown below to
  43. # prevent <span class="posthilit">Apache</span> from glomming onto all bound IP addresses.
  44. #
  45. #Listen 12.34.56.78:80
  46. Listen 8080
  47.  
  48. #
  49. # Dynamic Shared Object (DSO) Support
  50. #
  51. # To be able to use the functionality of a module which was built as a DSO you
  52. # have to place corresponding `LoadModule' lines at this location so the
  53. # directives contained in it are actually available _before_ they are used.
  54. # Statically compiled modules (those listed by `httpd -l') do not need
  55. # to be loaded here.
  56. #
  57. # Example:
  58. # LoadModule foo_module modules/mod_foo.so
  59. #
  60. LoadModule actions_module modules/mod_actions.so
  61. LoadModule alias_module modules/mod_alias.so
  62. LoadModule asis_module modules/mod_asis.so
  63. LoadModule auth_basic_module modules/mod_auth_basic.so
  64. #LoadModule auth_digest_module modules/mod_auth_digest.so
  65. #LoadModule authn_alias_module modules/mod_authn_alias.so
  66. #LoadModule authn_anon_module modules/mod_authn_anon.so
  67. #LoadModule authn_dbd_module modules/mod_authn_dbd.so
  68. #LoadModule authn_dbm_module modules/mod_authn_dbm.so
  69. LoadModule authn_default_module modules/mod_authn_default.so
  70. LoadModule authn_file_module modules/mod_authn_file.so
  71. #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
  72. #LoadModule authz_dbm_module modules/mod_authz_dbm.so
  73. LoadModule authz_default_module modules/mod_authz_default.so
  74. LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
  75. LoadModule authz_host_module modules/mod_authz_host.so
  76. #LoadModule authz_owner_module modules/mod_authz_owner.so
  77. LoadModule authz_user_module modules/mod_authz_user.so
  78. LoadModule autoindex_module modules/mod_autoindex.so
  79. #LoadModule cache_module modules/mod_cache.so
  80. #LoadModule cern_meta_module modules/mod_cern_meta.so
  81. LoadModule cgi_module modules/mod_cgi.so
  82. #LoadModule charset_lite_module modules/mod_charset_lite.so
  83. #LoadModule dav_module modules/mod_dav.so
  84. #LoadModule dav_fs_module modules/mod_dav_fs.so
  85. #LoadModule dav_lock_module modules/mod_dav_lock.so
  86. #LoadModule dbd_module modules/mod_dbd.so
  87. #LoadModule deflate_module modules/mod_deflate.so
  88. LoadModule dir_module modules/mod_dir.so
  89. #LoadModule disk_cache_module modules/mod_disk_cache.so
  90. #LoadModule dumpio_module modules/mod_dumpio.so
  91. LoadModule env_module modules/mod_env.so
  92. #LoadModule expires_module modules/mod_expires.so
  93. #LoadModule ext_filter_module modules/mod_ext_filter.so
  94. #LoadModule file_cache_module modules/mod_file_cache.so
  95. #LoadModule filter_module modules/mod_filter.so
  96. #LoadModule headers_module modules/mod_headers.so
  97. #LoadModule ident_module modules/mod_ident.so
  98. #LoadModule imagemap_module modules/mod_imagemap.so
  99. LoadModule include_module modules/mod_include.so
  100. #LoadModule info_module modules/mod_info.so
  101. LoadModule isapi_module modules/mod_isapi.so
  102. #LoadModule ldap_module modules/mod_ldap.so
  103. #LoadModule logio_module modules/mod_logio.so
  104. LoadModule log_config_module modules/mod_log_config.so
  105. #LoadModule log_forensic_module modules/mod_log_forensic.so
  106. #LoadModule mem_cache_module modules/mod_mem_cache.so
  107. LoadModule mime_module modules/mod_mime.so
  108. #LoadModule mime_magic_module modules/mod_mime_magic.so
  109. LoadModule negotiation_module modules/mod_negotiation.so
  110. #LoadModule proxy_module modules/mod_proxy.so
  111. #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
  112. #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
  113. #LoadModule proxy_connect_module modules/mod_proxy_connect.so
  114. #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
  115. #LoadModule proxy_http_module modules/mod_proxy_http.so
  116. #LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
  117. #LoadModule reqtimeout_module modules/mod_reqtimeout.so
  118. #LoadModule rewrite_module modules/mod_rewrite.so
  119. LoadModule setenvif_module modules/mod_setenvif.so
  120. #LoadModule speling_module modules/mod_speling.so
  121. #LoadModule ssl_module modules/mod_ssl.so
  122. #LoadModule status_module modules/mod_status.so
  123. #LoadModule substitute_module modules/mod_substitute.so
  124. #LoadModule unique_id_module modules/mod_unique_id.so
  125. #LoadModule userdir_module modules/mod_userdir.so
  126. #LoadModule usertrack_module modules/mod_usertrack.so
  127. #LoadModule version_module modules/mod_version.so
  128. #LoadModule vhost_alias_module modules/mod_vhost_alias.so
  129. LoadModule php5_module "C:/servidor/php5/php5apache2_2.dll"
  130. <IfModule !mpm_netware_module>
  131. <IfModule !mpm_winnt_module>
  132. #
  133. # If you wish httpd to run as a different user or group, you must run
  134. # httpd as root initially and it will switch.  
  135. #
  136. # User/Group: The name (or #number) of the user/group to run httpd as.
  137. # It is usually good practice to create a dedicated user and group for
  138. # running httpd, as with most system services.
  139. #
  140. User daemon
  141. Group daemon
  142.  
  143. </IfModule>
  144. </IfModule>
  145.  
  146. # 'Main' server configuration
  147. #
  148. # The directives in this section set up the values used by the 'main'
  149. # server, which responds to any requests that aren't handled by a
  150. # <VirtualHost> definition.  These values also provide defaults for
  151. # any <VirtualHost> containers you may define later in the file.
  152. #
  153. # All of these directives may appear inside <VirtualHost> containers,
  154. # in which case these default settings will be overridden for the
  155. # virtual host being defined.
  156. #
  157.  
  158. #
  159. # ServerAdmin: Your address, where problems with the server should be
  160. # e-mailed.  This address appears on some server-generated pages, such
  161. # as error documents.  e.g. [email protected]
  162. #
  163. ServerAdmin [email protected]
  164.  
  165. #
  166. # ServerName gives the name and port that the server uses to identify itself.
  167. # This can often be determined automatically, but we recommend you specify
  168. # it explicitly to prevent problems during startup.
  169. #
  170. # If your host doesn't have a registered DNS name, enter its IP address here.
  171. #
  172. #ServerName localhost:8080
  173.  
  174. #
  175. # DocumentRoot: The directory out of which you will serve your
  176. # documents. By default, all requests are taken from this directory, but
  177. # symbolic links and aliases may be used to point to other locations.
  178. #
  179. DocumentRoot "C:/servidor/www"
  180.  
  181. #
  182. # Each directory to which <span class="posthilit">Apache</span> has access can be configured with respect
  183. # to which services and features are allowed and/or disabled in that
  184. # directory (and its subdirectories).
  185. #
  186. # First, we configure the "default" to be a very restrictive set of
  187. # features.  
  188. #
  189. <Directory />
  190.     Options FollowSymLinks
  191.     AllowOverride None
  192.     Order deny,allow
  193.     Deny from all
  194. </Directory>
  195.  
  196. #
  197. # Note that from this point forward you must specifically allow
  198. # particular features to be enabled - so if something's not working as
  199. # you might expect, make sure that you have specifically enabled it
  200. # below.
  201. #
  202.  
  203. #
  204. # This should be changed to whatever you set DocumentRoot to.
  205. #
  206. <Directory "C:/servidor/www">
  207.     #
  208.     # Possible values for the Options directive are "None", "All",
  209.     # or any combination of:
  210.     #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
  211.     #
  212.     # Note that "MultiViews" must be named *explicitly* --- "Options All"
  213.     # doesn't give it to you.
  214.     #
  215.     # The Options directive is both complicated and important.  Please see
  216.     # http://httpd.<span class="posthilit">apache</span>.org/docs/2.2/mod/core.html#options
  217.     # for more information.
  218.     #
  219.     Options Indexes FollowSymLinks MultiViews ExecCGI Includes
  220.  
  221.     #
  222.     # AllowOverride controls what directives may be placed in .htaccess files.
  223.     # It can be "All", "None", or any combination of the keywords:
  224.     #   Options FileInfo AuthConfig Limit
  225.     #
  226.     AllowOverride All
  227.  
  228.     #
  229.     # Controls who can get stuff from this server.
  230.     #
  231.     Order allow,deny
  232.     Allow from all
  233.  
  234. </Directory>
  235.  
  236. #
  237. # DirectoryIndex: sets the file that <span class="posthilit">Apache</span> will serve if a directory
  238. # is requested.
  239. #
  240. <IfModule dir_module>
  241.     DirectoryIndex index.html index.htm index.<span class="posthilit">cgi</span> index.shtml index.php index.asp
  242. </IfModule>
  243.  
  244. #
  245. # The following lines prevent .htaccess and .htpasswd files from being
  246. # viewed by Web clients.
  247. #
  248. <FilesMatch "^\.ht">
  249.     Order allow,deny
  250.     Deny from all
  251.     Satisfy All
  252. </FilesMatch>
  253.  
  254. #
  255. # ErrorLog: The location of the error log file.
  256. # If you do not specify an ErrorLog directive within a <VirtualHost>
  257. # container, error messages relating to that virtual host will be
  258. # logged here.  If you *do* define an error logfile for a <VirtualHost>
  259. # container, that host's errors will be logged there and not here.
  260. #
  261. ErrorLog "logs/error.log"
  262.  
  263. #
  264. # LogLevel: Control the number of messages logged to the error_log.
  265. # Possible values include: debug, info, notice, warn, error, crit,
  266. # alert, emerg.
  267. #
  268. LogLevel warn
  269.  
  270. <IfModule log_config_module>
  271.     #
  272.     # The following directives define some format nicknames for use with
  273.     # a CustomLog directive (see below).
  274.     #
  275.     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  276.     LogFormat "%h %l %u %t \"%r\" %>s %b" common
  277.  
  278.     <IfModule logio_module>
  279.       # You need to enable mod_logio.c to use %I and %O
  280.       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
  281.     </IfModule>
  282.  
  283.     #
  284.     # The location and format of the access logfile (Common Logfile Format).
  285.     # If you do not define any access logfiles within a <VirtualHost>
  286.     # container, they will be logged here.  Contrariwise, if you *do*
  287.     # define per-<VirtualHost> access logfiles, transactions will be
  288.     # logged therein and *not* in this file.
  289.     #
  290.     CustomLog "logs/access.log" common
  291.  
  292.     #
  293.     # If you prefer a logfile with access, agent, and referer information
  294.     # (Combined Logfile Format) you can use the following directive.
  295.     #
  296.     #CustomLog "logs/access.log" combined
  297. </IfModule>
  298.  
  299. <IfModule alias_module>
  300.     #
  301.     # Redirect: Allows you to tell clients about documents that used to
  302.     # exist in your server's namespace, but do not anymore. The client
  303.     # will make a new request for the document at its new location.
  304.     # Example:
  305.     # Redirect permanent /foo http://localhost/bar
  306.  
  307.     #
  308.     # Alias: Maps web paths into filesystem paths and is used to
  309.     # access content that does not live under the DocumentRoot.
  310.     # Example:
  311.     # Alias /webpath /full/filesystem/path
  312.     #
  313.     # If you include a trailing / on /webpath then the server will
  314.     # require it to be present in the URL.  You will also likely
  315.     # need to provide a <Directory> section to allow access to
  316.     # the filesystem path.
  317.  
  318.     #
  319.     # ScriptAlias: This controls which directories contain server scripts.
  320.     # ScriptAliases are essentially the same as Aliases, except that
  321.     # documents in the target directory are treated as applications and
  322.     # run by the server when requested rather than as documents sent to the
  323.     # client.  The same rules about trailing "/" apply to ScriptAlias
  324.     # directives as to Alias.
  325.     #
  326.     ScriptAlias /<span class="posthilit">cgi</span>-bin/ "C:/servidor/<span class="posthilit">cgi</span>-bin/"
  327.  
  328. </IfModule>
  329.  
  330. <IfModule cgid_module>
  331.     #
  332.     # ScriptSock: On threaded servers, designate the path to the UNIX
  333.     # socket used to communicate with the <span class="posthilit">CGI</span> daemon of mod_cgid.
  334.     #
  335.     #Scriptsock logs/cgisock
  336. </IfModule>
  337.  
  338. #
  339. # "C:/servidor/<span class="posthilit">apache</span>/<span class="posthilit">cgi</span>-bin" should be changed to whatever your ScriptAliased
  340. # <span class="posthilit">CGI</span> directory exists, if you have that configured.
  341. #
  342. <Directory "C:/servidor/<span class="posthilit">cgi</span>-bin/">
  343.     AllowOverride All
  344.     Options All
  345.     Order allow,deny
  346.     Allow from all
  347. </Directory>
  348.  
  349. #
  350. # DefaultType: the default MIME type the server will use for a document
  351. # if it cannot otherwise determine one, such as from filename extensions.
  352. # If your server contains mostly text or HTML documents, "text/plain" is
  353. # a good value.  If most of your content is binary, such as applications
  354. # or images, you may want to use "application/octet-stream" instead to
  355. # keep browsers from trying to display binary files as though they are
  356. # text.
  357. #
  358. DefaultType text/plain
  359.  
  360. <IfModule mime_module>
  361.     #
  362.     # TypesConfig points to the file containing the list of mappings from
  363.     # filename extension to MIME-type.
  364.     #
  365.     TypesConfig conf/mime.types
  366.  
  367.     #
  368.     # AddType allows you to add to or override the MIME configuration
  369.     # file specified in TypesConfig for specific file types.
  370.     #
  371.     #AddType application/x-gzip .tgz
  372.     #
  373.     # AddEncoding allows you to have certain browsers uncompress
  374.     # information on the fly. Note: Not all browsers support this.
  375.     #
  376.     #AddEncoding x-compress .Z
  377.     #AddEncoding x-gzip .gz .tgz
  378.     #
  379.     # If the AddEncoding directives above are commented-out, then you
  380.     # probably should define those extensions to indicate media types:
  381.     #
  382.     AddType application/x-compress .Z
  383.     AddType application/x-gzip .gz .tgz
  384.         AddType application/x-httpd-php .php
  385.         PHPInidir "C:/servidor/php5"
  386.     #
  387.     # AddHandler allows you to map certain file extensions to "handlers":
  388.     # actions unrelated to filetype. These can be either built into the server
  389.     # or added with the Action directive (see below)
  390.     #
  391.     # To use <span class="posthilit">CGI</span> scripts outside of ScriptAliased directories:
  392.     # (You will also need to add "ExecCGI" to the "Options" directive.)
  393.     #
  394.     AddHandler <span class="posthilit">cgi</span>-script .<span class="posthilit">cgi</span> .pl
  395.  
  396.     # For type maps (negotiated resources):
  397.     #AddHandler type-map var
  398.  
  399.     #
  400.     # Filters allow you to process content before it is sent to the client.
  401.     #
  402.     # To parse .shtml files for server-side includes (SSI):
  403.     # (You will also need to add "Includes" to the "Options" directive.)
  404.     #
  405.     #AddType text/html .shtml
  406.     #AddOutputFilter INCLUDES .shtml
  407. </IfModule>
  408.  
  409. #
  410. # The mod_mime_magic module allows the server to use various hints from the
  411. # contents of the file itself to determine its type.  The MIMEMagicFile
  412. # directive tells the module where the hint definitions are located.
  413. #
  414. #MIMEMagicFile conf/magic
  415.  
  416. #
  417. # Customizable error responses come in three flavors:
  418. # 1) plain text 2) local redirects 3) external redirects
  419. #
  420. # Some examples:
  421. #ErrorDocument 500 "The server made a boo boo."
  422. #ErrorDocument 404 /missing.html
  423. #ErrorDocument 404 "/<span class="posthilit">cgi</span>-bin/missing_handler.pl"
  424. #ErrorDocument 402 http://localhost/subscription_info.html
  425. #
  426.  
  427. #
  428. # EnableMMAP and EnableSendfile: On systems that support it,
  429. # memory-mapping or the sendfile syscall is used to deliver
  430. # files.  This usually improves server performance, but must
  431. # be turned off when serving from networked-mounted
  432. # filesystems or if support for these functions is otherwise
  433. # broken on your system.
  434. #
  435. #EnableMMAP off
  436. #EnableSendfile off
  437.  
  438. # Supplemental configuration
  439. #
  440. # The configuration files in the conf/extra/ directory can be
  441. # included to add extra features or to modify the default configuration of
  442. # the server, or you may simply copy their contents here and change as
  443. # necessary.
  444.  
  445. # Server-pool management (MPM specific)
  446. #Include conf/extra/httpd-mpm.conf
  447.  
  448. # Multi-language error messages
  449. #Include conf/extra/httpd-multilang-errordoc.conf
  450.  
  451. # Fancy directory listings
  452. #Include conf/extra/httpd-autoindex.conf
  453.  
  454. # Language settings
  455. #Include conf/extra/httpd-languages.conf
  456.  
  457. # User home directories
  458. #Include conf/extra/httpd-userdir.conf
  459.  
  460. # Real-time info on requests and configuration
  461. #Include conf/extra/httpd-info.conf
  462.  
  463. # Virtual hosts
  464. #Include conf/extra/httpd-vhosts.conf
  465.  
  466. # Local access to the <span class="posthilit">Apache</span> HTTP Server Manual
  467. #Include conf/extra/httpd-manual.conf
  468.  
  469. # Distributed authoring and versioning (WebDAV)
  470. #Include conf/extra/httpd-dav.conf
  471.  
  472. # Various default settings
  473. #Include conf/extra/httpd-default.conf
  474.  
  475. # Secure (SSL/TLS) connections
  476. #Include conf/extra/httpd-ssl.conf
  477. #
  478. # Note: The following must must be present to support
  479. #       starting without SSL on platforms with no /dev/random equivalent
  480. #       but a statically compiled-in mod_ssl.
  481. #
  482. <IfModule ssl_module>
  483. SSLRandomSeed startup builtin
  484. SSLRandomSeed connect builtin
  485. </IfModule>
  486.  
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4


Espero me puedan ayudar. Gracias.
elistraus
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-10-31 23:37 @026

Publicidad

Re: Error 500

Notapor explorer » 2011-11-01 08:31 @396

Bienvenido a los foros de Perl en español, elistraus.

Primero, te recomiendo la instalación, en Windows, de un paquete que lo traiga todo junto, como XAMPP para Windows.

Segundo, yo no veo problemas, porque veo que las extensiones .cgi y .pl están definidas para ser ejecutadas como script. Si te sale un error 500, mira a ver el contenido del fichero error.log, para ver si te da más información. Si dice algo de que no encuentra el fichero .pl, asegúrate que está guardado en la misma carpeta reservada para los CGI (líneas 342 a 347). Y si sí está, entonces sí que hay que mirar temas de permisos de ficheros.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error 500

Notapor elistraus » 2011-11-01 11:40 @527

explorer,

Muchas gracias por responder y por darme la bienvenida al foro de Perl en español.

Sobre xampp, no va a poder ser, ya que actualmente tengo funcionando localmente 2 sitios web con 2 bases distintas (MySQL y PostgreSQL), y ahora tengo que trabajar con Oracle, Perl y PHP, y como ya tengo instalado el servidor Apache y PHP, solo quiero ocupar estas dos instalaciones para todos.

Lo segundo, es lo siguiente, la carpeta cgi-bin/ la puse dentro de la carpeta servidor ("C:/servidor/cgi-bin"), donde también está la carpeta "c:/servidor/www", donde están alojados los otros archivos de los dos sitios web... pero al colocar los ficheros .pl o .cgi en la carpeta cgi-bin/, no me deja ni siquiera verlos: me da este error:

"Forbidden,,, You don't have permission to access /cgi-bin/ on this server."

y desde el log

"[Tue Nov 01 13:09:22 2011] [error] [client 127.0.0.1] attempt to invoke directory as script: C:/servidor/cgi-bi/"

Entonces puse los ficheros de prueba dentro de la carpeta www/, el fichero .cgi funciona perfectamente
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!C:\perl\bin\perl.exe -w
  2. print "Content-type: text/html\n\n";
  3. print "<center><h1>HOLA MUNDO!</h1></center>\n";
  4. exit(1);
  5.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

pero el fichero .pl no funciona y me manda el error 500 y el log muestra:

"[Tue Nov 01 13:20:18 2011] [error] [client 127.0.0.1] (OS 2)El sistema no puede encontrar el archivo especificado. : couldn't create child process: 720002: minimo.pl, referer: http://localhost:8080/"

Se me olvidaba decir que ocupé el archivo que ud. creó, el minimo.pl

Por favor, si me puede ayudar estaré muy, pero muy agradecido...

Luis
Saludos
elistraus
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-10-31 23:37 @026

Re: Error 500

Notapor explorer » 2011-11-01 13:49 @617

El primer error dice que no puedes acceder al listado de los contenidos de la carpeta cgi-bin/, lo cual es correcto, por un tema de seguridad. Lo que sí te deja acceder es, de forma directa, a los CGI que hubiera dentro, para ejecutarles.

En cuanto al segundo error, dice que no encuentra ese fichero. Asegúrate que lo llamas de la misma manera que con el .cgi. Por ejemplo, http://localhost:8080/cgi-bin/minimo.pl .
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error 500

Notapor elistraus » 2011-11-01 17:22 @765

Pucha... entonces no sé qué estoy haciendo mal. He hecho toda la configuración como sale en el tutorial http://perlenespanol.com/tutoriales/win ... ndows.html y ya llevo 2 días tratando de ver qué está mal. ¿Será porque a lo mejor es Windows 7...?

Por línea de comando tampoco se me despliega el navegador, solo abre el bloc de notas y me muestra el código .pl.

He buscado en todas partes por la web y no he encontrado a alguien que lo haya solucionado...

A lo mejor me falta algo, alguna librería, no lo sé...

¡¡¡ENTONCES!!!

Correctamente llamo al fichero http://localhost:8080/cgi-bin/minimo.pl

¡¡y me da error 403!!

error.log:
"[Tue Nov 01 19:14:09 2011] [error] [client 127.0.0.1] client denied by server configuration: C:/servidor/cgi-binminimo.pl"

También tengo el fichero dentro de la carpeta www/ y lo llamo http://localhost:8080/www/minimo.pl

¡¡y me da error 500!!

error.log:
"[Tue Nov 01 19:18:36 2011] [error] [client 127.0.0.1] (OS 2)El sistema no puede encontrar el archivo especificado. : couldn't spawn child process: C:/servidor/www/minimo.pl"

OBSERVACIÓN

Me he dado cuenta que el error.log de Apache, la ruta del fichero le falta un slash "/" en el error 403.

Saludos.
elistraus
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-10-31 23:37 @026

Re: Error 500

Notapor explorer » 2011-11-01 18:20 @805

Si le falta una barra, en el error 403, asegúrate que en la barra de dirección la has escrito:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
http://localhost:8080/<span class="posthilit">cgi</span>-bin/minimo.pl
                             ^
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

En cuanto al error 500, te está diciendo que no ha podido ejecutarlo porque en la configuración de Apache, ese directorio no tiene permisos Options +ExecCGI. Por eso, es mejor que dejes los cgi, en su carpeta correspondiente (o cambiar la configuración de Apache, si sabes).

Según el fichero de configuración que has puesto antes, ese directorio es "C:/servidor/cgi-bin/".

Realmente, para que funcione el sistema CGI, solo son necesarios:
  • que se haya cargado el módulo cgi_module en el arranque, algo que sí se ve en el documento, con
    LoadModule cgi_module modules/mod_cgi.so
  • añadir un manejador para los .cgi. Puede ser una línea como esta:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using text Syntax Highlighting
    AddHandler <span class="posthilit">cgi</span>-script .<span class="posthilit">cgi</span> .sh .pl .ida
    Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
    que indica las extensiones que se ejecutarán como CGI, y que también tienes en tu documento
  • opcionalmente, indicar cómo será el directorio que verá el usuario. Tú ya lo tienes:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using text Syntax Highlighting
    ScriptAlias /<span class="posthilit">cgi</span>-bin/ "C:/servidor/<span class="posthilit">cgi</span>-bin/"
    Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
    Con esto decimos que las URL que contengan /cgi-bin/ en su ruta, deben ser desviadas a programas contenidos en el directorio indicado
  • indicar los permisos apropiados en el directorio donde estarán los cgi. Algo como esto:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using text Syntax Highlighting
    <Directory "/usr/lib/<span class="posthilit">cgi</span>-bin/">
        AllowOverride None
        Options ExecCGI FollowSymLinks -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
    Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
    Ahí estamos indicando, aparte de otras cosillas, que lo hay en su interior es ejecutable como CGI (opción ExecCGI) Tú tienes puesto Options All, así que también vale
  • opcionalmente, podemos indicar otro directorio donde podemos colocar más cgi. Por ejemplo:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using text Syntax Highlighting
    <Directory "/home/*/public_html/<span class="posthilit">cgi</span>-bin">
            AllowOverride Options
            Options +ExecCGI
            SetHandler <span class="posthilit">cgi</span>-script
    </Directory>
    Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
    Aquí estamos indicando que todos los directorios cgi-bin/, que estén dentro de las carpetas públicas de todos los usuarios, son ejecutables (ExecCGI) con el protocolo CGI (SetHandler cgi-script)
Esas son todas las opciones que necesita Apache para ejecutar los cgi. El resto, depende del sistema operativo (permisos), de tí, a la hora de colocar los archivos en el sitio correcto, y de los propios programas (en el caso de los hechos en Perl, que sean capaces de encontrar el intérprete perl).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error 500

Notapor elistraus » 2011-11-01 21:21 @931

explorer, muchas gracias por todo el tiempo que te has tomado al responder... he logrado ver los archivos cgi desde c:/servidor/cgi-bin/prueba.cgi . Al menos estoy avanzando.

Pero sigo con el problema de los .pl, pero ahora me arroja el error 500 en la ruta C:/servidor/cgi-bin/minimo.pl y no el 403 que tenía antes...

Seguiré viendo qué tengo mal. A lo mejor es el path de Windows, no sé, pero muchas gracias, de verdad, por prestarme atención. Te pasaste.

¡¡¡Saludos!!!
elistraus
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-10-31 23:37 @026


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron