Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
django_react_produccio [2026/04/13 09:46] enric_mieza_sanchez [Configurar Apache2] |
django_react_produccio [2026/04/13 10:58] (actual) enric_mieza_sanchez [Configurar Apache2] super per isard user |
||
|---|---|---|---|
| Línia 38: | Línia 38: | ||
| Abans de començar necessitem disposar de: | Abans de començar necessitem disposar de: | ||
| - | * Un projecte Django amb React, ja sigui en un sol repo en o en repositoris separats. Si no en tens cap, pots fer servir [[https:// | + | * Un **projecte Django amb React**, ja sigui en un sol repo en o en repositoris separats. Si no en tens cap, pots fer servir [[https:// |
| - | * Un servidor operatiu amb accés SSH i amb un domnini configurat que l'hi apunta elmeudomini.com . L' | + | * Un **servidor** operatiu amb accés SSH i amb un domnini configurat que l'hi apunta elmeudomini.com . L' |
| + | |||
| + | Assumim que el servidor que disposem és dedicat únicament a aquesta app. És possible configurar diverses aplicacions en un server, però en ares de la simplicitat ho plategem així. | ||
| \\ | \\ | ||
| Línia 189: | Línia 191: | ||
| La configuració, | La configuració, | ||
| + | * **Django**: | ||
| + | * Rutes de processament: | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | * **ReactJS**: | ||
| + | * ''/'': | ||
| + | * ''/ | ||
| Línia 196: | Línia 206: | ||
| <file apache / | <file apache / | ||
| < | < | ||
| + | # Si només tenim 1 domini, no cal anomenar-lo | ||
| # | # | ||
| - | WSGIDaemonProcess | + | WSGIDaemonProcess |
| - | WSGIProcessGroup | + | WSGIProcessGroup |
| - | WSGIScriptAlias / /home/isard/ | + | WSGIScriptAlias / /home/super/ |
| - | < | + | < |
| <Files wsgi.py> | <Files wsgi.py> | ||
| Require all granted | Require all granted | ||
| Línia 208: | Línia 219: | ||
| </ | </ | ||
| - | Alias /static/ /home/isard/ | + | Alias /static/ /home/super/ |
| - | < | + | < |
| Require all granted | Require all granted | ||
| </ | </ | ||
| - | Alias /media/ /home/isard/ | + | Alias /media/ /home/super/ |
| - | < | + | < |
| Require all granted | Require all granted | ||
| </ | </ | ||
| # REACT FRONTEND | # REACT FRONTEND | ||
| - | Alias /assets /home/isard/ | + | Alias /assets /home/super/ |
| - | Alias /index.html /home/isard/ | + | Alias /index.html /home/super/ |
| - | AliasMatch ^/$ /home/isard/ | + | AliasMatch ^/$ /home/super/ |
| - | < | + | < |
| Require all granted | Require all granted | ||
| </ | </ | ||
| - | + | # Regla de reescriptura per a React Router | |
| - | # CAL? | + | # Les rutes conegudes |
| - | # 4. Regla de reescriptura per a React Router | + | # La resta de rutes van a dist/ |
| RewriteEngine On | RewriteEngine On | ||
| RewriteCond %{REQUEST_URI} !^/admin | RewriteCond %{REQUEST_URI} !^/admin | ||
| Línia 233: | Línia 244: | ||
| RewriteCond %{REQUEST_URI} !^/static | RewriteCond %{REQUEST_URI} !^/static | ||
| RewriteCond %{REQUEST_URI} !^/media | RewriteCond %{REQUEST_URI} !^/media | ||
| + | RewriteCond %{REQUEST_URI} !^/assets | ||
| RewriteCond %{REQUEST_FILENAME} !-f | RewriteCond %{REQUEST_FILENAME} !-f | ||
| - | RewriteRule ^ /home/isard/ | + | RewriteRule ^ /home/super/ |
| ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
| Línia 242: | Línia 253: | ||
| ErrorLog ${APACHE_LOG_DIR}/ | ErrorLog ${APACHE_LOG_DIR}/ | ||
| CustomLog ${APACHE_LOG_DIR}/ | CustomLog ${APACHE_LOG_DIR}/ | ||
| - | |||
| - | #Include conf-available/ | ||
| </ | </ | ||
| - | |||
| </ | </ | ||
| + | |||
| + | Reinicia Apache amb: | ||
| + | $ sudo systemctl restart apache2.service | ||
| \\ | \\ | ||
| ===== Comprovacions ===== | ===== Comprovacions ===== | ||
| + | |||
| + | Si no et dona errors al reiniciar Apache, prova les següents comprovacions. | ||
| + | |||
| + | Django funciona a ''/ | ||
| + | $ curl https:// | ||
| + | $ curl https:// | ||
| + | |||
| + | Si no es veu des de fora amb el domini, intenta comprovar que sí que funciona des de dins: | ||
| + | $ curl http:// | ||
| + | $ curl http:// | ||
| + | |||
| + | En particular, comprova que els arxius estàtics es veuen quan anem a ''/ | ||
| + | |||
| + | Funciona el // | ||
| + | |||
| + | Si no es veu des de fora, intenta la comprovació interna: | ||
| + | $ curl http:// | ||
| + | |||
| + | Si apareix la pàgina de React però no carrega les dades de l'API, obre la consola de Javascript del navegador i investiga el problema que estigui succeint (CORS, etc.) | ||
| \\ | \\ | ||
| + | ===== Media Uploads ===== | ||
| + | Comproveu que es pot accedir a ''/ | ||
| + | |||
| + | Si us dona problemes, segurament és que necessitareu donar permisos a ''/ | ||
| + | |||
| + | $ sudo chown -R www-data / | ||