Per instal·lar Python al teu servidor Apache de Synology, segueix aquests passos:
- Instal·la Python: Assegura’t que tens Python instal·lat al teu Synology. Pots fer-ho des del Centre de Paquets.
- Configura un entorn virtual: Utilitza SSH per iniciar sessió al teu NAS amb privilegis de root. A continuació, crea un entorn virtual de Python. Aquí tens una guia detallada sobre com fer-ho aquí.
- Instal·la pip: Si no tens pip instal·lat, pots fer-ho amb els següents comandaments:
python -m ensurepip --upgrade
python -m pip install --upgrade pip
Pots trobar més informació sobre com instal·lar pip aquí.
- Configura Apache per utilitzar Python: Hauràs de configurar el teu servidor Apache per utilitzar Python. Això pot incloure la instal·lació de mod_wsgi o una altra solució similar per executar aplicacions Python a través d’Apache.
Si necessites més informació, pots consultar aquesta guia que proporciona instruccions detallades sobre com executar Python al teu Synology.
Pots descarregar un client SSH des d’aquests enllaços:
- PuTTY: Un client SSH i telnet gratuït per a Windows.
1. Instal·lar Python al Synology
- Accedeix al Centre de Paquets del Synology:
- Inicia sessió a DSM.
- Obre el Centre de Paquets.
- Busca i instal·la Python:
- Cerca “Python” al Centre de Paquets.
- Selecciona la versió que necessitis (actualment solen estar disponibles Python 2.x i 3.x).
- Instal·la Python.
2. Configurar Apache per utilitzar Python (mod_wsgi o CGI)
Perquè Python funcioni amb Apache, necessitaràs configurar-lo correctament. Synology utilitza una versió personalitzada d’Apache, així que hi ha algunes limitacions.
A. Configurar el mòdul WSGI (mod_wsgi)
- Instal·la
mod_wsgi
:- Si el teu Synology ho permet, pots compilar o instal·lar
mod_wsgi
. - Connecta’t al Synology mitjançant SSH i executa:bashCopia el codi
sudo synogear install mod_wsgi
- Si no està disponible, pots utilitzar Python com a script CGI (veure opció B).
- Si el teu Synology ho permet, pots compilar o instal·lar
- Habilita el mòdul WSGI al fitxer de configuració d’Apache:
- Editeu el fitxer de configuració d’Apache (pot variar segons el model Synology):bashCopia el codi
sudo vi /etc/httpd/conf/httpd.conf
- Afegeix o habilita:apacheCopia el codi
LoadModule wsgi_module modules/mod_wsgi.so
- Defineix un punt final WSGI:apacheCopia el codi
WSGIScriptAlias /myapp /var/services/web/myapp.wsgi
- Editeu el fitxer de configuració d’Apache (pot variar segons el model Synology):bashCopia el codi
- Crea el teu script WSGI:
- Crea un fitxer WSGI a la ruta configurada:bashCopia el codi
nano /var/services/web/myapp.wsgi
- Exemple de contingut:pythonCopia el codi
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]
- Crea un fitxer WSGI a la ruta configurada:bashCopia el codi
- Reinicia Apache:bashCopia el codi
sudo synoservicecfg --restart httpd
B. Configurar Python com a script CGI
Si mod_wsgi
no està disponible:
- Habilita el mòdul CGI a Apache:
- Edita el fitxer de configuració d’Apache:bashCopia el codi
sudo vi /etc/httpd/conf/httpd.conf
- Habilita CGI afegint:apacheCopia el codi
ScriptAlias /cgi-bin/ "/var/services/web/cgi-bin/" <Directory "/var/services/web/cgi-bin"> AllowOverride None Options +ExecCGI Require all granted AddHandler cgi-script .py </Directory>
- Edita el fitxer de configuració d’Apache:bashCopia el codi
- Crea la carpeta i els scripts:
- Crea la carpeta
cgi-bin
al servidor web:bashCopia el codimkdir -p /var/services/web/cgi-bin chmod +x /var/services/web/cgi-bin
- Afegeix un script Python:bashCopia el codi
nano /var/services/web/cgi-bin/hello.py
- Exemple de contingut:pythonCopia el codi
#!/usr/bin/env python3 print("Content-Type: text/html\n") print("<html><body><h1>Hello from Python CGI!</h1></body></html>")
- Crea la carpeta
- Dóna permisos d’execució:bashCopia el codi
chmod +x /var/services/web/cgi-bin/hello.py
- Reinicia Apache:bashCopia el codi
sudo synoservicecfg --restart httpd
- Accedeix al teu script:
- Navega a
http://<teu_synology>/cgi-bin/hello.py
.
- Navega a
3. Solucionar problemes
- Error 500:
- Revisa els logs d’Apache al Synology:bashCopia el codi
cat /var/log/httpd/error_log
- Revisa els logs d’Apache al Synology:bashCopia el codi
- Python no trobat:
- Assegura’t que la ruta de Python està definida correctament:bashCopia el codi
which python3
- Si és necessari, edita els teus scripts per utilitzar el camí complet (per exemple,
#!/usr/local/bin/python3
).
- Assegura’t que la ruta de Python està definida correctament:bashCopia el codi