{"id":15705,"date":"2024-12-17T09:36:14","date_gmt":"2024-12-17T07:36:14","guid":{"rendered":"https:\/\/www.beseit.net\/?p=15705"},"modified":"2024-12-17T10:21:15","modified_gmt":"2024-12-17T08:21:15","slug":"installar-python-al-servidor-apache-de-synology","status":"publish","type":"post","link":"https:\/\/www.beseit.net\/?p=15705","title":{"rendered":"Instal\u00b7lar Python al servidor Apache de Synology."},"content":{"rendered":"\n<p>Per instal\u00b7lar Python al teu servidor Apache de Synology, segueix aquests passos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Instal\u00b7la Python<\/strong>: Assegura&#8217;t que tens Python instal\u00b7lat al teu Synology. Pots fer-ho des del Centre de Paquets.<\/li>\n\n\n\n<li><strong>Configura un entorn virtual<\/strong>: Utilitza SSH per iniciar sessi\u00f3 al teu NAS amb privilegis de root. A continuaci\u00f3, crea un entorn virtual de Python. Aqu\u00ed tens una guia detallada sobre com fer-ho <a href=\"https:\/\/kb.synology.com\/es-es\/DSM\/tutorial\/Set_up_Python_virtual_environment_on_NAS\">aqu\u00ed<\/a>.<\/li>\n\n\n\n<li><strong>Instal\u00b7la pip<\/strong>: Si no tens pip instal\u00b7lat, pots fer-ho amb els seg\u00fcents comandaments:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   python -m ensurepip --upgrade\n   python -m pip install --upgrade pip<\/code><\/pre>\n\n\n\n<p>Pots trobar m\u00e9s informaci\u00f3 sobre com instal\u00b7lar pip <a href=\"https:\/\/elblogdelazaro.org\/posts\/2022-08-08-instalar-python-pip-en-un-nas-synology\/\">aqu\u00ed<\/a>.<\/p>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Configura Apache per utilitzar Python<\/strong>: Haur\u00e0s de configurar el teu servidor Apache per utilitzar Python. Aix\u00f2 pot incloure la instal\u00b7laci\u00f3 de mod_wsgi o una altra soluci\u00f3 similar per executar aplicacions Python a trav\u00e9s d&#8217;Apache.<\/li>\n<\/ol>\n\n\n\n<p>Si necessites m\u00e9s informaci\u00f3, pots consultar aquesta <a href=\"https:\/\/tomonota.net\/ejecutar-python-en-synology\/\">guia<\/a> que proporciona instruccions detallades sobre com executar Python al teu Synology.<\/p>\n\n\n\n<p>Pots descarregar un client SSH des d&#8217;aquests enlla\u00e7os:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/latest.html\" target=\"_blank\" rel=\"noreferrer noopener\">PuTTY<\/a>: Un client SSH i telnet gratu\u00eft per a Windows.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Instal\u00b7lar Python al Synology<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Accedeix al Centre de Paquets del Synology:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Inicia sessi\u00f3 a DSM.<\/li>\n\n\n\n<li>Obre el Centre de Paquets.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Busca i instal\u00b7la Python:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Cerca &#8220;Python&#8221; al Centre de Paquets.<\/li>\n\n\n\n<li>Selecciona la versi\u00f3 que necessitis (actualment solen estar disponibles Python 2.x i 3.x).<\/li>\n\n\n\n<li>Instal\u00b7la Python.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Configurar Apache per utilitzar Python (mod_wsgi o CGI)<\/strong><\/h3>\n\n\n\n<p>Perqu\u00e8 Python funcioni amb Apache, necessitar\u00e0s configurar-lo correctament. Synology utilitza una versi\u00f3 personalitzada d&#8217;Apache, aix\u00ed que hi ha algunes limitacions.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>A. Configurar el m\u00f2dul WSGI (mod_wsgi)<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Instal\u00b7la <code>mod_wsgi<\/code>:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Si el teu Synology ho permet, pots compilar o instal\u00b7lar <code>mod_wsgi<\/code>.<\/li>\n\n\n\n<li>Connecta&#8217;t al Synology mitjan\u00e7ant SSH i executa:bashCopia el codi<code>sudo synogear install mod_wsgi<\/code><\/li>\n\n\n\n<li>Si no est\u00e0 disponible, pots utilitzar Python com a script CGI (veure opci\u00f3 B).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Habilita el m\u00f2dul WSGI al fitxer de configuraci\u00f3 d&#8217;Apache:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Editeu el fitxer de configuraci\u00f3 d&#8217;Apache (pot variar segons el model Synology):bashCopia el codi<code>sudo vi \/etc\/httpd\/conf\/httpd.conf<\/code><\/li>\n\n\n\n<li>Afegeix o habilita:apacheCopia el codi<code>LoadModule wsgi_module modules\/mod_wsgi.so<\/code><\/li>\n\n\n\n<li>Defineix un punt final WSGI:apacheCopia el codi<code>WSGIScriptAlias \/myapp \/var\/services\/web\/myapp.wsgi<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Crea el teu script WSGI:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Crea un fitxer WSGI a la ruta configurada:bashCopia el codi<code>nano \/var\/services\/web\/myapp.wsgi<\/code><\/li>\n\n\n\n<li>Exemple de contingut:pythonCopia el codi<code>def application(environ, start_response): status = '200 OK' output = b'Hello World!' response_headers = [('Content-type', 'text\/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Reinicia Apache:<\/strong>bashCopia el codi<code>sudo synoservicecfg --restart httpd<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>B. Configurar Python com a script CGI<\/strong><\/h4>\n\n\n\n<p>Si <code>mod_wsgi<\/code> no est\u00e0 disponible:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Habilita el m\u00f2dul CGI a Apache:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Edita el fitxer de configuraci\u00f3 d&#8217;Apache:bashCopia el codi<code>sudo vi \/etc\/httpd\/conf\/httpd.conf<\/code><\/li>\n\n\n\n<li>Habilita CGI afegint:apacheCopia el codi<code>ScriptAlias \/cgi-bin\/ \"\/var\/services\/web\/cgi-bin\/\" &lt;Directory \"\/var\/services\/web\/cgi-bin\"> AllowOverride None Options +ExecCGI Require all granted AddHandler cgi-script .py &lt;\/Directory><\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Crea la carpeta i els scripts:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Crea la carpeta <code>cgi-bin<\/code> al servidor web:bashCopia el codi<code>mkdir -p \/var\/services\/web\/cgi-bin chmod +x \/var\/services\/web\/cgi-bin<\/code><\/li>\n\n\n\n<li>Afegeix un script Python:bashCopia el codi<code>nano \/var\/services\/web\/cgi-bin\/hello.py<\/code><\/li>\n\n\n\n<li>Exemple de contingut:pythonCopia el codi<code>#!\/usr\/bin\/env python3 print(\"Content-Type: text\/html\\n\") print(\"&lt;html>&lt;body>&lt;h1>Hello from Python CGI!&lt;\/h1>&lt;\/body>&lt;\/html>\")<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>D\u00f3na permisos d&#8217;execuci\u00f3:<\/strong>bashCopia el codi<code>chmod +x \/var\/services\/web\/cgi-bin\/hello.py<\/code><\/li>\n\n\n\n<li><strong>Reinicia Apache:<\/strong>bashCopia el codi<code>sudo synoservicecfg --restart httpd<\/code><\/li>\n\n\n\n<li><strong>Accedeix al teu script:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Navega a <code>http:\/\/&lt;teu_synology>\/cgi-bin\/hello.py<\/code>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Solucionar problemes<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Error 500:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Revisa els logs d&#8217;Apache al Synology:bashCopia el codi<code>cat \/var\/log\/httpd\/error_log<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Python no trobat:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Assegura&#8217;t que la ruta de Python est\u00e0 definida correctament:bashCopia el codi<code>which python3<\/code><\/li>\n\n\n\n<li>Si \u00e9s necessari, edita els teus scripts per utilitzar el cam\u00ed complet (per exemple, <code>#!\/usr\/local\/bin\/python3<\/code>).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Per instal\u00b7lar Python al teu servidor Apache de Synology, segueix aquests passos: Pots trobar m\u00e9s informaci\u00f3 sobre com instal\u00b7lar pip aqu\u00ed. Si necessites m\u00e9s informaci\u00f3, pots consultar aquesta guia que proporciona instruccions detallades sobre com executar Python al teu Synology. &hellip; <a href=\"https:\/\/www.beseit.net\/?p=15705\">Continua llegint <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":8179,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-15705","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloc-de-notes"],"_links":{"self":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15705","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=15705"}],"version-history":[{"count":3,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15705\/revisions"}],"predecessor-version":[{"id":15710,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15705\/revisions\/15710"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/media\/8179"}],"wp:attachment":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}