{"id":19760,"date":"2026-11-03T14:40:26","date_gmt":"2026-11-03T12:40:26","guid":{"rendered":"https:\/\/www.beseit.net\/?p=19760"},"modified":"2026-11-05T14:44:34","modified_gmt":"2026-11-05T12:44:34","slug":"canvi-de-port-de-servidor-local","status":"publish","type":"post","link":"https:\/\/www.beseit.net\/?p=19760","title":{"rendered":"Passos per muntar un servidor local Deepin amb Python"},"content":{"rendered":"\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Passos per muntar un servidor local Deepin amb Python<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Obre el terminal<\/strong><br><code>Ctrl + Alt + T<\/code> (o busca \u00abTerminal\u00bb al llan\u00e7ador).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Comprova que Python 3 hi \u00e9s<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">python3 -V<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Deepin ja porta Python 3 de s\u00e8rie. Si no hi fos:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update &amp;&amp; sudo apt install python3<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. V\u00e9s al directori que vols publicar<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd ~\/Desktop\/dic-deepin<\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Consell: evita rutes amb espais o accents si vols compartir a la xarxa local.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Engega el servidor<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f70808\" class=\"has-inline-color\">\/home\/Miquel\/dropbox\/apps_mut\/python3 servidor.py<\/mark>\n\n<strong>\/home\/Miquel\/Desktop\/dic-deepin\/servidor.py<\/strong><\/code><\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">python3 -m http.server<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Per defecte serveix el contingut del directori actual al port <strong>8000<\/strong>, i mostra <code>index.html<\/code> autom\u00e0ticament si existeix.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Obre&#8217;l al navegador<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">http:\/\/localhost:8000<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Veureu la llista de fitxers; feu clic al que vulgueu obrir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. Opcions \u00fatils<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Objectiu<\/th><th>Comanda<\/th><\/tr><\/thead><tbody><tr><td>Canviar el port<\/td><td><code>python3 -m http.server 8888<\/code><\/td><\/tr><tr><td>Publicar un altre directori<\/td><td><code>python3 -m http.server 8000 --directory ~\/Documents\/web<\/code><\/td><\/tr><tr><td>Compartir a la xarxa local<\/td><td><code>python3 -m http.server 8000 --bind 0.0.0.0<\/code><\/td><\/tr><tr><td>Nom\u00e9s accessible des del teu equip<\/td><td><code>python3 -m http.server 8000 --bind 127.0.0.1<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Per compartir a la xarxa, els altres hauran d&#8217;entrar a <code>http:\/\/LA-TEVA-IP:8000<\/code> (consulta la IP amb <code>ip a<\/code>). Si no hi accedeixen, revisa el tallafocs: <code>sudo ufw allow 8000\/tcp<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>7. Atura el servidor<\/strong><br><code>Ctrl + C<\/code> al terminal on s&#8217;executa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f <code>http.server<\/code> \u00e9s nom\u00e9s per a proves i compartir fitxers temporalment: no t\u00e9 autenticaci\u00f3 ni concurr\u00e8ncia real. Per a producci\u00f3, fes servir Nginx o Apache.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">Els  punts per fer la connexi\u00f3 persistent<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per fer que el servidor Python s&#8217;executi autom\u00e0ticament despr\u00e9s de cada reinici, el millor \u00e9s crear un <strong>servei systemd<\/strong>. Aix\u00ed el sistema l&#8217;arrencar\u00e0 sol, sense que hagis d&#8217;obrir cap terminal manualment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pas 1: Crea el fitxer de servei<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Obre un terminal i executa:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo nano \/etc\/systemd\/system\/mesurador-espai.service<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Enganxa-hi aquest contingut (adapta la ruta si cal):<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[Unit]\nDescription=Servidor Mesurador d'Espai de Directoris\nAfter=network.target\n\n[Service]\nType=simple\nUser=Miquel\nWorkingDirectory=\/home\/Miquel\/dropbox\/espai_nuvol_8080\nExecStart=\/usr\/bin\/python3 \/home\/Miquel\/dropbox\/espai_nuvol_8080\/serv_8086.py\nRestart=on-failure\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">per exemple:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Miquel@Miquel-PC:~$ cat \/etc\/systemd\/system\/mesurador-espai.service<br>[Unit]<br>Description=Servidor Mesurador d&#8217;Espai de Directoris<br>After=network.target<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[Service]<br>Type=simple<br>User=Miquel<br>WorkingDirectory=\/home\/Miquel\/dropbox\/espai_nuvol_163<br>ExecStart=\/usr\/bin\/python3 \/home\/Miquel\/dropbox\/espai_nuvol_163\/serv_163.py<br>Restart=on-failure<br>RestartSec=5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[Install]<br>WantedBy=multi-user.target<br>Miquel@Miquel-PC:~$<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Punts importants:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>User=Miquel<\/code> \u2192 Executa el servei amb el teu usuari (no com a root).<\/li>\n\n\n\n<li><code>WorkingDirectory<\/code> \u2192 La carpeta on tens el script.<\/li>\n\n\n\n<li><code>ExecStart<\/code> \u2192 Ruta absoluta al Python i al teu script.<\/li>\n\n\n\n<li><code>Restart=on-failure<\/code> \u2192 Si el servidor cau, systemd el torna a arrencar sol.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Guarda amb <code>Ctrl+O<\/code>, <code>Enter<\/code>, i surt amb <code>Ctrl+X<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pas 2: Activa el servei<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Recarrega systemd per detectar el nou fitxer\nsudo systemctl daemon-reload\n\n# Activa el servei perqu\u00e8 arrenqui amb el sistema\nsudo systemctl enable mesurador-espai.service\n\n# Arrenca'l ara mateix (sense haver de reiniciar)\nsudo systemctl start mesurador-espai.service<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Pas 3: Verifica que funciona<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Comprova l'estat\nsudo systemctl status mesurador-espai.service\n\n# Veure els logs si hi ha errors\nsudo journalctl -u mesurador-espai.service -f<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hauries de veure algo com:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u25cf mesurador-espai.service - Servidor Mesurador d'Espai de Directoris\n     Loaded: loaded (\/etc\/systemd\/system\/mesurador-espai.service; enabled; ...)\n     Active: active (running) since ...<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Comandaments \u00fatils per al futur<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl stop mesurador-espai.service      # Aturar\nsudo systemctl restart mesurador-espai.service   # Reiniciar\nsudo systemctl disable mesurador-espai.service   # Desactivar l'arrencada autom\u00e0tica<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Verificaci\u00f3 final<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Despr\u00e9s d&#8217;un reinici del PC, obre el navegador i ves a:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">http:\/\/192.168.1.163:8086<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hauria de funcionar sense que hagis fet res.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nota:<\/strong> Assegura&#8217;t que el teu script <code>serv_8086.py<\/code> t\u00e9 la IP d&#8217;escolta configurada com <code>0.0.0.0<\/code> o <code>192.168.1.163<\/code> (no <code>127.0.0.1<\/code>), perqu\u00e8 aix\u00ed acceptar\u00e0 connexions des de la xarxa local.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prova-ho i digue&#8217;m si trobes cap problema!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Canvi de port de servidor local deepin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"733\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/11\/imatge-1-1024x733.png\" alt=\"\" class=\"wp-image-19762\" srcset=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/11\/imatge-1-1024x733.png 1024w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/11\/imatge-1-300x215.png 300w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/11\/imatge-1-768x550.png 768w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/11\/imatge-1-419x300.png 419w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/11\/imatge-1.png 1089w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ed, cap problema. I de fet 8084 \u00e9s millor tria que el 8080: est\u00e0 m\u00e9s enll\u00e0 dels ports que solen ocupar els serveis habituals, aix\u00ed que \u00e9s m\u00e9s dif\u00edcil que et toqui alg\u00fa altre.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Els <code>sed<\/code> que et poso funcionen <strong>tant si ara ets al 8000 com al 8080<\/strong>, perqu\u00e8 busquen el patr\u00f3, no el n\u00famero concret.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Primer, comprova que \u00e9s lliure<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ss -ltnp | grep :8084<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si no surt res, endavant.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Els quatre canvis<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd \/home\/Miquel\/dropbox\/apps_mut\n\n# 1. El codi (l'\u00fanic funcional)\nsed -i -E 's\/^PORT = [0-9]+\/PORT = 8084\/' servidor.py\ngrep -n \"^PORT\" servidor.py\n\n# 2. El llan\u00e7ador d'escriptori\nsed -i -E 's\/localhost:80[0-9]{2}\/localhost:8084\/g' ~\/.local\/share\/applications\/espai-web.desktop\n\n# 3. La descripci\u00f3 del servei\nsed -i -E 's\/localhost:80[0-9]{2}\/localhost:8084\/g' ~\/.config\/systemd\/user\/espai-web.service\n\n# 4. La documentaci\u00f3\nsed -i -E 's\/(localhost|127\\.0\\.0\\.1):80[0-9]{2}\/\\1:8084\/g' README.md<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Recarregar i reiniciar<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">systemctl --user daemon-reload\nsystemctl --user restart espai-web.service<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">I al navegador<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>http:\/\/localhost:8084<\/code> \u2014 i actualitza el marcador, que el del 8000 ja no et servir\u00e0.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Passos per muntar un servidor local Deepin amb Python 1. Obre el terminalCtrl + Alt + T (o busca \u00abTerminal\u00bb al llan\u00e7ador). 2. Comprova que Python 3 hi \u00e9s Deepin ja porta Python 3 de s\u00e8rie. Si no hi fos: &hellip; <a href=\"https:\/\/www.beseit.net\/?p=19760\">Continua llegint <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":3168,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[207,1],"tags":[],"class_list":["post-19760","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deepin-linux","category-bloc-de-notes"],"_links":{"self":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/19760","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19760"}],"version-history":[{"count":28,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/19760\/revisions"}],"predecessor-version":[{"id":19809,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/19760\/revisions\/19809"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/media\/3168"}],"wp:attachment":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}