{"id":77326,"date":"2024-04-16T15:35:52","date_gmt":"2024-04-16T14:35:52","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=77326&#038;preview=true&#038;preview_id=77326"},"modified":"2024-04-19T08:57:26","modified_gmt":"2024-04-19T07:57:26","slug":"installazione-estensione-php-docker","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/","title":{"rendered":"Come installare le dipendenze e le estensioni di PHP con Docker"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-docker\/\">Docker<\/a> \u00e8 una popolare piattaforma <a href=\"https:\/\/kinsta.com\/it\/blog\/open-source-vs-closed-source\/\">open-source<\/a> per lo sviluppo, la distribuzione e l&#8217;esecuzione di applicazioni. Incapsula le applicazioni e le loro dipendenze in container per promuovere la coerenza tra i diversi ambienti. Questa coerenza aiuta a prevenire i problemi legati ai conflitti di dipendenza e alle discrepanze dovute ai soliti &#8220;sulla mia macchina funziona&#8221;.<\/p>\n<p>Con Docker, \u00e8 possibile definire le dipendenze e le estensioni necessarie utilizzando i <a href=\"https:\/\/kinsta.com\/it\/blog\/dockerfile-entrypoint\/\">Dockerfile<\/a>. Questo significa che le applicazioni hanno tutte le librerie e gli strumenti necessari in un ambiente riproducibile e isolato.<\/p>\n<p>L&#8217;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">Hosting di Applicazioni<\/a> di Kinsta offre un supporto dinamico per i <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/dockerfile\">Dockerfile<\/a> personalizzati, che permette di avere un maggiore controllo sull&#8217;ambiente della propria applicazione. Con un Dockerfile si possono utilizzare quasi tutti i linguaggi: non si \u00e8 limitati ai linguaggi supportati da <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/nixpacks\">Nixpacks<\/a> o da <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/buildpacks\">Buildpacks<\/a>.<\/p>\n<p>Questo articolo spiega come installare e utilizzare le dipendenze e le estensioni <a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-php\/\">PHP<\/a> in Docker.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Perch\u00e9 usare Docker per installare le dipendenze?<\/h2>\n<p>L&#8217;uso di Docker per installare le dipendenze presenta diversi vantaggi:<\/p>\n<ul>\n<li><strong>Coerenza dell&#8217;ambiente<\/strong>: Docker permette di impacchettare l&#8217;applicazione, le sue dipendenze e le sue configurazioni in un contenitore. Questo approccio garantisce che l&#8217;ambiente in cui viene eseguita l&#8217;applicazione rimanga coerente tra le diverse configurazioni e sistemi, compresi gli ambienti di sviluppo, di test e di produzione.<\/li>\n<li><strong>Facilit\u00e0 di configurazione e risoluzione delle dipendenze<\/strong>: Docker permette di configurare l&#8217;ambiente dell&#8217;applicazione su qualsiasi macchina che la supporti, specificando tutte le dipendenze e le configurazioni necessarie. In questo modo si evitano i problemi di compatibilit\u00e0 e la seccatura di installare manualmente le dipendenze.<\/li>\n<li><strong>Controllo della versione e isolamento<\/strong>: i container Docker incapsulano tutte le dipendenze, comprese le loro versioni specifiche all&#8217;interno del contenitore. Ci\u00f2 significa che si pu\u00f2 controllare la versione dell&#8217;applicazione e delle sue dipendenze, favorendo la riproducibilit\u00e0 ed eliminando i conflitti tra le diverse versioni delle dipendenze.<\/li>\n<\/ul>\n<p>Inoltre, i container Docker garantiscono l&#8217;isolamento e aiutano a eliminare i conflitti tra le dipendenze di applicazioni diverse in esecuzione sullo stesso sistema.<\/p>\n<h2>Configurare un&#8217;applicazione su Kinsta<\/h2>\n<p>La configurazione di un&#8217;applicazione su Kinsta \u00e8 semplice. Infatti, basta andare su MyKinsta e seguire il <a href=\"https:\/\/kinsta.com\/it\/registrazione\/\" target=\"_blank\" rel=\"noopener noreferrer\">processo per creare un account<\/a>. Una volta creato, sar\u00e0 possibile accedere a una potente dashboard di hosting e a una serie di funzioni progettate per ottimizzare le prestazioni e la sicurezza.<\/p>\n<p>L&#8217;Hosting di Applicazioni di Kinsta <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapplication-getting-started#main\">supporta una serie di linguaggi di programmazione<\/a>, tra cui PHP, Python, Node.js e Ruby. Questo ampio supporto di linguaggi garantisce la compatibilit\u00e0 con diverse applicazioni e permette di scegliere il linguaggio pi\u00f9 adatto alle esigenze del proprio progetto.<\/p>\n<p>Ad esempio, se state sviluppando un&#8217;applicazione web dinamica con PHP, l&#8217;ambiente di hosting ottimizzato di Kinsta garantisce prestazioni elevate e affidabilit\u00e0 ai vostri progetti basati su PHP. Oppure, se state realizzando un&#8217;API RESTful con <a href=\"https:\/\/kinsta.com\/it\/blog\/node-js\/\">Node.js<\/a> o un&#8217;applicazione web data-driven con Python, Kinsta fornisce l&#8217;infrastruttura e il supporto necessari per la vostra applicazione.<\/p>\n<p>Per sperimentare come distribuire un&#8217;applicazione utilizzando un Dockerfile su Kinsta, useremo questa applicazione, un sistema di autenticazione di base basato su PHP che utilizza MariaDB per memorizzare i dati. Questa applicazione sfrutta anche alcuni pacchetti di composer, tra cui <a href=\"https:\/\/github.com\/Respect\/Validation\" target=\"_blank\" rel=\"noopener noreferrer\">respect\/validation<\/a> per la validazione degli input e <a href=\"https:\/\/github.com\/ircmaxell\/password_compat\" target=\"_blank\" rel=\"noopener noreferrer\">ircmaxell\/password-compat<\/a> per l&#8217;hashing delle password.<\/p>\n<h2>Preparare l&#8217;ambiente Docker<\/h2>\n<p>Un Dockerfile \u00e8 un file di testo contenente tutti i comandi, disposti nell&#8217;ordine necessario, di cui avremo bisogno per costruire l&#8217;immagine richiesta. Un Dockerfile di base per un&#8217;applicazione PHP potrebbe essere il seguente:<\/p>\n<pre><code class=\"language-yaml\">FROM php:8.3-cli\nCOPY . \/usr\/src\/myapp\nWORKDIR \/usr\/src\/myapp\nCMD [ \"php\", \".\/your-script.php\" ]<\/code><\/pre>\n<p>Questo Dockerfile crea un ambiente container per eseguire uno script PHP da un&#8217;interfaccia a riga di comando (CLI). Inizia utilizzando l&#8217;immagine ufficiale di PHP con la variante CLI, assicurandosi che solo il runtime PHP sia incluso nel contenitore.<\/p>\n<p>In seguito, copia il contenuto della directory locale &#8211; che contiene il Dockerfile &#8211; nella directory <strong>\/usr\/src\/myapp<\/strong> all&#8217;interno del container. Dopo aver impostato la directory di lavoro su <strong>\/usr\/src\/myapp<\/strong>, specifica lo script PHP da eseguire, <strong>your-script.php<\/strong>, utilizzando il comando <code>php<\/code>.<\/p>\n<p>L&#8217;immagine contiene molte estensioni PHP precompilate. Quindi, iniziamo a verificare se l&#8217;estensione di cui abbiamo bisogno \u00e8 installata eseguendo il comando <code>php -m<\/code>.<\/p>\n<p>Se l&#8217;estensione richiesta non \u00e8 disponibile nell&#8217;immagine di base, Docker fornisce i seguenti script di aiuto per supportarci a installare pi\u00f9 facilmente le estensioni aggiuntive:<\/p>\n<ul>\n<li><code>docker-php-ext-configure<\/code><\/li>\n<li><code>docker-php-ext-install<\/code><\/li>\n<li><code>docker-php-ext-enable<\/code><\/li>\n<\/ul>\n<p>Ad esempio, l&#8217;applicazione demo di questo tutorial utilizza l&#8217;estensione <a href=\"https:\/\/www.php.net\/manual\/en\/book.mysqli.php\" target=\"_blank\" rel=\"noopener noreferrer\">MySQLi<\/a> per interagire con il database MariaDB. Questa estensione non \u00e8 compilata di default nell&#8217;immagine, quindi installiamola usando il seguente comando nel Dockerfile:<\/p>\n<pre><code class=\"language-yaml\">RUN docker-php-ext-install mysqli<\/code><\/pre>\n<p>Per scrivere un Dockerfile per l&#8217;applicazione demo, creiamo un nuovo file chiamato <strong>Dockerfile<\/strong> nella cartella principale del progetto. Incolliamo il seguente codice nel file:<\/p>\n<pre><code class=\"language-yaml\">FROM php:8.3-apache\n\n# Install MySQL client, server, and other dependencies\nRUN apt-get update && \\\n    apt-get install -y \\\n    default-mysql-client \\\n    default-mysql-server \\\n    git \\\n    && apt-get clean \\\n    && rm -rf \/var\/lib\/apt\/lists\/*\n\n# Install mysqli PHP extension for MySQL support\nRUN docker-php-ext-install mysqli<\/code><\/pre>\n<p>Questo codice specifica l&#8217;<a href=\"https:\/\/hub.docker.com\/_\/php\" target=\"_blank\" rel=\"noopener noreferrer\">immagine ufficiale di PHP<\/a> &#8211; in particolare la versione 8.3 &#8211; con Apache installato come immagine di base per il container. Questa immagine fornisce un ambiente preconfigurato per l&#8217;esecuzione di applicazioni PHP con Apache come server web.<\/p>\n<p>Poi installa le dipendenze aggiuntive necessarie all&#8217;applicazione demo, tra cui <code>default-mysql-client<\/code> e <code>default-mysql-server<\/code>, che creano e interagiscono con il <a href=\"https:\/\/docs.sevalla.com\/databases\/import-export\/mariadb\">database MariaDB<\/a>.<\/p>\n<p>Infine, lo snippet qui sopra installa l&#8217;estensione PHP <code>mysqli<\/code> utilizzando <code>docker-php-ext-install<\/code>, che permette all&#8217;applicazione demo di stabilire una connessione ed eseguire operazioni sul database MariaDB.<\/p>\n<h2>Gestire le dipendenze con Docker<\/h2>\n<p>La gestione delle dipendenze PHP con Docker prevede l&#8217;utilizzo di <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a>, un popolare gestore di dipendenze per PHP. Installando Composer in un container Docker, \u00e8 possibile semplificare il processo di installazione, aggiornamento e gestione delle dipendenze PHP, facilitando la coerenza e la riproducibilit\u00e0 in ambienti diversi.<\/p>\n<p>Seguiamo i passi qui sotto per utilizzare Composer per la gestione delle dipendenze all&#8217;interno dell&#8217;applicazione demo. Aggiungiamo il codice di ogni passaggio al <strong>Dockerfile<\/strong>.<\/p>\n<ol start=\"1\">\n<li>Installiamo Composer nell&#8217;immagine Docker utilizzando il comando seguente:\n<pre><code class=\"language-yaml\"># Install Composer\nCOPY --from=composer\/composer:latest-bin \/composer \/usr\/bin\/composer<\/code><\/pre>\n<p>Questo comando copia un file binario pre-costruito di Composer dal repository di Docker Hub nella nostra immagine. <code>--from=composer\/composer:latest-bin<\/code> specifica l&#8217;immagine sorgente da cui copiare i file.<\/p>\n<p>Il percorso <code>\/composer<\/code> dell&#8217;immagine sorgente contiene i file da copiare, mentre il percorso <code>\/usr\/bin\/composer<\/code> dell&#8217;immagine Docker \u00e8 la destinazione di questi file.<\/li>\n<li>Quindi, impostiamo la directory di lavoro eseguendo il seguente comando:\n<pre><code class=\"language-yaml\"># Set working directory\nWORKDIR \/var\/www\/html<\/code><\/pre>\n<\/li>\n<li>Copiamo i file <strong>composer.json<\/strong> e <strong>composer.lock<\/strong> nell&#8217;immagine.\n<pre><code class=\"language-yaml\"># Copy composer.json and composer.lock\nCOPY composer.json composer.lock .\/<\/code><\/pre>\n<\/li>\n<li>Installiamo le dipendenze di Composer elencate in <strong>composer.json<\/strong>.\n<pre><code class=\"language-yaml\"># Install Composer dependencies\nRUN composer install --no-dev --optimize-autoloader<\/code><\/pre>\n<p><code>--no-dev<\/code> indica a Composer di saltare le dipendenze specifiche dello sviluppo. <code>--optimize-autoloader<\/code> indica a Composer di ottimizzare l&#8217;autoloader per ottenere prestazioni migliori.<\/li>\n<\/ol>\n<p>Possiamo aggiornare e gestire le dipendenze nel tempo modificando il file <strong>composer.json<\/strong> secondo le necessit\u00e0, aggiungendo nuove dipendenze, aggiornando i vincoli di versione e rimuovendo le dipendenze non pi\u00f9 necessarie.<\/p>\n<p>Dopo aver apportato le modifiche necessarie, eseguiamo <code>composer install<\/code> o <code>composer update<\/code> all&#8217;interno del container Docker per installare o aggiornare le dipendenze di conseguenza.<\/p>\n<h3>Applicare le configurazioni finali<\/h3>\n<p>Prima che l&#8217;applicazione funzioni con Docker, dobbiamo creare il database e l&#8217;utente del database, impostare le variabili d&#8217;ambiente e copiare i file del progetto nell&#8217;immagine Docker.<\/p>\n<p>A tal fine, seguiamo questi passaggi e copiamo ogni frammento di codice nel nostro Dockerfile.<\/p>\n<ol start=\"1\">\n<li>Impostiamo le variabili d&#8217;ambiente che l&#8217;applicazione PHP utilizzer\u00e0 per connettersi al database MariaDB. <code>DB_USER<\/code>, <code>DB_PASSWORD<\/code> e <code>DB_NAME<\/code> possono essere sostituiti con le nostre credenziali preferite.\n<pre><code class=\"language-yaml\"># Set environment variables\nENV DB_HOST=localhost \\\n    DB_USER=kinsta_user \\\n    DB_PASSWORD=your_password_here \\\n    DB_NAME=kinsta_docker_auth \\\n    # Path to the Unix socket file used for connecting to the MariaDB server.\n    DB_SOCKET=\/var\/run\/mysqld\/mysqld.sock<\/code><\/pre>\n<\/li>\n<li>Copiamo i file dell&#8217;applicazione PHP nell&#8217;immagine Docker:\n<pre><code class=\"language-yaml\"># Copy PHP application files into the image\nCOPY . .<\/code><\/pre>\n<\/li>\n<li>Copiamo lo script di avvio nell&#8217;immagine:\n<pre><code class=\"language-yaml\"># Copy the startup script\nCOPY scripts\/start.sh \/usr\/local\/bin\/start.sh<\/code><\/pre>\n<p>Questo script viene eseguito all&#8217;avvio del container ed \u00e8 responsabile dell&#8217;avvio del server di database, della creazione di un database, di una tabella e di un utente e dell&#8217;avvio del server Apache. Creeremo questo script in seguito.<\/li>\n<li>Rendiamo lo script eseguibile utilizzando il comando <code><a href=\"https:\/\/www.geeksforgeeks.org\/chmod-command-linux\/\" target=\"_blank\" rel=\"noopener noreferrer\">chmod<\/a><\/code> il comando\n<pre><code class=\"language-yaml\"># Make the script executable\nRUN chmod +x \/usr\/local\/bin\/start.sh<\/code><\/pre>\n<\/li>\n<li>Infine, eseguiamo lo script utilizzando il comando:\n<pre><code class=\"language-yaml\"># Execute the startup script\nCMD [\"\/usr\/local\/bin\/start.sh\"]<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>Ora che il Dockerfile \u00e8 completo, creiamo lo script di avvio di cui abbiamo parlato in precedenza.<\/p>\n<p>Creiamo un nuovo file chiamato <strong>scripts\/start.sh<\/strong> nella cartella principale del progetto e aggiungiamo il seguente codice. Assicuriamoci di utilizzare le credenziali del database che abbiamo definito nel Dockerfile.<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# Start MariaDB server\nservice mariadb start\n\n# Wait for MariaDB to be fully initialized (retry up to 30 times, waiting 1  second between each attempt)\nattempt=0\nwhile [ $attempt -lt 30 ]; do\n        if mysqladmin ping &&gt;\/dev\/null; then\n            echo \"MariaDB is up and running.\"\n            break\n        else\n            echo \"MariaDB is not yet available. Retrying...\"\n            attempt=$((attempt+1))\n            sleep 1\n        Fi\ndone\n\n# If MariaDB failed to start within the specified attempts, exit with an error\nif [ $attempt -eq 30 ]; then\n        echo \"Error: MariaDB failed to start within the specified time.\"\n        exit 1\nfi\n\n# Set the database name, username, and password\ndbname=\"kinsta_docker_auth\"\ndbuser=\"kinsta_user\"\ndbpassword=\"your_password_here\"\n\n# Create the database if it does not exist\nmysql -u root -e \"CREATE DATABASE IF NOT EXISTS $dbname;\"\n\n# Create a database user and assign privileges to the database\nmysql -u root -e \"CREATE USER '$dbuser'@'localhost' IDENTIFIED BY '$dbpassword';\"\nmysql -u root -e \"GRANT ALL PRIVILEGES ON $dbname.* TO '$dbuser'@'localhost';\"\nmysql -u root -e \"FLUSH PRIVILEGES;\"\n\n# Create users table if it does not exist\nmysql -u root -e \"USE $dbname; CREATE TABLE IF NOT EXISTS users (\n        id INT AUTO_INCREMENT PRIMARY KEY,\n        username VARCHAR(20) UNIQUE NOT NULL,\n        password_hash VARCHAR(255) NOT NULL\n);\"\n\n# Start Apache server\napache2ctl -D FOREGROUND<\/code><\/pre>\n<p>Questo <a href=\"https:\/\/kinsta.com\/it\/blog\/linguaggi-di-scripting\/#8-bash\">script Bash<\/a> avvia il server MariaDB. Poi, quando il server \u00e8 completamente inizializzato, crea un database, un utente con i privilegi appropriati e una tabella all&#8217;interno del database. Infine, avvia il server Apache.<\/p>\n<h2>Distribuire su Kinsta<\/h2>\n<p>Prima di distribuire la nostra applicazione su Kinsta, dobbiamo configurare alcune configurazioni per il server Apache. Il servizio di <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Hosting di Applicazioni<\/a> di Kinsta ha le porte <code>80<\/code> e <code>443<\/code> aperte, ma \u00e8 consigliabile utilizzare la porta <code>8080<\/code> se l&#8217;applicazione espone qualche porta.<\/p>\n<p>Per impostazione predefinita, il server Apache ascolta le connessioni sulla porta <code>80<\/code>, quindi dovremo configurarlo per ascoltare le connessioni sulla porta <code>8080<\/code>. Per farlo, seguiamo questi passaggi:<\/p>\n<ol start=\"1\">\n<li>Creiamo una cartella chiamata <strong>apache-conf<\/strong> nella cartella principale del progetto.<\/li>\n<li>Nella cartella appena creata, creiamo un file chiamato <strong>apache-config.conf<\/strong>. Aggiungiamo il codice seguente per configurare Apache in modo che ascolti le connessioni sulla porta 8080:\n<pre><code class=\"language-bash\">&lt;VirtualHost *:8080&gt;\n    ServerAdmin webmaster@localhost\n    DocumentRoot \/var\/www\/html\n\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\n&lt;\/VirtualHost&gt;<\/code><\/pre>\n<\/li>\n<li>Nella cartella <strong>apache-conf<\/strong>, creiamo un nuovo file chiamato <strong>apache-ports.conf<\/strong> e aggiungiamo il codice seguente.\n<pre><code class=\"language-bash\"># Change the Listen directive to listen on port 8080\nListen 8080\n\n# Keep the existing configuration for port 443\n&lt;IfModule ssl_module&gt;\n    Listen 443\n&lt;\/IfModule&gt;\n\n&lt;IfModule mod_gnutls.c&gt;\n    Listen 443\n&lt;\/IfModule&gt;<\/code><\/pre>\n<p>La direttiva <code>Listen 8080<\/code> indica ad Apache di ascoltare le connessioni in entrata sulla porta 8080.<\/li>\n<li>Ora dobbiamo modificare il Dockerfile per applicare questa configurazione al server Apache. Nel Dockerfile, aggiungiamo questi comandi subito dopo il comando per impostare la directory di lavoro (<code>WORKDIR \/var\/www\/html<\/code>). Questi sono responsabili della copia dei file di configurazione personalizzati nelle directory appropriate.\n<pre><code class=\"language-yaml\"># Set up Apache virtual host\nCOPY apache-conf\/apache-config.conf \/etc\/apache2\/sites-available\/000-default.conf\n\n# Set up Apache ports\nCOPY apache-conf\/apache-ports.conf \/etc\/apache2\/ports.conf<\/code><\/pre>\n<\/li>\n<li>Infine, creiamo un file <strong>.dockerignore<\/strong> nella cartella principale del progetto. Questo file contiene un elenco di cartelle e file che non devono essere copiati nell&#8217;immagine Docker. Aggiungiamo <code>vendor<\/code> per escludere la cartella <strong>vendor<\/strong>.<\/li>\n<\/ol>\n<p>Una volta completate tutte le configurazioni, possiamo effettuare il deploy su Kinsta. Carichiamo i file del progetto sul nostro provider Git preferito (<a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">Bitbucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> o <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>), quindi seguiamo i passaggi qui in basso.<\/p>\n<ol start=\"1\">\n<li>Nella <a href=\"https:\/\/my.kinsta.com\/?lang=it\" target=\"_blank\" rel=\"noopener noreferrer\">dashboard MyKinsta<\/a>, selezioniamo <strong>Applicazioni<\/strong> nella barra laterale e clicchiamo sul pulsante <strong>Aggiungi applicazione<\/strong>.<\/li>\n<li>Nella pagina <strong>Aggiungi applicazione<\/strong>, selezioniamo il repository Git e il branch, forniamo il nome dell&#8217;applicazione, scegliamo la posizione del data center e clicchiamo su <strong>Continua<\/strong>.<\/li>\n<li>Nella pagina dell&#8217;<strong>ambiente di build<\/strong>, selezioniamo <strong>Usa Dockerfile per impostare l&#8217;immagine del container<\/strong>. Forniamo &#8220;Dockerfile&#8221; come <strong>percorso del Dockerfile<\/strong> e un punto (&#8220;.&#8221;) come <strong>contesto<\/strong>. Clicchiamo su <strong>Continua<\/strong>.\n<p><figure id=\"attachment_105526\" aria-describedby=\"caption-attachment-105526\" style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/build-environment.png\" alt=\"Nelle opzioni dell'ambiente di costruzione, selezionare l'opzione Dockerfile e specificare il percorso del file.\" width=\"1001\" height=\"471\"><figcaption id=\"caption-attachment-105526\" class=\"wp-caption-text\">Sezione Ambiente di build del modulo Aggiungi applicazione.<\/figcaption><\/figure><\/li>\n<li>Lasciamo tutto nella pagina <strong>Imposta i processi<\/strong> e clicchiamo su <strong>Continua<\/strong><strong>. Nota<\/strong>: il database perder\u00e0 i dati quando riavviamo o distribuiamo nuovamente l&#8217;applicazione. Per risolvere questo problema, l&#8217;<a href=\"https:\/\/docs.sevalla.com\/applications\/storage\">archiviazione persistente<\/a> di Kinsta pu\u00f2 essere applicata in questa pagina. Questa guida non analizza l&#8217;impostazione dell&#8217;archiviazione persistente.<\/li>\n<li>Confermiamo i dettagli del pagamento nella pagina di <strong>riepilogo<\/strong> e clicchiamo su <strong>Distribuisci ora<\/strong>.<\/li>\n<li>Una volta completata la distribuzione, apriamo il dominio dell&#8217;applicazione per visualizzare il sito live.\n<figure id=\"attachment_105526\" aria-describedby=\"caption-attachment-105526\" style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/live-site.png\" alt=\"La pagina di login del sito live con i campi per il nome utente e la password\" width=\"1001\" height=\"471\"><figcaption id=\"caption-attachment-105526\" class=\"wp-caption-text\">Pagina di login sul sito live.<\/figcaption><\/figure>\n<p>Registriamo un account, accediamo con i nostri dati e verifichiamo che sia possibile accedere alla pagina protetta e che tutto funzioni come previsto.<\/p>\n<p><figure id=\"attachment_105526\" aria-describedby=\"caption-attachment-105526\" style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/login-homepage.png\" alt=\"La homepage dell'applicazione dell'utente connesso si apre con un messaggio di benvenuto personalizzato.\" width=\"1001\" height=\"471\"><figcaption id=\"caption-attachment-105526\" class=\"wp-caption-text\">La homepage dell&#8217;applicazione una volta effettuato l&#8217;accesso.<\/figcaption><\/figure><\/li>\n<\/ol>\n<h2>Monitorare e ottimizzare l&#8217;applicazione<\/h2>\n<p>Una volta che l&#8217;applicazione \u00e8 attiva e funzionante su Kinsta, il monitoraggio e l&#8217;ottimizzazione delle sue prestazioni sono essenziali. Questo assicura che l&#8217;applicazione possa funzionare senza problemi e utilizzare le risorse in modo efficiente.<\/p>\n<p>L&#8217;ottimizzazione delle prestazioni dell&#8217;applicazione \u00e8 fondamentale per offrire un&#8217;esperienza utente veloce e reattiva.<\/p>\n<p>Kinsta \u00e8 sempre al lavoro per <a href=\"https:\/\/kinsta.com\/it\/blog\/prestazioni-wordpress\/\">ottimizzare le prestazioni delle applicazioni<\/a>. Offriamo strumenti di monitoraggio completi per aiutarvi a tenere traccia di varie metriche di performance, tra cui la larghezza di banda, il tempo totale di build, l&#8217;utilizzo della CPU, il consumo di memoria, il traffico di rete e i tempi di risposta. \u00c8 possibile visualizzare tutte queste informazioni navigando nella sezione <strong>Statistiche<\/strong> dell&#8217;applicazione sulla dashboard di Kinsta.<\/p>\n<p>Se riscontrate un problema o un comportamento inaspettato dell&#8217;applicazione, potete accedere alla sezione <strong>Log<\/strong> della dashboard di Kinsta. La panoramica dettagliata delle prestazioni e del comportamento dell&#8217;applicazione include i log degli errori e degli accessi.<\/p>\n<p>Esaminando meticolosamente questi registri, \u00e8 possibile ottenere informazioni preziose sulle cause del problema, come i messaggi di errore, le stack traces o i modelli di comportamento anomalo. Queste informazioni possono aiutarvi a diagnosticare la causa principale del problema e a intraprendere le azioni appropriate per risolverlo.<\/p>\n<p>Inoltre, potrete sfruttare le tecniche di ottimizzazione delle prestazioni all&#8217;interno dell&#8217;ambiente Docker, come l&#8217;ottimizzazione delle immagini Docker e l&#8217;implementazione delle best practice per l&#8217;architettura delle applicazioni e l&#8217;ottimizzazione del codice.<\/p>\n<h2>Riepilogo<\/h2>\n<p>I container leggeri e portatili di Docker consentono di impacchettare e distribuire facilmente le applicazioni con tutte le dipendenze necessarie, indipendentemente dall&#8217;infrastruttura sottostante. Inserendo in un container un&#8217;applicazione e le sue dipendenze, si promuove la coerenza tra i diversi ambienti, si semplificano i processi di configurazione e si ottiene un migliore controllo delle versioni.<\/p>\n<p>L&#8217;utilizzo di Docker con Kinsta migliora il processo di distribuzione della vostra applicazione. Il supporto di Dockerfile personalizzati e di un&#8217;ampia gamma di linguaggi di programmazione, tra cui PHP, garantisce compatibilit\u00e0 e flessibilit\u00e0 ai vostri progetti.<\/p>\n<p>Grazie all&#8217;<a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/infrastructure\">infrastruttura di Hosting di Applicazioni<\/a> e alla tecnologia di containerizzazione di Docker, potete ottenere una distribuzione semplificata, scalabilit\u00e0 e affidabilit\u00e0 per le vostre applicazioni.<\/p>\n<p><em>Avete gi\u00e0 utilizzato Docker per i vostri progetti? Avete esperienze o suggerimenti su Docker? Condivideteli nei commenti qui sotto!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker \u00e8 una popolare piattaforma open-source per lo sviluppo, la distribuzione e l&#8217;esecuzione di applicazioni. Incapsula le applicazioni e le loro dipendenze in container per promuovere &#8230;<\/p>\n","protected":false},"author":199,"featured_media":77327,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26216,26187],"class_list":["post-77326","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-docker","topic-funzione-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Come installare le dipendenze e le estensioni di PHP con Docker - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Snellisci il tuo flusso di lavoro di sviluppo imparando a installare le dipendenze e le estensioni PHP all&#039;interno dei container Docker.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come installare le dipendenze e le estensioni di PHP con Docker\" \/>\n<meta property=\"og:description\" content=\"Snellisci il tuo flusso di lavoro di sviluppo imparando a installare le dipendenze e le estensioni PHP all&#039;interno dei container Docker.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-16T14:35:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-19T07:57:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Snellisci il tuo flusso di lavoro di sviluppo imparando a installare le dipendenze e le estensioni PHP all&#039;interno dei container Docker.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker-1024x512.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Come installare le dipendenze e le estensioni di PHP con Docker\",\"datePublished\":\"2024-04-16T14:35:52+00:00\",\"dateModified\":\"2024-04-19T07:57:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/\"},\"wordCount\":2165,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/\",\"name\":\"Come installare le dipendenze e le estensioni di PHP con Docker - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\",\"datePublished\":\"2024-04-16T14:35:52+00:00\",\"dateModified\":\"2024-04-19T07:57:26+00:00\",\"description\":\"Snellisci il tuo flusso di lavoro di sviluppo imparando a installare le dipendenze e le estensioni PHP all'interno dei container Docker.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/docker\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come installare le dipendenze e le estensioni di PHP con Docker\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Come installare le dipendenze e le estensioni di PHP con Docker - Kinsta\u00ae","description":"Snellisci il tuo flusso di lavoro di sviluppo imparando a installare le dipendenze e le estensioni PHP all'interno dei container Docker.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/","og_locale":"it_IT","og_type":"article","og_title":"Come installare le dipendenze e le estensioni di PHP con Docker","og_description":"Snellisci il tuo flusso di lavoro di sviluppo imparando a installare le dipendenze e le estensioni PHP all'interno dei container Docker.","og_url":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2024-04-16T14:35:52+00:00","article_modified_time":"2024-04-19T07:57:26+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Snellisci il tuo flusso di lavoro di sviluppo imparando a installare le dipendenze e le estensioni PHP all'interno dei container Docker.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker-1024x512.jpg","twitter_creator":"@Kinsta_IT","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Jeremy Holcombe","Tempo di lettura stimato":"14 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Come installare le dipendenze e le estensioni di PHP con Docker","datePublished":"2024-04-16T14:35:52+00:00","dateModified":"2024-04-19T07:57:26+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/"},"wordCount":2165,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/","url":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/","name":"Come installare le dipendenze e le estensioni di PHP con Docker - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","datePublished":"2024-04-16T14:35:52+00:00","dateModified":"2024-04-19T07:57:26+00:00","description":"Snellisci il tuo flusso di lavoro di sviluppo imparando a installare le dipendenze e le estensioni PHP all'interno dei container Docker.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/installazione-estensione-php-docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Docker","item":"https:\/\/kinsta.com\/it\/argomenti\/docker\/"},{"@type":"ListItem","position":3,"name":"Come installare le dipendenze e le estensioni di PHP con Docker"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/it\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/77326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=77326"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/77326\/revisions"}],"predecessor-version":[{"id":77342,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/77326\/revisions\/77342"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77326\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77326\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77326\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77326\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77326\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77326\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77326\/translations\/fr"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77326\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/77327"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=77326"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=77326"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=77326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}