Difference between revisions of "Apache HTTP Server (Español)"

From ArchWiki
Jump to: navigation, search
(/ actualizando artículo */)
m
(17 intermediate revisions by 13 users not shown)
Line 1: Line 1:
[[Category:Daemons y servicios del sistema (Español)]]
+
[[Category:Web Server (Español)]]
[[Category:CÓMOs (Español)]]
+
[[cs:LAMP]]
 +
[[de:LAMP Installation]]
 +
[[el:LAMP]]
 +
[[en:LAMP]]
 +
[[fr:Lamp]]
 +
[[it:LAMP]]
 +
[[pl:LAMP]]
 +
[[ru:LAMP]]
 +
[[sr:LAMP]]
 +
[[tr:LAMP]]
 +
[[zh-CN:LAMP]]
 +
[[Wikipedia:LAMP |LAMP]], es el acrónimo para referirse a un conjunto de software, utilizado para ejecutar sitios web dinámicos o servicios.
  
{{i18n_links_start}}
+
* '''L'''inux refiriendose al sistema operativo, en este caso Arch Linux claro;
{{i18n_entry|English|LAMP}}
+
{{i18n_entry|Español|LAMP (Español)}}
+
{{i18n_entry|Italiano|LAMP (Italiano)}}
+
{{i18n_entry|Русский|LAMP (Русский)}}
+
{{i18n_entry|Česky|LAMP_(Česky)}}
+
{{i18n_entry|简体中文|LAMP(简体中文)}}
+
{{i18n_links_end}}
+
 
+
LAMP, es el acrónimo para referirse a un conjunto de software, utilizado para ejecutar sitios web dinámicos o servicios.
+
 
+
* '''L'''inux refiriendose al sistema operativo, en este caso Arch Linux ;);
+
 
* '''A'''pache, el servidor Web;
 
* '''A'''pache, el servidor Web;
* '''M'''ySQL, el sistema administrador de base de datos;
+
* '''M'''ySQL/'''M'''ariaDB, el sistema administrador de base de datos;
 
* '''P'''HP u otros, p.e. Perl, Python.
 
* '''P'''HP u otros, p.e. Perl, Python.
  
Line 21: Line 21:
 
===Apache, PHP, y MySQL===
 
===Apache, PHP, y MySQL===
  
Este documento describe como configurar el servidor web Apache en un sistema Arch Linux. Además explica como, opcionalmente, instalar PHP y MySQL e integrarlos con Apache.
+
Este documento describe como configurar el servidor web Apache en un sistema Arch Linux. Además explica como, opcionalmente, instalar PHP y [[MariaDB]] e integrarlos con Apache.
  
 
====Instalar Paquetes====
 
====Instalar Paquetes====
  <pre>
 
  # pacman -Sy apache php mysql</pre>
 
  
 
Si lo desea, puede instalar Apache/PHP/MySQL por separado. Este documento asume que instalará
 
Si lo desea, puede instalar Apache/PHP/MySQL por separado. Este documento asume que instalará
 
los tres, pero si lo desea, puede realizar cualquiera de las secciones que apliquen al software instalado.
 
los tres, pero si lo desea, puede realizar cualquiera de las secciones que apliquen al software instalado.
 +
 +
# pacman -S apache php php-apache mariadb
  
 
====Configurar Apache====
 
====Configurar Apache====
 
* Añada la siguiente línea a <code>/etc/hosts</code> (Si el archivo no existe deberá crearlo)
 
* Añada la siguiente línea a <code>/etc/hosts</code> (Si el archivo no existe deberá crearlo)
  <pre>127.0.0.1  localhost.localdomain  localhost</pre>
 
  
{{Box Note|Si desea un hostname diferente, añádalo al final de la línea:}}
+
127.0.0.1  localhost.localdomain  localhost
  
  <pre>127.0.0.1  localhost.localdomain  localhost myhostname</pre>
+
{{Note|Si desea un hostname diferente, añádalo al final de la línea:}}
 +
 
 +
127.0.0.1  localhost.localdomain  localhost myhostname
  
 
* Edite <code>/etc/rc.conf</code>. Si define un hostname en el paso anterior,
 
* Edite <code>/etc/rc.conf</code>. Si define un hostname en el paso anterior,
 
la variable HOSTNAME debe ser igual. Si no, deje solamente "localhost":
 
la variable HOSTNAME debe ser igual. Si no, deje solamente "localhost":
  <pre>
+
 
  #
+
#
  # Networking
+
# Networking
  #
+
#
  HOSTNAME="localhost"</pre>
+
HOSTNAME="localhost"
  
 
* Comentar un modulo en el archivo de configuración de Apache
 
* Comentar un modulo en el archivo de configuración de Apache
  <pre>
 
  # nano /etc/httpd/conf/httpd.conf</pre>
 
  
  <pre>
+
# nano /etc/httpd/conf/httpd.conf
  LoadModule unique_id_module        modules/mod_unique_id.so</pre>
+
 
 +
LoadModule unique_id_module        modules/mod_unique_id.so
 +
 
 
en
 
en
  <pre>
+
 
  #LoadModule unique_id_module        modules/mod_unique_id.so</pre>
+
#LoadModule unique_id_module        modules/mod_unique_id.so
  
 
* Ejecute en una terminal (como root):
 
* Ejecute en una terminal (como root):
  <pre># /etc/rc.d/httpd start</pre>
+
 
 +
# /etc/rc.d/httpd start
  
 
*  Apache debería ahora estar corriendo. Verifíquelo visitando http://localhost/ en un navegador web. Debería ver una página simple página de prueba de Apache.
 
*  Apache debería ahora estar corriendo. Verifíquelo visitando http://localhost/ en un navegador web. Debería ver una página simple página de prueba de Apache.
  
 
* Edite <code>/etc/rc.conf</code> (para iniciar Apache en el arranque):
 
* Edite <code>/etc/rc.conf</code> (para iniciar Apache en el arranque):
  <pre>DAEMONS=(... varios daemons ... httpd)</pre>
+
 
 +
DAEMONS=(... varios daemons ... httpd
 +
 
 
'''O''' añada esta línea a <code>rc.local</code>:
 
'''O''' añada esta línea a <code>rc.local</code>:
  <pre>/etc/rc.d/httpd start</pre>
+
 
 +
/etc/rc.d/httpd start
  
 
* Si quiere activar los directorios de usuario (p.e. <code>~/public_html</code> en la máquina es accesible como http://localhost/~usuario/) para estar disponibles en la web, descomente las siguientes líneas en <code>/etc/httpd/conf/extra/httpd-userdir.conf</code>:
 
* Si quiere activar los directorios de usuario (p.e. <code>~/public_html</code> en la máquina es accesible como http://localhost/~usuario/) para estar disponibles en la web, descomente las siguientes líneas en <code>/etc/httpd/conf/extra/httpd-userdir.conf</code>:
  
  <pre>UserDir public_html</pre>
+
UserDir public_html
 +
 
 
y
 
y
  <pre>
+
 
  <Directory /home/*/public_html>
+
<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit Indexes
+
  AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI
+
  Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI
    <Limit GET POST OPTIONS PROPFIND>
+
  <Limit GET POST OPTIONS PROPFIND>
      Order allow,deny
+
    Order allow,deny
      Allow from all
+
    Allow from all
    </Limit>
+
  </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
+
  <LimitExcept GET POST OPTIONS PROPFIND>     Order deny,allow
      Order deny,allow
+
    Deny from all
      Deny from all
+
  </LimitExcept>
    </LimitExcept>
+
</Directory>
  </Directory></pre>
+
  
 
Asegúrese de que Apache pueda ingresar al directorio home del usuario colocando los permisos correspondientes. El directorio del usuario y el directorio <code>~/public_html/</code> debe ser ejecutable para los otros ("el resto del mundo"). Esto sería suficiente:
 
Asegúrese de que Apache pueda ingresar al directorio home del usuario colocando los permisos correspondientes. El directorio del usuario y el directorio <code>~/public_html/</code> debe ser ejecutable para los otros ("el resto del mundo"). Esto sería suficiente:
  
  <pre>
+
$ chmod o+x ~
  $ chmod o+x ~
+
$ chmod o+x ~/public_html
  $ chmod o+x ~/public_html</pre>
+
  
 
Existen algunas otras formas, más seguras de colocar los permisos mediante la creación de un grupo especial y permitiendo sólo al usuario Apache y otros requeridos entrar ahí... Dependiendo del nivel paranoico que se tenga.
 
Existen algunas otras formas, más seguras de colocar los permisos mediante la creación de un grupo especial y permitiendo sólo al usuario Apache y otros requeridos entrar ahí... Dependiendo del nivel paranoico que se tenga.
Line 97: Line 101:
 
El puerto que Apache utiliza para escuchar peticiones. Para el acceso a internet con router,
 
El puerto que Apache utiliza para escuchar peticiones. Para el acceso a internet con router,
 
se debe redireccinar a ese puerto.
 
se debe redireccinar a ese puerto.
  <pre># Listen 80</pre>
+
# Listen 80
  
 
Este es el correo electrónico del administrador que puede ser encontrado en las páginas de error por ejemplo.
 
Este es el correo electrónico del administrador que puede ser encontrado en las páginas de error por ejemplo.
  <pre># ServerAdmin sample@sample.com</pre>
+
# ServerAdmin sample@sample.com
  
 
Este es el directorio donde se podrían colocar las páginas web.
 
Este es el directorio donde se podrían colocar las páginas web.
  <pre># DocumentRoot "/home/httpd/html"</pre>
+
# DocumentRoot "/home/httpd/html"
  
 
Si se cambia el directorio raíz (DocumentRoot) no se debe olvidar cambiar el siguiente elemento.
 
Si se cambia el directorio raíz (DocumentRoot) no se debe olvidar cambiar el siguiente elemento.
  <pre># <Directory "/home/httpd/html"></pre>
+
# <Directory "/home/httpd/html">
  
 
====Configurar PHP====
 
====Configurar PHP====
Line 112: Line 116:
  
 
* Descomente esta línea en <code>/etc/httpd/conf/httpd.conf</code>
 
* Descomente esta línea en <code>/etc/httpd/conf/httpd.conf</code>
  <pre>#LoadModule php5_module modules/libphp5.so</pre>
+
#LoadModule php5_module modules/libphp5.so
  
 
* Para PHP5 los archivos manejadores ya están configurados
 
* Para PHP5 los archivos manejadores ya están configurados
  <pre>
+
 
  #
+
#
  # DirectoryIndex: sets the file that Apache will serve if a directory
+
# DirectoryIndex: sets the file that Apache will serve if a directory
  # is requested.
+
# is requested.
  #
+
#
  <IfModule dir_module>
+
<IfModule dir_module>
      <IfModule mod_php5.c>
+
    <IfModule mod_php5.c>
          DirectoryIndex index.php index.html
+
        DirectoryIndex index.php index.html
          AddType application/x-httpd-php .php
+
        AddType application/x-httpd-php .php
          AddType application/x-httpd-php-source .phps
+
        AddType application/x-httpd-php-source .phps
      </IfModule>
+
    </IfModule>
      DirectoryIndex index.html
+
    DirectoryIndex index.html
  </IfModule></pre>
+
</IfModule>
  
 
* Recordad agregar un archivo manejador para .phtml si es necesario:
 
* Recordad agregar un archivo manejador para .phtml si es necesario:
  <pre>DirectoryIndex index.php index.phtml index.html</pre>
+
 
 +
DirectoryIndex index.php index.phtml index.html
  
 
* Si se desea el módulo libGD, edite <code>/etc/php/php.ini</code> y descomente la siguiente línea (''quitando el ;''):
 
* Si se desea el módulo libGD, edite <code>/etc/php/php.ini</code> y descomente la siguiente línea (''quitando el ;''):
  <pre>;extension=gd.so</pre>
+
 
 +
;extension=gd.so
  
 
* Si el DocumentRoot está fuera de <code>/home/</code>, agergarlo
 
* Si el DocumentRoot está fuera de <code>/home/</code>, agergarlo
 
en la variable <code>open_basedir</open> en el archivo <code>/etc/php/php.ini</code> como:
 
en la variable <code>open_basedir</open> en el archivo <code>/etc/php/php.ini</code> como:
  <pre>open_basedir = /home/:/tmp/:/usr/share/pear/:/ruta/al/documentroot</pre>
+
 
 +
open_basedir = /home/:/tmp/:/usr/share/pear/:/ruta/al/documentroot
  
 
* Reinicie el servidor Apache para que los cambios tengan efecto (como root):
 
* Reinicie el servidor Apache para que los cambios tengan efecto (como root):
  <pre># /etc/rc.d/httpd restart</pre>
+
# /etc/rc.d/httpd restart
  
 
* Pruebe PHP con un simple, pero muy informativo script:
 
* Pruebe PHP con un simple, pero muy informativo script:
  <pre>
+
<html>
  <html>
+
<head>
  <title>Este es Arch Linux, ejecutando PHP.</title>
+
  <title>Este es Arch Linux, ejecutando PHP.</title>
  <body>
+
</head>
  <p>
+
<body>
  <?php
+
<p>
    phpinfo();
+
<?php
  ?>
+
  phpinfo();
  </p>
+
?>
  </body>
+
</p>
  </html></pre>
+
</body>
 +
</html>
  
Guarde este archivo como <code>test.php</code> y copielo en <code>/home/httpd/html/</code> o en <code>~/public_html</code> si lo permitió en la configuración.
+
Guarde este archivo como <code>test.php</code> y copielo en <code>/srv/http/html/</code> o en <code>~/public_html</code> si lo permitió en la configuración.
  
 
* Pruebe PHP en http://localhost/test.php o en http://localhost/~usuario/test.php
 
* Pruebe PHP en http://localhost/test.php o en http://localhost/~usuario/test.php
 +
 +
'''Si continua teniendo problemas''', edite su archivo /etc/httpd/conf/httpd.conf con la siguiente información
 +
 +
* Edite su archivo httpd.conf
 +
nano /etc/httpd/conf/httpd.conf
 +
 +
* Bajo <IfModule mime_module>
 +
AddType application/x-httpd-php .php
 +
AddType application/x-httpd-php-source .phps
 +
 +
* Reinicie Apache
 +
# /etc/rc.d/httpd restart
 +
 +
Si después de esto el servidor no le ejecuta los scripts php añada la línea
 +
 +
LoadModule php5_module modules/libphp5.so
 +
 +
Justo antes de empezar el bloque de LoadModule ......
 +
 +
* Reinicie Apache
 +
 +
# /etc/rc.d/httpd restart
 +
 +
Asegúrese de probar de nuevo la página para verificar que funciona correctamnente (como se vio anteriormente)
  
 
====Configurar el soporte para MySQL====
 
====Configurar el soporte para MySQL====
 +
{{out of date}}
 
Haga ésto sólo si quiere activar el soporte para MySQL. Configure previamente MySQL
 
Haga ésto sólo si quiere activar el soporte para MySQL. Configure previamente MySQL
 
en los pasos descritos de [[MySQL|MySQL]]
 
en los pasos descritos de [[MySQL|MySQL]]
  
 
* Edite <code>/etc/php/php.ini</code> y descomente la siguiente línea (''quitando el ;''):
 
* Edite <code>/etc/php/php.ini</code> y descomente la siguiente línea (''quitando el ;''):
  <pre>;extension=mysql.so</pre>
+
 
 +
;extension=mysql.so
 +
;extension=mysqli.so
  
 
* Si no ha configurado una contraseña de root para MySQL (en una terminal, como root):
 
* Si no ha configurado una contraseña de root para MySQL (en una terminal, como root):
  <pre># mysqladmin -u root password 'roots_password'</pre>
+
 
 +
# mysqladmin -u root password 'roots_password'
  
 
* Se pueden agregar usuarios con menos privilegios, para los scripts que desee ejecutar, editando las tablas que se encuentran en la base de datos <code>mysql</code>. Deberá reiniciar el servicio para que los cambios tomen efecto.
 
* Se pueden agregar usuarios con menos privilegios, para los scripts que desee ejecutar, editando las tablas que se encuentran en la base de datos <code>mysql</code>. Deberá reiniciar el servicio para que los cambios tomen efecto.
Line 177: Line 213:
 
Si se esta en este problema, asegurarse de agregar lo siguiente en el archivo <code>/etc/hosts.allow</code>:
 
Si se esta en este problema, asegurarse de agregar lo siguiente en el archivo <code>/etc/hosts.allow</code>:
  
  <pre>
+
# mysqld : ALL : ALLOW
  # mysqld : ALL : ALLOW
+
# mysqld-max : ALL : ALLOW
  # mysqld-max : ALL : ALLOW
+
# y similar para otros daemons de MySQL.
  # y similar para otros daemons de MySQL.</pre>
+
  
{{Box Note|Los ejemplos anteriores son un caso simplista, diciendole a tcpd que permita todas las conexiones desde cualquier lugar. Se debe utilizar una selección más apropiada de fuentes permitidas en lugar de '''ALL'''. Sólo asegurese que localhost y la dirección IP (númerica o de DNS) de la interáz por la cuál se realice la conexión este especificada.}}
+
{{Note|Los ejemplos anteriores son un caso simplista, diciendole a tcpd que permita todas las conexiones desde cualquier lugar. Se debe utilizar una selección más apropiada de fuentes permitidas en lugar de '''ALL'''. Sólo asegurese que localhost y la dirección IP (númerica o de DNS) de la interáz por la cuál se realice la conexión este especificada.}}
  
 
* Podría también ser necesario editar el archivo <code>/etc/my.cnf</code> y comentar la siguiente línea como sigue:
 
* Podría también ser necesario editar el archivo <code>/etc/my.cnf</code> y comentar la siguiente línea como sigue:
  <pre># skip-networking</pre>
+
 
 +
  # skip-networking
  
 
====Configurar PHPMyAdmin====
 
====Configurar PHPMyAdmin====
Line 191: Line 227:
  
 
* Instale el paquete
 
* Instale el paquete
  <pre>
+
 
  # pacman -S phpmyadmin</pre>
+
# pacman -S phpmyadmin
  
 
* Edite el archivo de configuración para adaptarlo a sus necesidades: <code>/home/httpd/html/phpMyAdmin/config.inc.php</code>
 
* Edite el archivo de configuración para adaptarlo a sus necesidades: <code>/home/httpd/html/phpMyAdmin/config.inc.php</code>
  
 
Inserte la cadena correspondiente a la variable PmaAbsoluteUri para que sea parecida a:
 
Inserte la cadena correspondiente a la variable PmaAbsoluteUri para que sea parecida a:
<pre>$cfg[['PmaAbsoluteUri']] = 'http://>hostname</phpMyAdmin/';</pre>
+
 
 +
<nowiki>$cfg[['PmaAbsoluteUri']] = 'http://>hostname</phpMyAdmin/';</nowiki>
  
 
Rellene la información de su servidor MySQL. En PHPMyAdmin, se pueden definir multiples servidores en el arreglo 'Servers'. Para acceder a su base de datos MySQL, tiene que editar la primera entrada; puede ignorar las demás.
 
Rellene la información de su servidor MySQL. En PHPMyAdmin, se pueden definir multiples servidores en el arreglo 'Servers'. Para acceder a su base de datos MySQL, tiene que editar la primera entrada; puede ignorar las demás.
Line 203: Line 240:
 
En un sistema normal sólo tendría que asignar el auth_type a http. Esto hace que PHPMyAdmin use el usuario y contraseñas ingresados por el navegador web para acceder al servidor de bases de datos, de esa manera, no se pueden realizar acciones que no estén permitidas para dicho usuario del servidor MySql.
 
En un sistema normal sólo tendría que asignar el auth_type a http. Esto hace que PHPMyAdmin use el usuario y contraseñas ingresados por el navegador web para acceder al servidor de bases de datos, de esa manera, no se pueden realizar acciones que no estén permitidas para dicho usuario del servidor MySql.
  
<pre>
+
<nowiki>$cfg[['Servers']][[$i]][['auth_type']]    = 'http';</nowiki>
$cfg[['Servers']][[$i]][['auth_type']]    = 'http';</pre>
+
  
 
'''Advertencia:''' otros métodos de autorización o el escribir contraseñas directamente en este archivo puede comprometer la seguridad de la base de datos. Por defecto, este archivo es legible para todo el mundo, por lo que es conveniente restringirlo.
 
'''Advertencia:''' otros métodos de autorización o el escribir contraseñas directamente en este archivo puede comprometer la seguridad de la base de datos. Por defecto, este archivo es legible para todo el mundo, por lo que es conveniente restringirlo.
  
* Para usar PHPMyAdmin dirigir el navegador web a <pre>http://>hostname</phpMyAdmin/</pre>
+
* Para usar PHPMyAdmin dirigir el navegador web a:
 +
 
 +
http://>hostname</phpMyAdmin/

Revision as of 11:45, 11 March 2014

LAMP, es el acrónimo para referirse a un conjunto de software, utilizado para ejecutar sitios web dinámicos o servicios.

  • Linux refiriendose al sistema operativo, en este caso Arch Linux claro;
  • Apache, el servidor Web;
  • MySQL/MariaDB, el sistema administrador de base de datos;
  • PHP u otros, p.e. Perl, Python.


Apache, PHP, y MySQL

Este documento describe como configurar el servidor web Apache en un sistema Arch Linux. Además explica como, opcionalmente, instalar PHP y MariaDB e integrarlos con Apache.

Instalar Paquetes

Si lo desea, puede instalar Apache/PHP/MySQL por separado. Este documento asume que instalará los tres, pero si lo desea, puede realizar cualquiera de las secciones que apliquen al software instalado.

# pacman -S apache php php-apache mariadb

Configurar Apache

  • Añada la siguiente línea a /etc/hosts (Si el archivo no existe deberá crearlo)
127.0.0.1  localhost.localdomain   localhost
Note: Si desea un hostname diferente, añádalo al final de la línea:
127.0.0.1  localhost.localdomain   localhost myhostname
  • Edite /etc/rc.conf. Si define un hostname en el paso anterior,

la variable HOSTNAME debe ser igual. Si no, deje solamente "localhost":

#
# Networking
#
HOSTNAME="localhost"
  • Comentar un modulo en el archivo de configuración de Apache
# nano /etc/httpd/conf/httpd.conf
LoadModule unique_id_module        modules/mod_unique_id.so

en

#LoadModule unique_id_module        modules/mod_unique_id.so
  • Ejecute en una terminal (como root):
# /etc/rc.d/httpd start
  • Apache debería ahora estar corriendo. Verifíquelo visitando http://localhost/ en un navegador web. Debería ver una página simple página de prueba de Apache.
  • Edite /etc/rc.conf (para iniciar Apache en el arranque):
DAEMONS=(... varios daemons ... httpd

O añada esta línea a rc.local:

/etc/rc.d/httpd start
  • Si quiere activar los directorios de usuario (p.e. ~/public_html en la máquina es accesible como http://localhost/~usuario/) para estar disponibles en la web, descomente las siguientes líneas en /etc/httpd/conf/extra/httpd-userdir.conf:
UserDir public_html

y

<Directory /home/*/public_html>
  AllowOverride FileInfo AuthConfig Limit Indexes
  Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI
  <Limit GET POST OPTIONS PROPFIND>
    Order allow,deny
    Allow from all
  </Limit>
  <LimitExcept GET POST OPTIONS PROPFIND>      Order deny,allow
    Deny from all
  </LimitExcept>
</Directory>

Asegúrese de que Apache pueda ingresar al directorio home del usuario colocando los permisos correspondientes. El directorio del usuario y el directorio ~/public_html/ debe ser ejecutable para los otros ("el resto del mundo"). Esto sería suficiente:

$ chmod o+x ~
$ chmod o+x ~/public_html

Existen algunas otras formas, más seguras de colocar los permisos mediante la creación de un grupo especial y permitiendo sólo al usuario Apache y otros requeridos entrar ahí... Dependiendo del nivel paranoico que se tenga.

Opciones adicionales

Estas opciones en /etc/httpd/conf/httpd.conf pueden ser de interés:

El puerto que Apache utiliza para escuchar peticiones. Para el acceso a internet con router, se debe redireccinar a ese puerto.

# Listen 80

Este es el correo electrónico del administrador que puede ser encontrado en las páginas de error por ejemplo.

# ServerAdmin sample@sample.com

Este es el directorio donde se podrían colocar las páginas web.

# DocumentRoot "/home/httpd/html"

Si se cambia el directorio raíz (DocumentRoot) no se debe olvidar cambiar el siguiente elemento.

# <Directory "/home/httpd/html">

Configurar PHP

PHP ahora esta disponible prácticamente después de instalarlo.

  • Descomente esta línea en /etc/httpd/conf/httpd.conf
#LoadModule php5_module modules/libphp5.so
  • Para PHP5 los archivos manejadores ya están configurados
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    <IfModule mod_php5.c>
        DirectoryIndex index.php index.html
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    </IfModule>
    DirectoryIndex index.html
</IfModule>
  • Recordad agregar un archivo manejador para .phtml si es necesario:
DirectoryIndex index.php index.phtml index.html
  • Si se desea el módulo libGD, edite /etc/php/php.ini y descomente la siguiente línea (quitando el ;):
;extension=gd.so
  • Si el DocumentRoot está fuera de /home/, agergarlo

en la variable open_basedir</open> en el archivo <code>/etc/php/php.ini como:

open_basedir = /home/:/tmp/:/usr/share/pear/:/ruta/al/documentroot
  • Reinicie el servidor Apache para que los cambios tengan efecto (como root):
# /etc/rc.d/httpd restart
  • Pruebe PHP con un simple, pero muy informativo script:
<html>
<head>
  <title>Este es Arch Linux, ejecutando PHP.</title>
</head>
<body>

<?php phpinfo(); ?>

</body>
</html>

Guarde este archivo como test.php y copielo en /srv/http/html/ o en ~/public_html si lo permitió en la configuración.

Si continua teniendo problemas, edite su archivo /etc/httpd/conf/httpd.conf con la siguiente información

  • Edite su archivo httpd.conf
nano /etc/httpd/conf/httpd.conf
  • Bajo <IfModule mime_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
  • Reinicie Apache
# /etc/rc.d/httpd restart

Si después de esto el servidor no le ejecuta los scripts php añada la línea

LoadModule php5_module modules/libphp5.so

Justo antes de empezar el bloque de LoadModule ......

  • Reinicie Apache
# /etc/rc.d/httpd restart

Asegúrese de probar de nuevo la página para verificar que funciona correctamnente (como se vio anteriormente)

Configurar el soporte para MySQL

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Apache HTTP Server (Español)#)

Haga ésto sólo si quiere activar el soporte para MySQL. Configure previamente MySQL en los pasos descritos de MySQL

  • Edite /etc/php/php.ini y descomente la siguiente línea (quitando el ;):
;extension=mysql.so
;extension=mysqli.so
  • Si no ha configurado una contraseña de root para MySQL (en una terminal, como root):
# mysqladmin -u root password 'roots_password'
  • Se pueden agregar usuarios con menos privilegios, para los scripts que desee ejecutar, editando las tablas que se encuentran en la base de datos mysql. Deberá reiniciar el servicio para que los cambios tomen efecto.

No olvide revisar la tabla mysql/users. Si existe una segunda entrada para el usuario root y el hostname se deja sin ninguna clave establecida, cualquier persona de su máquina probablemente podría ganar el acceso total. Tal vez deba revisar la siguiente sección para estas labores.

  • Si se obtienen el mensaje "error no. 2013: Lost Connection to mysql server during query" instantaneamente después de intentar conectarse al daemon de MySQL mediante TCP/IP. Esto es por el sistema TCP wrappers (tcpd), el cual utiliza el sistema hosts_access(5) para permitir (allow) o denegar (disallow) las conexiones.

Si se esta en este problema, asegurarse de agregar lo siguiente en el archivo /etc/hosts.allow:

# mysqld : ALL : ALLOW
# mysqld-max : ALL : ALLOW
# y similar para otros daemons de MySQL.
Note: Los ejemplos anteriores son un caso simplista, diciendole a tcpd que permita todas las conexiones desde cualquier lugar. Se debe utilizar una selección más apropiada de fuentes permitidas en lugar de ALL. Sólo asegurese que localhost y la dirección IP (númerica o de DNS) de la interáz por la cuál se realice la conexión este especificada.
  • Podría también ser necesario editar el archivo /etc/my.cnf y comentar la siguiente línea como sigue:
# skip-networking

Configurar PHPMyAdmin

Si se quiere utilizar PHPMyAdmin, podría proceder de la siguiente manera:

  • Instale el paquete
# pacman -S phpmyadmin
  • Edite el archivo de configuración para adaptarlo a sus necesidades: /home/httpd/html/phpMyAdmin/config.inc.php

Inserte la cadena correspondiente a la variable PmaAbsoluteUri para que sea parecida a:

$cfg[['PmaAbsoluteUri']] = 'http://>hostname</phpMyAdmin/';

Rellene la información de su servidor MySQL. En PHPMyAdmin, se pueden definir multiples servidores en el arreglo 'Servers'. Para acceder a su base de datos MySQL, tiene que editar la primera entrada; puede ignorar las demás.

En un sistema normal sólo tendría que asignar el auth_type a http. Esto hace que PHPMyAdmin use el usuario y contraseñas ingresados por el navegador web para acceder al servidor de bases de datos, de esa manera, no se pueden realizar acciones que no estén permitidas para dicho usuario del servidor MySql.

$cfg[['Servers']][[$i]][['auth_type']]     = 'http';

Advertencia: otros métodos de autorización o el escribir contraseñas directamente en este archivo puede comprometer la seguridad de la base de datos. Por defecto, este archivo es legible para todo el mundo, por lo que es conveniente restringirlo.

  • Para usar PHPMyAdmin dirigir el navegador web a:
http://>hostname</phpMyAdmin/