23.9.20

déployer asp.net core sur ubuntu

dans visual studio :
- clic droite sur le projet
- publier
- créer un nouveau profile et publier dans un dossier
- cliquer sur publier
sur le serveur ubuntu isntaller les composants .net core :
- sudo apt-get install apt-transport-https && sudo apt-get update && sudo apt-get install dotnet-sdk-3.1 dotnet-runtime-3.1 aspnetcore-runtime-3.1
installer le serveur apache :
- sudo apt-get install apache2
- sudo a2enmod proxy proxy_http proxy_html proxy_wstunnel
- sudo a2enmod rewrite
- sudo gedit /etc/apache2/conf-enabled/netcore.conf
<VirtualHost *:80>  
    ServerName www.DOMAIN.COM  
        ProxyPreserveHost On  
    ProxyPass / http://127.0.0.1:5000/  
    ProxyPassReverse / http://127.0.0.1:5000/  
    RewriteEngine on  
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]  
    RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]  
    RewriteRule /(.*) ws://127.0.0.1:5000/$1 [P]  
    ErrorLog /var/log/apache2/netcore-error.log  
    CustomLog /var/log/apache2/netcore-access.log common  
</VirtualHost> 

- sudo service apache2 restart
- sudo apachectl configtest
déplacer le projet dans le bon répertoire :
- sudo cp -a dossier_projet_publie/ /var/netcore/mon_projet/
créer un service :
- sudo gedit /etc/systemd/system/ServiceFile.service

[Unit]  
Description=ASP .NET Web Application  
[Service]  
WorkingDirectory=/var/netcore/mon_projet  
ExecStart=/usr/bin/dotnet /var/netcore/mon_projet/Application.dll  
Restart=always  
RestartSec=10  
SyslogIdentifier=netcore-demo  
User=www-data  
Environment=ASPNETCORE_ENVIRONMENT=Production  
[Install]  
WantedBy=multi-user.target  

- remplacer Application.dll par le nom de la dll générée
- remplayer ASPNETCORE_ENVIRONMENT par Development s'il faut déboguer
- sudo systemctl enable ServiceFile.service
- sudo systemctl start ServiceFile.service
si besoin de redéployer :
- sudo systemctl stop ServiceFile.service
- sudo systemctl start ServiceFile.service

//TODO
- le chemin de l'accès à la base de données dans le projet (appsettings.json) doit contenir des / et pas \\ ou autre
- il faut éventuellement donner les bons droits à la base de données (chown)
https://www.c-sharpcorner.com/article/how-to-deploy-net-core-application-on-linux/

Aucun commentaire: