Instalar Laravel con phpMyAdmin en Ubuntu Server
Prerrequisitos
Ubuntu Server 18.04/20.04/22.04 LTS
Acceso SSH o consola del servidor
Usuario con privilegios sudo
Paso 1: Actualizar el sistema
sudo apt update && sudo apt upgrade -yPaso 2: Instalar PHP y extensiones necesarias
Para PHP 8.1 (Recomendado para Laravel 9/10):
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install -y php8.1 php8.1-cli php8.1-fpm php8.1-mysql php8.1-curl \
php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath \
php8.1-common php8.1-intl php8.1-soap php8.1-jsonVerificar instalación de PHP:
php -vPaso 3: Instalar MySQL Server
sudo apt install -y mysql-server mysql-clientConfigurar seguridad de MySQL:
sudo mysql_secure_installationSeguir las indicaciones:
Configurar plugin de validación de contraseñas
Establecer contraseña para root
Remover usuarios anónimos
Deshabilitar login remoto de root
Remover base de datos de test
Recargar privilegios
Paso 4: Instalar Apache y configurar
sudo apt install -y apache2Habilitar módulos necesarios:
sudo a2enmod rewrite
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpmReiniciar Apache:
sudo systemctl restart apache2Paso 5: Instalar Composer
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composerVerificar instalación:
composer --versionPaso 6: Instalar Laravel
Crear proyecto Laravel:
cd /var/www
sudo composer create-project laravel/laravel mi-proyectoConfigurar permisos:
sudo chown -R www-data:www-data /var/www/mi-proyecto
sudo chmod -R 775 /var/www/mi-proyecto/storage
sudo chmod -R 775 /var/www/mi-proyecto/bootstrap/cachePaso 7: Configurar base de datos para Laravel
Acceder a MySQL:
sudo mysql -u root -pCrear base de datos y usuario:
CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'tu_password_seguro';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;Configurar variables de entorno:
cd /var/www/mi-proyecto
cp .env.example .env
sudo nano .envEditar las siguientes líneas en el archivo .env:
APP_NAME="Mi Proyecto Laravel"
APP_ENV=production
APP_DEBUG=false
APP_URL=http://tu-dominio.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=tu_password_seguroGenerar key de la aplicación:
php artisan key:generateEjecutar migraciones:
php artisan migratePaso 8: Configurar Virtual Host en Apache
Crear archivo de configuración:
sudo nano /etc/apache2/sites-available/laravel.confAgregar siguiente contenido:
<VirtualHost *:80>
ServerName tu-dominio.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mi-proyecto/public
<Directory /var/www/mi-proyecto/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>Habilitar el sitio y deshabilitar el default:
sudo a2dissite 000-default.conf
sudo a2ensite laravel.conf
sudo systemctl reload apache2Paso 9: Instalar phpMyAdmin
sudo apt install -y phpmyadminDurante la instalación:
Seleccionar "apache2" como servidor web
Configurar para dbconfig-common: Sí
Establecer contraseña para phpMyAdmin
Si no aparece el asistente, configurar manualmente:
sudo apt install -y phpmyadmin php-mbstring php-gettextHabilitar extensiones PHP necesarias:
sudo phpenmod mbstring
sudo systemctl restart apache2Paso 10: Configurar acceso a phpMyAdmin
Crear enlace simbólico (opcional):
sudo ln -s /usr/share/phpmyadmin /var/www/mi-proyecto/public/phpmyadminO configurar subdominio (recomendado):
sudo nano /etc/apache2/sites-available/phpmyadmin.conf<VirtualHost *:80>
ServerName pma.tu-dominio.com
DocumentRoot /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/phpmyadmin_error.log
CustomLog ${APACHE_LOG_DIR}/phpmyadmin_access.log combined
</VirtualHost>sudo a2ensite phpmyadmin.conf
sudo systemctl reload apache2Paso 11: Configurar seguridad
Proteger phpMyAdmin con autenticación adicional:
sudo nano /etc/apache2/conf-available/phpmyadmin.confAgregar al final del archivo:
<Directory /usr/share/phpmyadmin>
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
</Directory>Crear usuario y contraseña:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd usuario_adminRecargar configuración:
sudo systemctl reload apache2Paso 12: Probar la instalación
Verificar Laravel:
Abrir en navegador: http://tu-dominio.com
Verificar phpMyAdmin:
Abrir en navegador: http://tu-dominio.com/phpmyadmin o http://pma.tu-dominio.com
Comandos útiles para gestión
Reiniciar servicios:
sudo systemctl restart apache2
sudo systemctl restart mysql
sudo systemctl restart php8.1-fpmVer estado de servicios:
sudo systemctl status apache2
sudo systemctl status mysql
sudo systemctl status php8.1-fpmLogs de Laravel:
tail -f /var/www/mi-proyecto/storage/logs/laravel.logLogs de Apache:
sudo tail -f /var/log/apache2/error.logSolución de problemas comunes
Error de permisos en Laravel:
sudo chown -R www-data:www-data /var/www/mi-proyecto
sudo chmod -R 775 /var/www/mi-proyecto/storage
sudo chmod -R 775 /var/www/mi-proyecto/bootstrap/cacheError "Class 'ZipArchive' not found":
sudo apt install -y php8.1-zip
sudo systemctl restart apache2phpMyAdmin no carga:
sudo phpenmod mbstring
sudo systemctl restart apache2¡Tu instalación de Laravel con phpMyAdmin en Ubuntu Server está lista!
Comentarios
Publicar un comentario