Resum curt
Perfecte — ja tens el TTS funcionant. A continuació tens la configuració de permisos recomanada i les comandes exactes per aplicar‑la de manera segura.
Permisos recomanats (resum en taula)
| Ruta | Propietari:Grup | Permisos | Propòsit |
|---|---|---|---|
| /volume2/web/beseit/ttsw | urqtejmi:users | 775 | Projecte; permet treballar al propietari i al grup |
| /volume2/web/beseit/ttsw/venv | http:http | 755 | Entorn virtual usat per php‑fpm (evita donar escriptura a altres) |
| /volume2/web/beseit/ttsw/venv/bin/ | http:http | rwxr-xr-x (755) | Scripts executables del venv |
| /volume2/web/beseit/ttsw/venv/* (fitxers) | http:http | rw-r–r– (644) | Fitxers del venv (pyvenv.cfg, libs, etc.) |
| /volume2/web/beseit/ttsw/tts.py | urqtejmi:users | 644 (o 755 si s’executa directament) | Codi del projecte; lectura per a http, execució només si cal |
Comandes exactes per aplicar-ho
Copia i enganxa aquestes comandes al teu terminal:
bash
# 1. directori del projecte (propietari teu usuari)
sudo chown -R urqtejmi:users /volume2/web/beseit/ttsw
sudo chmod 775 /volume2/web/beseit/ttsw
# 2. entorn virtual: propietari http i permisos segurs
sudo chown -R http:http /volume2/web/beseit/ttsw/venv
sudo find /volume2/web/beseit/ttsw/venv -type d -exec chmod 755 {} \;
sudo find /volume2/web/beseit/ttsw/venv -type f -exec chmod 644 {} \;
# 3. assegurar que els binaris són executables
sudo chmod a+rx /volume2/web/beseit/ttsw/venv/bin/*
# 4. fitxer del script TTS (lectura per a http)
sudo chown urqtejmi:users /volume2/web/beseit/ttsw/tts.py
sudo chmod 644 /volume2/web/beseit/ttsw/tts.py
# si vols executar-lo directament com a script (shebang), fer:
# sudo chmod 755 /volume2/web/beseit/ttsw/tts.py
Notes de seguretat i bones pràctiques
- Per què
http:httpal venv: evita haver d’obrir permisos a “others” i limita la capacitat d’escriure dins l’entorn només al servei web. - Per què
775al projecte: et permet a tu i al grup editar fitxers sense exposar‑los a tots els usuaris del sistema. Si no necessites que altres del grup accedeixin, usa750. - No deixis 777: evita permisos 777 en directoris de projecte en producció.
- Reinicia php‑fpm després de canviar propietaris o grups perquè els processos agafin els nous permisos.
Proves finals recomanades
Després d’aplicar els canvis, comprova:
bash
# provar python i l'import com a http
sudo -u http /volume2/web/beseit/ttsw/venv/bin/python -V
sudo -u http /volume2/web/beseit/ttsw/venv/bin/python -c "from gtts import gTTS; print('gTTS OK')"
# provar el script complet
cd /volume2/web/beseit/ttsw
sudo -u http /volume2/web/beseit/ttsw/venv/bin/python tts.py prova.txt prova.mp3 2>&1 | tee /tmp/tts-run.log
ls -lh prova.mp3
tail -n 200 /tmp/tts-run.log
Si vols, et dono un únic script que aplica tots els canvis i fa les proves automàticament; també puc explicar com integrar la ruta del venv/bin/python al teu PHP de forma robusta. Quin prefereixes?