"Trabajar en local es muy importante"
Mi nombre es José J. Peleato Pradel.
XAMP es el acrónimo para describir el conjunto de tecnologías necesarias para crear una infraestructura de un servidor web.
Linux Apache MySQL PHP
Windows Apache MySQL PHP
MacOS Apache MySQL PHP
Vamos a proceder a realizar la instalación de un servidor web en una máquina virtual Linux con distribución Ubuntu ó Debian a través del sistema de gestión de paquetes APT (Advanced Packaging Tool).
Todas las líneas de comandos se ejecutarán a través de terminal.
Primero, instalaremos Apache. Tras esto, seguiremos con PHP y finalmente con MySQL y phpMyAdmin como gestor y administración de bases de datos.
sudo apt-get update
sudo apt-get install apache2
Para verificar el funcionamiento abrimos el navegador y visitamos: http://localhost/ o http://127.0.0.1/.
Desde donde visualizaremos una web de bienvenida utilizada para probar el correcto funcionamiento del servidor web.
Apache es un servicio que se ejecuta automáticamente con el inicio del sistema operativo. Para gestionarlo de forma manual:
sudo service apache2 start // Iniciar servicio Apache
sudo service apache2 restart // Reiniciar servicio Apache
sudo service apache2 reload // Recargar servicio Apache
sudo service apache2 stop // Parar servicio Apache
sudo service apache2 status // Estado servicio Apache
Todas las acciones (start, restart...) pueden ser también ejecutadas:
sudo /etc/init.d/apache2 [action]
systemctl restart apache2
systemctl status apache2.service
Para activar o desactivar módulos
sudo a2enmod [module] // Activar módulos
sudo a2dismod [module] // Desactivar módulos
Para verificar que módulos tenemos activos podemos ejecutar sudo a2dismod y no activos sudo a2enmod. En ambos casos nos lista y pregunta contra que módulos actuar.
Otra alternativa para conocer que módulos tenemos activos:
ls -lha /etc/apache2/mods-enabled
El módulo rewrite agrega al servidor web la posibilidad de re-escribir la URI que recibe desde el navegador.
La importancia de este módulo es la posibilidad de escribir direcciones amigables (Friendly URL's), que juega un rol importante desde la perspectiva SEO.
sudo a2enmod rewrite // Activar mod-rewrite
sudo service apache2 restart // Reiniciar servidor Apache
Crear archivo de configuración.
cd /etc/apache2/sites-available ; sudo touch odin-com.conf ; sudo gedit odin-com.conf
<VirtualHost *:80>
ServerAdmin jjpeleato@odin.com
ServerName odin.com
ServerAlias www.odin.com
DocumentRoot /var/www/odin
<Directory /var/www/odin>
DirectoryIndex index.php index.html index.htm
Options -Indexes
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/odin-error.log
CustomLog ${APACHE_LOG_DIR}/odin-access.log combined
</VirtualHost>
Para habilitar o deshabilitar un sitio alojado con Apache:
cd /etc/apache2/sites-available
sudo a2ensite odin-com.conf // Habilitar sitio
sudo a2dissite odin-com.conf // Deshabilitar sitio
sudo systemctl reload apache2 // Reiniciar Apache2
La acción de activar o desactivar un sitio genera un enlace simbólico en /etc/apache2/sites-enabled/ hacia /etc/apache2/sites-available/ lo que significa que si accedemos al directorio podemos comprobar que sitios tenemos activos.
Añadir al fichero hosts la dirección IP de nuestro VirtualHost
sudo gedit /etc/hosts
127.0.0.1 odin.com
127.0.0.1 www.odin.com
sudo apt-get update
sudo apt-get install php7.2 libapache2-mod-php7.2
sudo apt-get install php7.2-cgi php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-odbc php7.2-pgsql php7.2-sqlite3 php7.2-xml php7.2-soap
sudo service apache2 restart
sudo apt-get update
sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.4 libapache2-mod-php7.4
sudo apt-get install php7.4-cgi php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-odbc php7.4-pgsql php7.4-sqlite3 php7.4-xml php7.4-soap
sudo service apache2 restart
sudo apt-get update
sudo apt-get install php-xdebug php-gettext
sudo service apache2 restart
Para verificar el funcionamiento de PHP abrimos el terminal y ejecutamos el siguiente comando:
sudo echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
Visitamos en el navegador: http://localhost/phpinfo.php o http://127.0.0.1/phpinfo.php. Desde donde visualizaremos una gran cantidad de información sobre el estado actual de PHP.
php7.2 -> php7.4
sudo a2dismod php7.2 ; sudo service apache2 restart ; sudo a2enmod php7.4 ; sudo service apache2 restart
php7.4 -> php7.2
sudo a2dismod php7.4 ; sudo service apache2 restart ; sudo a2enmod php7.2 ; sudo service apache2 restart
sudo apt-get update
sudo apt-get install mysql-server
Para verificar el funcionamiento abrimos el terminal y escribimos:
mysql --version
Desde donde visualizaremos la versión de nuestro motor de bases de datos.
Para trabajar desde terminal con MySQL:
mysql -u [user] -p [password] // Desaconsejado
mysql -u [user] -p // Modo recomendado. Nos solicita la contraseña en la siguiente línea y sin opción a lectura.
Nota: Si no recuerdas la contraseña de acceso. Leer la siguiente vista para proceder a reiniciar la contraseña.
Es posible que en el proceso de instalación de MySQL, no se solicite la contraseña del usuario root o que no la recordemos. Para solucionar este problema, debemos reiniciar la contraseña.
1) Crear directorio temporal:
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
2) Parar el servicio MySQL, conectar como root y no cerrar la terminal:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables &
3) Abrir una nueva terminal y ejecutar los siguientes comandos desde donde añadiremos la nueva contraseña:
mysql -u root
use mysql;
UPDATE user SET authentication_string='*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B', plugin='mysql_native_password' WHERE user='root';
flush privileges;
quit
exit
Nota: La contraseña codificada es 'root'
4) En la primera terminal, terminar ejecución Ctrl+C del servicio activo y cerrar terminal.
5) Reiniciar equipo. Si el servicio de MySQL está parado abrir terminal y ejecutar:
sudo service mysql start
6) Borrar directorio temporal:
sudo rm -rf /var/run/mysqld
mysqldump -u username -p databasename > filename.sql // Exportar
mysql -u username -p databasename < filename.sql // Importar
sudo apt-get update
sudo apt-get install phpmyadmin
Advertencia: Cuando aparece el primer mensaje, apache2 se resalta, pero no se selecciona. Si no pulsa Space para seleccionar Apache, el instalador no moverá los archivos necesarios durante la instalación. Pulse Space, Tab y, a continuación, Enter para seleccionar Apache.
Añadir archivo de configuración de phpMyAdmin
sudo gedit /etc/apache2/apache2.conf
Include /etc/phpmyadmin/apache.conf // Incluir al final del fichero
sudo /etc/init.d/apache2 restart
Para verificar el funcionamiento de phpMyAdmin
Visitamos en el navegador: http://localhost/phpmyadmin o http://127.0.0.1/phpmyadmin. Desde donde visualizaremos el login de acceso.
Simplemente, GRACIAS