Apache React Deploy
Instalar apache2
sudo apt updatesudo apt install apache2sudo systemctl status apache2
# Configuramos permisos correctossudo chown -R www-data:www-data /var/www/htmlsudo chmod -R 755 /var/www/htmlmkdir /var/www/html/my-app
# En la carpeta de nuestro proyecto react compilamos la aplicaciónnpm run build# Copiamos los archivos de la carpeta dist a la carpeta de apachecp -r dist/* /var/www/html/my-app
# Hacemos una copia del archivo de configuración por defectocp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/my-app.conf
# Editamos el archivo de configuraciónnano /etc/apache2/sites-available/my-app.conf
# Contenido del archivo<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/my-app <Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>
# Desactivamos el sitio por defectosudo a2dissite 000-default.conf
# Activamos nuestro sitiosudo a2ensite my-app.conf
# Recargar apache2systemctl reload apache2
# Crear un archivo .htaccessnano /var/www/html/my-app/.htaccess
# Contenido del archivo .htaccess<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /subdirectoryRewriteRule ^index\.html$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-lRewriteRule . /index.html [L]</IfModule>
# Permitimos reescribir URLssudo a2enmod rewrite
# Recargamossystemctl reload apache2
Listo la app estará disponible en: http://[mi_ip]:80