Copy Link
Add to Bookmark
Report

7 Instalación y Configuracion De Apache + PHP + MySQL + ActivePerl

Instalación y Configuracion De Apache 1.3.24 + PHP 4.2.0 + MySQL 3.23.49 + ActivePerl 5.6.1

eZine's profile picture
Published in 
FIH EziNe
 · 18 Oct 2023

|-----------------------------------------------------------------------------------------------| 
| Instalación y Configuracion De Apache 1.3.24 + PHP 4.2.0 + MySQL 3.23.49 + ActivePerl 5.6.1 |
|-----------------------------------------------------------------------------------------------|
| 20-12-2002 | | el-brujo |
|-----------------------------------------------------------------------------------------------|
| _____ ___ _ _ _____ _ |
| | ___|_ _| | | | | ____|___(_)_ __ ___ |
| | |_ | || |_| | | _| |_ / | '_ \ / _ \ |
| | _| | || _ | | |___ / /| | | | | __/ |
| |_| |___|_| |_| |_____/___|_|_| |_|\___| |
| el-brujo@elhacker.net |
| |
|-----------------------------------------------------------------------------------------------|

Primero nos descargamos los programas.

Descarga Apache
http://www.apache.org/dist/httpd/binaries/win32/apache_1.3.24-win32-x86-src.msi

Descarga PHP
http://www.php.net/do_download.php?download_file=php-4.2.0-Win32.zip

Descarga MysQL
http://www.mysql.com/downloads/download.php?file=Downloads/MySQL-3.23/mysql-3.23.49-win.zip

Descarga Perl
http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.631-MSWin32-x86.msi

1er Paso

Instalar primero el Apache

Doble click en el MSI
Comienza instalación

  • Network Domain --> sino tenemos un dominio pones localhost (luego se puede poner aqui la IP)
  • Server Name --> sino tenemos un dominio pones localhost (luego se puede poner aqui la IP)
  • Mail Adminstrador --> nuestro e-mail

Instalar como un servicio mejor, si es windows 98 sera manual
Instalación por defecto se hace en el directorio:

C:\Archivos de programa\Apache Group\Apache

Ahora necesitamos editar el archivo de configuracion que se encuentra en:

C:\Archivos de programa\Apache Group\Apache\conf\httpd.conf

Lo editamos con cualquier editor de texto

Y vamos a añadir el PHP:

Instalar PHP

Abrimos el ZIP del PHP y lo descomprimimos en la carpeta c:\PHP, o cualquier otra, pero mejor corta, para que no se haga la picha un lio con la ruta del PHP Nos crea la ruta C:\php\php-4.2.0-Win32, y tampoco me mola, asi que copio lo que hay dentro de php-4.2.0-Win32 y lo meto en c:\PHP y luego borro la carpeta php-4.2.0-Win32 Y ahora hay que coger el php4ts.dll y copiarlo al directorio de Windows/System (en el 9x) o Winnt/System32 (NT,2000,XP).Este archivo se encuentra en C:\php\php4ts.dll Si hay otro archivo en c:\Windows\System lo remplazamos, y si nos nos deja, cerrar el apache.

El siguiente paso es configurar el php.ini
- renombrar o copiar php.ini-dist a php.ini
[para poder obtener los variables de post y get, como en mi caso, editar la lineas register_globals=On (esta en Off por defecto)]y copiarlo( php.ini) a C:\windows Una vez instalado el PHP vamos a decirle al Apache que tenemos el php!!

El PHP se puede instalar de dos maneras, como un módulo del Apache o como un script, lo mejor es como un modulo, asi que lo haremos asi:
Abrimos el httpd.conf y buscamos "Dynamic Shared Object (DSO) Support", que es donde se cargan los modulos:

Hasta tenemos un ejemplo:

# Example: 
# LoadModule foo_module modules/mod_foo.so

Y añadimos en la primera linea:

LoadModule php4_module c:/php/sapi/php4apache.dll

De tal manera que tiene que quedar asi:

LoadModule php4_module c:/php/sapi/php4apache.dll

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

Ahora seguimos bajando por el httpd.conf y llamamos al modulo AddModule mod_php4.c
De tal manera que quede asi:

ClearModuleList 
AddModule mod_php4.c

Vale, ahora bucamos en el httpd.conf el modulo mod_dir.c
Y nos sale esto:

<IfModule mod_dir.c> 
DirectoryIndex index.html
</IfModule>

Y le añadimos esta linea

AddType application/x-httpd-php .php

Tiene que quedar asi:

<IfModule mod_dir.c> 
DirectoryIndex index.html
AddType application/x-httpd-php .php
</IfModule>

Lo guardamos y reiniciamos el apache, no el ordenador.
Podemos hacer una pagina info.php que dentro contenga <? phpinfo(); ?> y luego visualizar esta pagina para ver si se instalado correctamente.

Ahora vamos a instalar el MySQL 3.23.49

LLeva un setup muy majo, asi que por defecto se instala en C:\Mysql, aunque si esto se cambia luego hay que cambiar un archivo.
Este archivo es el C:\MY.CNF o hacer un my.ini en la carpeta windows y decirle la ruta exacta:

[mysqld] 
basedir=E:/ruta-del-php/
datadir=E:/ruta-del-php/data

Ahora solo hay que llamar al winmysqladmin.exe que esta en C:\mysql\bin
Si el semaforo se pone en verde, pefecto, sino pues algo ha fallado.

Y para instalar el Active Perl, también lleva un setup y no hay que hacer nada de especial.
Simplemente decirle la ruta del perl en el httpd.conf

#!c:/program files/perl/perl.exe

Esto es la instalación básica.
Ahora vamos a ver un poco con profundidad todas las opciones de configuración:

Archivos que necesitamos:

httpd.conf de la carpeta conf del apache php.ini de c:\Windows para configurar el PHP

Opciones del Apache httpd.conf

Básico:

# = Linea comentada, por lo tanto el apache no la coge 
# Dynamic Shared Object (DSO) Support --> Aquí se cargan los módulos de apache

Ejemplo:

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

LoadModule Nombre Ruta

Como ya hemos dicho antes, para carga el PHP:
LoadModule php4_module f:/php/sapi/php4apache.dll

Despues de hacer el LoadModule necesitas cargarlo con el AddModule

  • ClearModuleList
  • AddModule mod_php4.c

Configuración general

ServerRoot "C:/Archivos de programa/Apache Group/Apache" --> donde esta instalado el Apache, y de donde cuelgan las demas carpetas

PidFile logs/httpd.pid --> por si cerramos el apache mal nos lo guarda aqui

Timeout 300 --> contra mas grande sea, el apache no dara mensaje de timeout aunque tarde mucho en cargar una pagina

MaxKeepAliveRequests 0 --> mejor ponerlo a 0 para ponerlo ilimitado

KeepAliveTimeout 15 --> Numero de segundos que se tiene que esperar un cliente para enviar otra peticion (mejor ponerlo bajo)

MaxRequestsPerChild 0 --> 0 para ilimitado

Port 80 --> puerto por defecto del apache y de cualquier servidor web

ServerAdmin alex@elhacker.net --> tu email

ServerName localhost --> tu ip, o mejor localhost sino tienes ip fija.

DocumentRoot "C:/web" --> donde tienes la web, es decir las paginas que quieres que se vean en el navegador.

<Directory /> 
Options FollowSymLinks
AllowOverride None
</Directory>

--> esto sirve para decirle que el Document Root (/) o sea c:/web no nos enseñe las carpetas ni su contenido, sino que coge el archivo que le decimos en directory index (luego lo veremos)

Si queremos que nos liste el contenido hay que comentarlo

#<Directory /> 
# Options FollowSymLinks
# AllowOverride None
#</Directory>

Para que esto se entienda pongo un ejemplo:

Podemos "proteger" la carpeta images (tenemos que tener c:/web/images) para que cuando alguien escriba http://localhost/images) no le muestre el contenido de esa carpeta (sale un Permission Denied), pero eso no quiere decir que las imagenes que estan en ses directorio no vayan a ser visible, si hacemos http://localhost/images/banner.gif si nos enseña el banner.

Ejemplo:

<Directory /images> 
Options FollowSymLinks
AllowOverride None
</Directory>

Options FollowSymLinks --> se trata de permitir enlaces simbólicos, o sea si un directorio tiene tales permisos, los siguientes heredan las misma configuración.

Haz pruebas para ver la diferencia porque no me he explicado muy bien...

<Directory "C:/Archivos de programa/Apache Group/Apache/htdocs"> --> escribe aqui lo mismo que en el document root

<IfModule mod_dir.c> 
DirectoryIndex index.html index.php default.htm
AddType application/x-httpd-php .php
</IfModule>

Se pueden ir añadiendo una al lado de otra: index.php index.php3 ,etc o una debajo de otra

  • index.php
  • index.php3

En DirectoryIndex se definen las paginas que cogera por defecto, es decir:

Si existe c:/web/index.html nos coge por defecto esa pagina, asi que no hace falta poner http://localhost/index.html, sino que basta con poner http://localhost
(que nos llevara a index.html)
Y lo mismo pasa si hay carpetas, directorios, si en c:/web/pruebas/ hay un archivo llamado index.html nos coge ese por defecto

AddType application/x-httpd-php .php --> esto sirve para que interprete las paginas PHP

AddType application/x-httpd-php .php3 --> si tenemos PHP3

AccessFileName .htaccess --> esto es una opcion muy buena que tiene el apache que en un archivo .htaccess podemos configurar varias cosas, como si fuera el httpd.conf

Primero de todo:

<Files .htaccess> 
Order allow,deny
deny from all
</Files>

O mejor aún:

<Files ~ "^\.ht"> 
Order allow,deny
Deny from all
Satisfy All
</Files>

Luego le podemos decir al htaccess

ErrorDocument 404 /notfound.html

También se le puede decir un directory index:

DirectoryIndex filename.html

Si queremos que un cgi se ejecute automáticamente:

DirectoryIndex /cgi-local/index.pl

También podemos utilizar la autentificación con HTTP con el Apache:

AuthUserFile "ruta"

<Limit GET> 
requiere user login juan
</Limit>

ErrorLog logs/error.log --> para que logee los errores en la carpeta logs del apache

#CustomLog logs/access.log combined --> guarda los accesos a la web en diferentes formato

#!c:/program files/perl/perl.exe --> aqui escribimos la ruta del perl, como que windows no lleva perl por defecto, deberemos bajarnos algun paquete, como Active Perl y aqui ponerle la ruta al perl.exe

Apache acepta Alias, y eso significa que podemos coger cualquier carpeta de nuestro ordenador y hacerla visible sin necesidad de que esa carpeta este en documentRoot.

Me explico:

Si tenemos una carpeta con documentos en d:/documentos, y el documentRoot esta en c:/web, esa carpeta a priori no es visible, pero podemos hacer lo siguiente:

Alias /documentos/ "d:/documentos"

Y luego la protegemos:

<Directory "d:/documentos"> 
Options FollowSymLinks
AllowOverride None
</Directory>

A partir de este momento en http://localhost/documentos tendremos el contenido de d:/documentos Podemos crear tantos alias como queramos.
Más cosas. Imáginemos que tenemos archivos .bak que no queremos que la gente los pueda ver, basta con decirle esto:

<Files ~ "/.bak$"> 
Order allow,deny
Deny from all
</Files>

ScriptAlias /cgi-bin/ "C:/Archivos de programa/Apache Group/Apache/cgi-bin/" --> Aqui definimos donde tendremos nuestros cgi's, no es mas que un alias pero con permisos especiales para ejecutar

<Directory "C:/Archivos de programa/Apache Group/Apache/cgi-bin"> 
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

Importante poner esas opciones para proteger el directorio cgi-bin de miradas curiosas. Dento de la carpeta C:/Archivos de programa/Apache Group/Apache/cgi-bin tenemos que meter los cgis o pl, y luego en el navegador se accede con http://localhost/cgi-bin/ También se le puede decir al Apache que cualquier cgi que vea, este dentro del ScriptAlias o no, lo ejecute, esto no es recomendable, pero por si acaso basta con decirle esto:

AddHandler cgi-script .cgi

También se le puede decir al apache que una página shtml la interprete como SSI (Server Side Includes):

AddHandler server-parsed .shtml

<IfModule mod_negotiation.c> 
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
</IfModule>

Propiedades del lenguaje, asi que mejor poner es al principio del todo:

LanguagePriority es en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca sv tw

ErrorDocument --> Tipos de errores.

  • 200 OK
  • 206 Partial content
  • 301 Document moved permanently
  • 302 Document found elsewhere
  • 304 Not modified since last retrieval
  • 400 Bad request
  • 403 Access forbidden
  • 404 Document not found
  • 408 Request timeout
  • 500 Internal server error
  • 501 Request type not supported

Por ejemplo:

El error 404 es cuando un servidor no encuentra una pagina.
Pues podemos hacer que cuando haya un 404 nos lleve a una pagina:

ErrorDocument 404 /error.htm

Y en la pagina error.htm pues escribimos lo que queramos, es un html normal. Asi que cuando escribamos http://localhost/lo_que_sea, si lo_que_sea no existe, ya sea carpeta, html, zip, etc nos llevara automaticamente a la pagina error.htm

El 505 es cuando del servidor falla

Los directorios server-estatus y server-info están comentados por defectos y mejor dejarlos así sino sabes lo que tocas. Pero si lo descomentas asegurate de poner el allow from bien, es decir localhost o tu ip.

#<Location /server-info> 
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from localhost
#</Location>

#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from localhost
#</Location>

También se le puede decir al apache que cuando vaya a http://localhost/~juan/ apunte al directorio ~juan/public_html

Ejemplo:

UserDir public_html 

<Directory /home/*/public_html>
Opciones, etc
</Directory>

Otra cosa excelente es que el Apache puede alojar varias webs y esto se hace con el VirtualHost

Por ejemplo:

Tenemos el apache y queremos alojar nuestra web y la de un amigo:

El amigo compra el dominio pepe.com y apunta las dns a nuestra maquina

Nosotros tenemos que decirle a nuestra maquina esto:

<VirtualHost *> 
ServerAdmin amigo@pepe.com
DocumentRoot /web/amigo_pepe/
ServerName pepe.com
ErrorLog logs/web_amigo_pepe_errpr
CustomLog logs/web_amigo_pepe_log common
</VirtualHost>

Asi en nuestro ordenador tendremos nuestra web en c:/web y la de nuestro amigo, y las dos estaran en la misma IP y en el mismo servidor web.

El apache también puede hacer de proxy, esta opción por defecto está desactivada, pero veremos como configurar el Apache como proxy.

Primero tiene que estar el módulo mod_proxy.c cargado en el Dynamic Shared Object (DSO)

#<IfModule mod_proxy.c> 

# <Directory proxy:*>
# Order deny,allow
# Deny from all
# Allow from ip
# </Directory>

PHP

Editaremos el Archivo php.ini

; Resource Limits ;

  • max_execution_time = 30 --> máximo tiempo de ejecución de un script php. Si en 30 segunos no obtiene respuesta el script se para.
  • memory_limit = 8M --> pos eso

; File Uploads ;

Si queremos enviar ficheros al servidor, aqui lo podemos decir:

  • file_uploads = On --> si queremos o no queremos
  • upload_tmp_dir = F:\webs\public --> el directorio donde se copiaran los archivos que nos suban
  • upload_max_filesize = 1M --> el tamaño maximo que queremos que nos envien.

Bueno instalarlo en Linux, no cambio mucho las rutas:

/usr/local/apache en vez de c:\Archivos de Programas

Te bajas el Apache:

./configure 
make
make install

El php:

./configure --with-mysql --with-/usr/local/apache/bin/apxs

ya esta.

Alex B.
webmaster de elhacker.net

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT