Búsqueda de sitios web

Instale la pila Apache, MariaDB, PHP (LAMP) en Arch Linux


Como probablemente sepas, LAMP es el acrónimo de Linux, Apache, MySQL/MariaDB, PHP/Perl/Pyhton. Este tutorial lo guiará a través de la instalación y configuración de la pila Apache, MySQL, PHP (LAMP) en Arch Linux.

A los efectos de este artículo, utilizaré la siguiente máquina de prueba.

  • Sistema operativo: Arch Linux edición de 64 bits
  • Dirección IP: 192.168.1.102/24
  • Nombre de host: servidor

1. Actualiza tu sistema Arch

Ejecute el siguiente comando como usuario root para actualizar su Arch Linux:

pacman -Syu

2. Instale Apache

Después de actualizar el sistema, instale el servidor web Apache usando el comando:

pacman -S apache

Edite el archivo /etc/httpd/conf/httpd.conf,

nano /etc/httpd/conf/httpd.conf

Busque y comente la siguiente línea si aún no lo está:

[...]
#LoadModule unique_id_module modules/mod_unique_id.so
[...]

Guarde y cierre el archivo.

Habilite el servicio Apache para que se inicie en el arranque y reinicie el servicio Apache usando los comandos:

systemctl enable httpd
systemctl restart httpd

Puedes verificar si Apache se está ejecutando o no con el comando:

systemctl status httpd

Salida de muestra:

● httpd.service - Apache Web Server
 Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
 Active: active (running) since Tue 2016-02-16 13:00:18 IST; 7s ago
 Main PID: 1067 (httpd)
 Tasks: 82 (limit: 512)
 CGroup: /system.slice/httpd.service
 ├─1067 /usr/bin/httpd -k start -DFOREGROUND
 ├─1070 /usr/bin/httpd -k start -DFOREGROUND
 ├─1071 /usr/bin/httpd -k start -DFOREGROUND
 └─1072 /usr/bin/httpd -k start -DFOREGROUND

Feb 16 13:00:18 server systemd[1]: Started Apache Web Server.
Feb 16 13:00:18 server httpd[1067]: AH00558: httpd: Could not reliably dete...ge
Hint: Some lines were ellipsized, use -l to show in full.

El servidor Apache está listo para usar.

Probar Apache

Creemos una página de muestra en el directorio raíz de Apache, es decir, /srv/http.

nano /srv/http/index.html

Agregue la siguiente línea:

<html>
 <title>Welcome</title>
  <body>
   <h2>Welcome to OSTechNix test page</h2>
  </body>
</html>

Ahora, abra su navegador web y navegue hasta http://localhost o http://dirección IP. Estará satisfecho con la página de prueba del servidor Apache.

3. Instale MariaDB

Ejecute el siguiente comando para instalar MariaDB:

pacman -S mysql

Como sabrá, MariaDB es ahora oficialmente la implementación predeterminada de MySQL en Arch Linux desde 2013. Por lo tanto, se le preguntará si desea instalar el servidor MariaDB o Percona, simplemente presione Intro y luego escriba "Y" y presione Intro nuevamente. La selección predeterminada, es decir, MariaDB, se instalará en su Arch Linux.

resolving dependencies...
looking for conflicting packages...

Packages (7) boost-libs-1.60.0-2 icu-56.1-2 jemalloc-4.0.4-1
 libmariadbclient-10.1.11-1 libxml2-2.9.3-1
 mariadb-clients-10.1.11-1 mariadb-10.1.11-1

Total Download Size: 30.68 MiB
Total Installed Size: 218.10 MiB

:: Proceed with installation? [Y/n] n
[root@server ~]# pacman -S mysql
:: There are 2 providers available for mysql:
:: Repository extra
 1) mariadb
:: Repository community
 2) percona-server

Enter a number (default=1): ## Press Enter

resolving dependencies...
looking for conflicting packages...

Packages (7) boost-libs-1.60.0-2 icu-56.1-2 jemalloc-4.0.4-1
 libmariadbclient-10.1.11-1 libxml2-2.9.3-1
 mariadb-clients-10.1.11-1 mariadb-10.1.11-1

Total Download Size: 30.68 MiB
Total Installed Size: 218.10 MiB

:: Proceed with installation? [Y/n] y

Debe inicializar el directorio de datos de MariaDB antes de iniciar el servicio. Para hacerlo, ejecute:

mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Luego emita el siguiente comando para habilitar e iniciar el servicio MariaDB.

systemctl enable mysqld
systemctl start mysqld

Puede verificar si MariaDb se está ejecutando o no usando el comando:

systemctl status mysqld

Salida de muestra:

● mysqld.service - MariaDB database server
 Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
 Active: active (running) since Tue 2016-02-16 13:19:50 IST; 44s ago
 Process: 1406 ExecStartPost=/usr/bin/mysqld-post (code=exited, status=0/SUCCESS)
 Main PID: 1405 (mysqld)
 Tasks: 26 (limit: 512)
 CGroup: /system.slice/mysqld.service
 └─1405 /usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid

Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400 [N...a.
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400 [N...e.
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400 [N...rt
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400 [N...19
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930516817664 [N...ed
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400 [N...d.
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400 [N...'.
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400 [N...s.
Feb 16 13:19:49 server mysqld[1405]: Version: '10.1.11-MariaDB-log' socket...er
Feb 16 13:19:50 server systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.

Configurar la contraseña del usuario root de MySQL/MariaDB

Como sabrá, se recomienda configurar una contraseña para el usuario raíz de la base de datos.

Ejecute el siguiente comando para configurar la contraseña del usuario root de MariaDB:

mysql_secure_installation

Salida de muestra:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): ## Press Enter
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]## Press Enter
New password:##  Enter password
Re-enter new password:  ## Re-enter password
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]## Press Enter
 ... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]## Press Enter
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]## Press Enter
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]## Press Enter
 ... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

MariaDB ha sido instalada y lista para usar.

4. Instalar PHP

Para instalar PHP en Arch Linux, ejecute:

pacman -S php php-apache

Después de instalar PHP, necesitamos configurar el módulo PHP de Apache.

Para hacerlo, edite el archivo /etc/httpd/conf/httpd.conf,

nano /etc/httpd/conf/httpd.conf

Busque la siguiente línea y coméntela:

[...]
#LoadModule mpm_event_module modules/mod_mpm_event.so
[...]

Luego, agregue las siguientes líneas en la parte inferior:

[...]
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule php7_module modules/libphp7.so
AddHandler php7-script php
Include conf/extra/php7_module.conf

Guarde y cierre el archivo.

Probar PHP

Ahora cree un archivo test.php en el directorio raíz de Apache.

nano /srv/http/test.php

Agregue las siguientes líneas:

<?php
 phpinfo();
?>

Reinicie el servicio httpd.

systemctl restart httpd

Abra su navegador web y navegue hasta http://ip-address/test.php. Deberías ver la pantalla como la siguiente.

5. Instale phpMyAdmin

phpMyAdmin es una herramienta gráfica de administración de MySQL/MariaDB que se puede utilizar para crear, editar y eliminar bases de datos.

Para instalarlo ejecute:

pacman -S phpmyadmin php-mcrypt

Después de la instalación, edite el archivo php.ini,

nano /etc/php/php.ini

Asegúrese de que las siguientes líneas no estén comentadas.

[...]
extension=bz2.so
extension=mcrypt.so
extension=mysqli.so
[...]

Guarde y cierre el archivo.

A continuación, cree el archivo de configuración para phpMyAdmin,

nano /etc/httpd/conf/extra/phpmyadmin.conf

Agregue las siguientes líneas:

Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
 <Directory "/usr/share/webapps/phpMyAdmin">
  DirectoryIndex index.php
  AllowOverride All
  Options FollowSymlinks
  Require all granted
 </Directory>

Luego, abra el archivo de configuración de Apache,

nano /etc/httpd/conf/httpd.conf

Agregue la siguiente línea al final:

Include conf/extra/phpmyadmin.conf

Guarde y cierre el archivo. Reinicie el servicio httpd.

systemctl restart httpd

Prueba phpMyAdmin

Abra su navegador y navegue hasta http://IP-Address/phpmyadmin. Deberías ver la siguiente pantalla similar. Ingrese el nombre de usuario raíz de MySQL/MariaDB y su contraseña.

Así es como se ve mi consola web phpMyAdmin.

Es posible que vea un error que dice "El archivo de configuración ahora necesita una frase de contraseña secreta (blowfish_secret)" en la parte inferior del panel de phpMyAdmin.

Para deshacerse de este error, edite el archivo /etc/webapps/phpmyadmin/config.inc.php,

nano /etc/webapps/phpmyadmin/config.inc.php

Busque la siguiente línea y especifique la frase de contraseña secreta de bluefish:

$cfg['blowfish_secret'] = 'Welc0me1'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!$
/**

Aquí Welc0me1 está mi contraseña secreta. Guarde y cierre el archivo. Reinicie el servicio Apache.

systemctl restart httpd

El error desaparecerá ahora.

Eso es todo por ahora. En esta etapa, tiene una pila LAMP en funcionamiento y está lista para alojar sus sitios web.

Si desea utilizar Nginx en lugar del servidor web Apache, consulte el siguiente artículo.

  • Instalación y configuración de la pila Nginx, MySQL, PHP (LEMP) en Arch Linux 2016

Espero que esto ayude.

Artículos relacionados