Skip to content

Commit 119d563

Browse files
committed
add Italian translation of docs
1 parent 68573a9 commit 119d563

22 files changed

Lines changed: 4474 additions & 0 deletions

docs/it/CONTRIBUTING.md

Lines changed: 429 additions & 0 deletions
Large diffs are not rendered by default.

docs/it/README.md

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
# FrankenPHP: App Server moderno per PHP
2+
3+
<h1 align="center"><a href="https://frankenphp.dev"><img src="frankenphp.png" alt="FrankenPHP" width="600"></a></h1>
4+
5+
FrankenPHP è un server di applicazioni per PHP costruito sul server web [Caddy](https://caddyserver.com/).
6+
7+
FrankenPHP dà superpoteri alle app PHP grazie alle sue straordinarie funzionalità: [_Early Hints_](https://frankenphp.dev/docs/early-hints/), [modalità worker](https://frankenphp.dev/docs/worker/), [funzionalità in tempo reale](https://frankenphp.dev/docs/mercure/), [ricaricamento a caldo](https://frankenphp.dev/docs/hot-reload/), supporto automatico HTTPS, HTTP/2 e HTTP/3...
8+
9+
FrankenPHP funziona con qualsiasi app PHP e rende i progetti Laravel e Symfony più veloci che mai grazie alle loro integrazioni ufficiali con la modalità worker.
10+
11+
FrankenPHP può anche essere utilizzato come libreria Go autonoma per incorporare PHP in qualsiasi app utilizzando `net/http`.
12+
13+
[**Ulteriori informazioni** su _frankenphp.dev_](https://frankenphp.dev) e in questa presentazione:
14+
15+
<a href="https://dunglas.dev/2022/10/frankenphp-the-modern-php-app-server-written-in-go/"><img src="https://dunglas.dev/wp-content/uploads/2022/10/frankenphp.png" alt="Slides" width="600"></a>
16+
17+
## Iniziare
18+
19+
### Installare lo script
20+
21+
Su Linux e macOS, copiare questa riga nel terminale per installare automaticamente
22+
una versione adatta alla piattaforma usata:
23+
24+
```console
25+
curl https://frankenphp.dev/install.sh | sh
26+
```
27+
28+
Su Windows, eseguire in PowerShell:
29+
30+
```powershell
31+
irm https://frankenphp.dev/install.ps1 | iex
32+
```
33+
34+
### Binario autonomo
35+
36+
Forniamo i binari FrankenPHP per Linux, macOS e Windows
37+
con [PHP 8.5](https://www.php.net/releases/8.5/).
38+
39+
I binari Linux sono collegati staticamente, quindi possono essere utilizzati su qualsiasi distribuzione Linux senza installare alcuna dipendenza. Anche i file binari di macOS sono autonomi.
40+
Contengono le estensioni PHP più popolari.
41+
Gli archivi di Windows contengono il binario PHP ufficiale per Windows.
42+
43+
[Scaricare FrankenPHP](https://github.com/php/frankenphp/releases)
44+
45+
### Pacchetti rpm
46+
47+
I nostri manutentori offrono pacchetti rpm per tutti i sistemi che utilizzano `dnf`. Per installare, eseguire:
48+
49+
```console
50+
sudo dnf install https://rpm.henderkes.com/static-php-1-0.noarch.rpm
51+
sudo dnf module enable php-zts:static-8.5 # sono disponibili da 8.2 a 8.5
52+
sudo dnf install frankenphp
53+
```
54+
55+
**Installazione delle estensioni:** `sudo dnf install php-zts-<extension>`
56+
57+
Per le estensioni non disponibili per impostazione predefinita, utilizzare [PIE](https://github.com/php/pie):
58+
59+
```console
60+
sudo dnf install pie-zts
61+
sudo pie-zts install asgrim/example-pie-extension
62+
```
63+
64+
### Pacchetti deb
65+
66+
I nostri manutentori offrono pacchetti deb per tutti i sistemi che utilizzano `apt`. Per installare, eseguire:
67+
68+
```console
69+
VERSION=85 # sono disponibili da 82 a 85
70+
sudo curl https://pkg.henderkes.com/api/packages/${VERSION}/debian/repository.key -o /etc/apt/keyrings/static-php${VERSION}.asc
71+
echo "deb [signed-by=/etc/apt/keyrings/static-php${VERSION}.asc] https://pkg.henderkes.com/api/packages/${VERSION}/debian php-zts main" | sudo tee -a /etc/apt/sources.list.d/static-php${VERSION}.list
72+
sudo apt update
73+
sudo apt install frankenphp
74+
```
75+
76+
**Installazione delle estensioni:** `sudo apt install php-zts-<extension>`
77+
78+
Per le estensioni non disponibili per impostazione predefinita, utilizzare [PIE](https://github.com/php/pie):
79+
80+
```console
81+
sudo apt install pie-zts
82+
sudo pie-zts install asgrim/example-pie-extension
83+
```
84+
85+
### Pacchetti apk
86+
87+
I nostri manutentori offrono pacchetti apk per tutti i sistemi che utilizzano `apk`. Per installare, eseguire:
88+
89+
```console
90+
VERSION=85 # sono disponibili da 82 a 85
91+
echo "https://pkg.henderkes.com/api/packages/${VERSION}/alpine/main/php-zts" | sudo tee -a /etc/apk/repositories
92+
KEYFILE=$(curl -sJOw '%{filename_effective}' https://pkg.henderkes.com/api/packages/${VERSION}/alpine/key)
93+
sudo mv ${KEYFILE} /etc/apk/keys/ &&
94+
sudo apk update &&
95+
sudo apk add frankenphp
96+
```
97+
98+
**Installazione delle estensioni:** `sudo apk add php-zts-<extension>`
99+
100+
Per le estensioni non disponibili per impostazione predefinita, utilizzare [PIE](https://github.com/php/pie):
101+
102+
```console
103+
sudo apk add pie-zts
104+
sudo pie-zts install asgrim/example-pie-extension
105+
```
106+
107+
### Birra fatta in casa
108+
109+
FrankenPHP è disponibile anche come pacchetto [Homebrew](https://brew.sh) per macOS e Linux.
110+
111+
```console
112+
brew install dunglas/frankenphp/frankenphp
113+
```
114+
115+
**Installazione delle estensioni:** utilizzare [PIE](https://github.com/php/pie).
116+
117+
### Utilizzo
118+
119+
Per servire il contenuto della cartella corrente, eseguire:
120+
121+
```console
122+
frankenphp php-server
123+
```
124+
125+
Si possono anche eseguire script da riga di comando con:
126+
127+
```console
128+
frankenphp php-cli /path/to/your/script.php
129+
```
130+
131+
Per i pacchetti deb e rpm, si può anche avviare il servizio systemd:
132+
133+
```console
134+
sudo systemctl start frankenphp
135+
```
136+
137+
### Docker
138+
139+
In alternativa, sono disponibili [Immagini Docker](https://frankenphp.dev/docs/docker/):
140+
141+
```console
142+
docker run -v .:/app/public \
143+
-p 80:80 -p 443:443 -p 443:443/udp \
144+
dunglas/frankenphp
145+
```
146+
147+
Aprire `https://localhost` e buon divertimento!
148+
149+
> [!TIP]
150+
>
151+
> Non tentare di utilizzare `https://127.0.0.1`. Usare `https://localhost` e accettare il certificato autofirmato.
152+
> Utilizzare la [variabile di ambiente `SERVER_NAME`](docs/config.md#environment-variables) per modificare il dominio da utilizzare.
153+
154+
## Documenti
155+
156+
- [Modalità classica](https://frankenphp.dev/docs/classic/)
157+
- [Modalità worker](https://frankenphp.dev/docs/worker/)
158+
- [Migrazione da Nginx/PHP-FPM](https://frankenphp.dev/docs/migrate/)
159+
- [Supporto per Early Hints (codice di stato HTTP 103)](https://frankenphp.dev/docs/early-hints/)
160+
- [Real time](https://frankenphp.dev/docs/mercure/)
161+
- [Log](https://frankenphp.dev/docs/logging/)
162+
- [Ricaricamento a caldo](https://frankenphp.dev/docs/hot-reload/)
163+
- [Gestione efficiente di file statici di grandi dimensioni](https://frankenphp.dev/docs/x-sendfile/)
164+
- [Configurazione](https://frankenphp.dev/docs/config/)
165+
- [Scrittura delle estensioni PHP in Go](https://frankenphp.dev/docs/extensions/)
166+
- [Immagini Docker](https://frankenphp.dev/docs/docker/)
167+
- [Deploy in produzione](https://frankenphp.dev/docs/production/)
168+
- [Ottimizzazione delle prestazioni](https://frankenphp.dev/docs/performance/)
169+
- [Crea **app PHP autonome** e autoeseguibili](https://frankenphp.dev/docs/embed/)
170+
- [Creare file binari statici](https://frankenphp.dev/docs/static/)
171+
- [Compilare da sorgente](https://frankenphp.dev/docs/compile/)
172+
- [Osservabilità](https://frankenphp.dev/docs/observability/)
173+
- [Integrazione WordPress](https://frankenphp.dev/docs/wordpress/)
174+
- [Integrazione Symfony](https://frankenphp.dev/docs/symfony/)
175+
- [Integrazione Laravel](https://frankenphp.dev/docs/laravel/)
176+
- [Problemi noti](https://frankenphp.dev/docs/known-issues/)
177+
- [App demo (Symfony) e benchmark](https://github.com/dunglas/frankenphp-demo)
178+
- [Documentazione della libreria Go](https://pkg.go.dev/github.com/dunglas/frankenphp)
179+
- [Contributi e debug](https://frankenphp.dev/docs/contributing/)
180+
- [Interni (panoramica dell'architettura)](docs/internals.md)
181+
182+
## Esempi e scheletri
183+
184+
- [Symfony](https://frankenphp.dev/docs/symfony/)
185+
- [API Platform](https://api-platform.com/docs/symfony)
186+
- [Laravel](https://frankenphp.dev/docs/laravel/)
187+
- [Sulu](https://sulu.io/blog/running-sulu-with-frankenphp)
188+
- [WordPress](https://github.com/StephenMiracle/frankenwp)
189+
- [Drupal](https://github.com/dunglas/frankenphp-drupal)
190+
- [Joomla](https://github.com/alexandreelise/frankenphp-joomla)
191+
- [TYPO3](https://github.com/ochorocho/franken-typo3)
192+
- [Magento2](https://github.com/ekino/frankenphp-magento2)

docs/it/classic.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Usare la modalità classica
2+
3+
Senza alcuna configurazione aggiuntiva, FrankenPHP funziona in modalità classica. In questa modalità, FrankenPHP funziona come un tradizionale server PHP, servendo direttamente i file PHP. Ciò lo rende un sostituto perfetto per PHP-FPM o Apache con mod_php.
4+
5+
Similmente a Caddy, FrankenPHP accetta un numero illimitato di connessioni e utilizza un [numero fisso di thread](config.md#caddyfile-config) per servirle. Il numero di connessioni accettate e in coda è limitato solo dalle risorse di sistema disponibili.
6+
Il pool di thread PHP funziona con un numero fisso di thread inizializzati all'avvio, paragonabile alla modalità statica di PHP-FPM. È anche possibile consentire ai thread di [ridimensionarsi automaticamente in fase di esecuzione](performance.md#max_threads), in modo simile alla modalità dinamica di PHP-FPM.
7+
8+
Le connessioni in coda attenderanno indefinitamente finché non sarà disponibile un thread PHP per servirle. Per evitarlo, si può utilizzare max_wait_time nella [configurazione](config.md#caddyfile-config) globale di FrankenPHP per limitare la durata di attesa di una richiesta per un thread PHP libero prima di essere rifiutata.
9+
Inoltre, si può impostare un [timeout di scrittura](https://caddyserver.com/docs/caddyfile/options#timeouts) ragionevole.
10+
11+
Ogni istanza Caddy avvierà solo un pool di thread FrankenPHP, che sarà condiviso tra tutti i blocchi `php_server`.

docs/it/compile.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# Compilazione dai sorgenti
2+
3+
Questo documento spiega come creare un binario FrankenPHP che caricherà PHP come libreria condivisa.
4+
Questo è il metodo consigliato.
5+
6+
In alternativa, è possibile creare anche [build completamente e prevalentemente statiche](static.md).
7+
8+
## Instalalre PHP
9+
10+
FrankenPHP è compatibile con PHP 8.2 e versioni successive.
11+
12+
### Con Homebrew (Linux e Mac)
13+
14+
Il modo più semplice per installare una versione di libphp compatibile con FrankenPHP è utilizzare i pacchetti ZTS forniti da [Homebrew PHP](https://github.com/shivammathur/homebrew-php).
15+
16+
Innanzitutto, se non lo hai già fatto, installa [Homebrew](https://brew.sh).
17+
18+
Quindi, installa la variante ZTS di PHP, Brotli (opzionale, per il supporto della compressione) e watcher (opzionale, per il rilevamento delle modifiche ai file):
19+
20+
```console
21+
brew install shivammathur/php/php-zts brotli watcher
22+
brew link --overwrite --force shivammathur/php/php-zts
23+
```
24+
25+
### Compilare PHP
26+
27+
In alternativa, si può compilare PHP dai sorgenti con le opzioni necessarie a FrankenPHP, seguendo questi passaggi.
28+
29+
Per prima cosa, [recuperare i sorgenti PHP](https://www.php.net/downloads.php) ed estrarli:
30+
31+
```console
32+
tar xf php-*
33+
cd php-*/
34+
```
35+
36+
Quindi, eseguire lo script `configure` con le opzioni necessarie per la propria piattaforma.
37+
I seguenti flag `./configure` sono obbligatori, ma se ne possono aggiungerne altri, ad esempio, per compilare estensioni o funzionalità aggiuntive.
38+
39+
#### Linux e FreeBSD
40+
41+
```console
42+
./configure \
43+
--enable-embed \
44+
--enable-zts \
45+
--disable-zend-signals \
46+
--enable-zend-max-execution-timers
47+
```
48+
49+
#### Mac
50+
51+
Utilizzare il gestore pacchetti [Homebrew](https://brew.sh/) per installare le dipendenze obbligatorie e facoltative:
52+
53+
```console
54+
brew install libiconv bison brotli re2c pkg-config watcher
55+
echo 'export PATH="/opt/homebrew/opt/bison/bin:$PATH"' >> ~/.zshrc
56+
```
57+
58+
Quindi eseguire lo script di configurazione:
59+
60+
```console
61+
./configure \
62+
--enable-embed \
63+
--enable-zts \
64+
--disable-zend-signals \
65+
--with-iconv=/opt/homebrew/opt/libiconv/
66+
```
67+
68+
#### Compilare PHP
69+
70+
Infine, compilare e installare PHP:
71+
72+
```console
73+
make -j"$(getconf _NPROCESSORS_ONLN)"
74+
sudo make install
75+
```
76+
77+
## Installare dipendenze opzionali
78+
79+
Alcune funzionalità di FrankenPHP dipendono da dipendenze di sistema opzionali che devono essere installate.
80+
In alternativa, queste funzionalità possono essere disabilitate passando i tag di build al compilatore Go.
81+
82+
| Caratteristica | Dipendenza | Crea tag per disabilitarlo |
83+
| ------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------- |
84+
| Compressione Brotli | [Brotli](https://github.com/google/brotli) | nobrotli |
85+
| Riavvia i worker alla modifica del file | [Osservatore C](https://github.com/e-dant/watcher/tree/release/watcher-c) | nessun osservatore |
86+
| [Mercure](mercure.md) | [Libreria Mercure Go](https://pkg.go.dev/github.com/dunglas/mercure) (installata automaticamente, licenza AGPL) | nomercura |
87+
88+
## Compilare l'app Go
89+
90+
Ora si può creare il file binario finale.
91+
92+
### Utilizzo di xcaddy
93+
94+
Il modo consigliato è utilizzare [xcaddy](https://github.com/caddyserver/xcaddy) per compilare FrankenPHP.
95+
`xcaddy` consente inoltre di aggiungere facilmente [moduli Caddy personalizzati](https://caddyserver.com/docs/modules/) ed estensioni FrankenPHP:
96+
97+
```console
98+
CGO_ENABLED=1 \
99+
XCADDY_GO_BUILD_FLAGS="-ldflags='-w -s' -tags=nobadger,nomysql,nopgx" \
100+
CGO_CFLAGS=$(php-config --includes) \
101+
CGO_LDFLAGS="$(php-config --ldflags) $(php-config --libs)" \
102+
xcaddy build \
103+
--output frankenphp \
104+
--with github.com/dunglas/frankenphp/caddy \
105+
--with github.com/dunglas/mercure/caddy \
106+
--with github.com/dunglas/vulcain/caddy \
107+
--with github.com/dunglas/caddy-cbrotli
108+
# Add extra Caddy modules and FrankenPHP extensions here
109+
# optionally, if you would like to compile from your frankenphp sources:
110+
# --with github.com/dunglas/frankenphp=$(pwd) \
111+
# --with github.com/dunglas/frankenphp/caddy=$(pwd)/caddy
112+
113+
```
114+
115+
> [!TIP]
116+
>
117+
> Se stai usando musl libc (il valore predefinito su Alpine Linux) e Symfony,
118+
> potrebbe essere necessario aumentare la dimensione dello stack predefinita.
119+
> Altrimenti potresti ricevere errori come `PHP Fatal error: Maximum call stack size of 83360 bytes reached during compilation. Try splitting expression`
120+
>
121+
> Per fare ciò, cambiare la variabile d'ambiente `XCADDY_GO_BUILD_FLAGS` in qualcosa di simile
122+
> `XCADDY_GO_BUILD_FLAGS=$'-ldflags "-w -s -extldflags \'-Wl,-z,stack-size=0x80000\'"'`
123+
> (modificare il valore della dimensione dello stack in base alle esigenze dell'app).
124+
125+
### Senza xcaddy
126+
127+
In alternativa, è possibile compilare FrankenPHP senza `xcaddy` utilizzando direttamente il comando `go`:
128+
129+
```console
130+
curl -L https://github.com/php/frankenphp/archive/refs/heads/main.tar.gz | tar xz
131+
cd frankenphp-main/caddy/frankenphp
132+
CGO_CFLAGS=$(php-config --includes) CGO_LDFLAGS="$(php-config --ldflags) $(php-config --libs)" go build -tags=nobadger,nomysql,nopgx
133+
```

0 commit comments

Comments
 (0)