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.