<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux - Web Design | Creazione Siti Internet</title>
	<atom:link href="https://www.mrtux.it/linux/feed" rel="self" type="application/rss+xml" />
	<link>https://www.mrtux.it</link>
	<description>Sviluppo Siti Web - Assistenza WordPress</description>
	<lastBuildDate>Sun, 01 Mar 2026 15:22:01 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://www.mrtux.it/wp-content/uploads/2022/06/favicon-150x150.png</url>
	<title>Linux - Web Design | Creazione Siti Internet</title>
	<link>https://www.mrtux.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>OpenClaw: Guida Completa, Configurazione e Creazione Skills</title>
		<link>https://www.mrtux.it/openclaw-guida-completa-configurazione-e-creazione-skills</link>
					<comments>https://www.mrtux.it/openclaw-guida-completa-configurazione-e-creazione-skills#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sun, 22 Feb 2026 17:54:43 +0000</pubDate>
				<category><![CDATA[Copywriting]]></category>
		<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[openclaw]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3187</guid>

					<description><![CDATA[OpenClaw ha conquistato oltre 100.000 stelle su GitHub in meno di una settimana dal lancio, a gennaio 2026, diventando uno dei repository open-source in più rapida crescita della storia. Non si tratta di un semplice chatbot: è un agente AI personale che gira sul proprio hardware, agisce autonomamente e impara nuove abilità attraverso un sistema [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>OpenClaw</strong> ha conquistato oltre 100.000 stelle su GitHub in meno di una settimana dal lancio, a gennaio 2026, diventando uno dei repository open-source in più rapida crescita della storia. Non si tratta di un semplice chatbot: è un <strong>agente AI personale</strong> che gira sul proprio hardware, agisce autonomamente e impara nuove abilità attraverso un sistema di skill modulari.</p>
<p>Questa guida copre tutto — dall'installazione alla configurazione avanzata — con tre esempi pratici di skill pronti all'uso, inclusa una che <strong>pubblica automaticamente articoli giornalistici su WordPress</strong> tramite WP-CLI.</p>
<h2>1. Cos'è OpenClaw e come funziona</h2>
<p>OpenClaw (precedentemente noto come MoltBot e ClawdBot) è un framework open-source per agenti AI personali, progettato per girare direttamente sul proprio hardware. A differenza degli assistenti AI tradizionali, non si limita a rispondere a domande: <strong>agisce, esegue comandi, automatizza flussi di lavoro</strong> e impara nuove abilità in modo autonomo.</p>
<p>Creato da Peter Steinberger (fondatore di PSPDFKit), il progetto si basa su tre principi fondamentali:</p>
<ul>
<li><strong>Local-first</strong> — tutti i dati, la memoria e le configurazioni risiedono sul proprio machine, senza dipendenza da servizi cloud.</li>
<li><strong>Model-agnostic</strong> — supporta Claude (Anthropic), GPT-4, Gemini, Llama e qualsiasi modello compatibile con l'API OpenAI.</li>
<li><strong>Community-extensible</strong> — le Skill sono file <code>SKILL.md</code> portabili, condivisibili e installabili dal marketplace <strong>ClawHub</strong>.</li>
</ul>
<h3>Il Loop dell'Agente</h3>
<p>Quando si lancia <code>openclaw gateway</code>, si avvia un singolo processo Node.js che gestisce tutto: canali di messaggistica, sessioni, chiamate al modello, esecuzione degli strumenti e persistenza della memoria. Il ciclo agentico si compone di quattro fasi:</p>
<ol>
<li><strong>Perceive</strong> — riceve un input (comando utente, evento cron, webhook, heartbeat).</li>
<li><strong>Plan</strong> — l'LLM analizza il contesto, la memoria e le skill disponibili.</li>
<li><strong>Act</strong> — esegue strumenti: shell, browser, web fetch, file system, API.</li>
<li><strong>Reflect</strong> — aggiorna la memoria, notifica l'utente e attende il prossimo ciclo.</li>
</ol>
<h3>Dove si posiziona rispetto ad altri strumenti</h3>
<p>Gli LLM puri (ChatGPT, Claude) sono intelligenti ma non agiscono. Gli strumenti di automazione (n8n, Make, Zapier) agiscono ma richiedono configurazione esplicita. OpenClaw unisce entrambi: l'LLM decide cosa fare, il Gateway lo esegue.</p>
<hr />
<h2>2. Installazione</h2>
<h3>Requisiti di sistema</h3>
<table>
<thead>
<tr>
<th>Componente</th>
<th>Requisito</th>
</tr>
</thead>
<tbody>
<tr>
<td>Node.js</td>
<td>≥ 22.x (LTS raccomandato)</td>
</tr>
<tr>
<td>npm/pnpm</td>
<td>npm ≥ 10 o pnpm ≥ 9</td>
</tr>
<tr>
<td>OS</td>
<td>macOS, Linux, Windows (WSL2)</td>
</tr>
<tr>
<td>RAM</td>
<td>Minimo 2 GB (4 GB+ raccomandati)</td>
</tr>
<tr>
<td>Disco</td>
<td>~500 MB per l'installazione base</td>
</tr>
</tbody>
</table>
<h3>Installazione via npm</h3>
<pre><code class="language-bash">npm install -g openclaw@latest</code></pre>
<p>In alternativa con pnpm:</p>
<pre><code class="language-bash">pnpm add -g openclaw@latest</code></pre>
<p>Verifica l'installazione:</p>
<pre><code class="language-bash">openclaw --version</code></pre>
<h3>Installazione via script (Linux/macOS)</h3>
<pre><code class="language-bash">curl -fsSL https://clawd.bot/install.sh | bash</code></pre>
<blockquote>
<p>⚠️ <strong>Sicurezza</strong> — Prima di eseguire script via <code>curl</code>, esamina sempre il contenuto su <code>clawd.bot</code>. OpenClaw richiede permessi elevati sulla macchina.</p>
</blockquote>
<h3>Onboarding Wizard</h3>
<p>Dopo l'installazione, avvia il wizard interattivo:</p>
<pre><code class="language-bash">openclaw onboard --install-daemon</code></pre>
<p>Il flag <code>--install-daemon</code> installa il daemon di sistema (launchd su macOS, systemd su Linux) in modo che il Gateway rimanga sempre attivo in background. Il wizard configura: modello LLM, canale di messaggistica, workspace principale e prime skill.</p>
<h3>Verifica con Doctor</h3>
<pre><code class="language-bash">openclaw doctor</code></pre>
<p>Controlla: stato del daemon, API key configurate, permessi del workspace, policy DM, presenza di binari richiesti dalle skill attive.</p>
<hr />
<h2>3. Configurazione</h2>
<h3>Il file principale: <code>~/.openclaw/openclaw.json</code></h3>
<pre><code class="language-json">{
  &quot;agents&quot;: {
    &quot;defaults&quot;: {
      &quot;model&quot;: &quot;claude-opus-4-6&quot;,
      &quot;provider&quot;: &quot;anthropic&quot;,
      &quot;maxTokens&quot;: 8192
    }
  },
  &quot;gateway&quot;: {
    &quot;port&quot;: 18789,
    &quot;host&quot;: &quot;127.0.0.1&quot;
  },
  &quot;skills&quot;: {
    &quot;load&quot;: {
      &quot;extraDirs&quot;: [&quot;/path/to/custom/skills&quot;]
    }
  }
}</code></pre>
<h3>Configurazione dei Modelli LLM</h3>
<p>OpenClaw supporta qualsiasi provider compatibile OpenAI. I principali:</p>
<ul>
<li><strong>Anthropic (Claude)</strong> — raccomandato per resistenza all'injection e long-context</li>
<li><strong>OpenAI (GPT-4, GPT-4o)</strong></li>
<li><strong>Google (Gemini Flash, Gemini Pro)</strong></li>
<li><strong>Provider locali</strong> via Ollama o LM Studio</li>
</ul>
<p><strong>Esempio configurazione Anthropic:</strong></p>
<pre><code class="language-json">&quot;providers&quot;: {
  &quot;anthropic&quot;: {
    &quot;apiKey&quot;: &quot;sk-ant-...&quot;,
    &quot;defaultModel&quot;: &quot;claude-opus-4-6&quot;
  }
}</code></pre>
<p><strong>Failover automatico tra modelli:</strong></p>
<pre><code class="language-json">&quot;modelFailover&quot;: [
  &quot;claude-opus-4-6&quot;,
  &quot;claude-sonnet-4-6&quot;,
  &quot;gpt-4o&quot;
]</code></pre>
<blockquote>
<p>💡 <strong>Consiglio</strong> — Usa <code>claude-opus-4-6</code> per task complessi (ragionamento, coding, analisi) e Gemini Flash per task semplici (riassunti, lookup veloci). Puoi cambiare modello dal menu Telegram in qualsiasi momento.</p>
</blockquote>
<h3>Configurazione dei Canali</h3>
<p><strong>Telegram</strong> — il canale più semplice per iniziare. Crea un bot con @BotFather e ottieni il token:</p>
<pre><code class="language-json">&quot;channels&quot;: {
  &quot;telegram&quot;: {
    &quot;enabled&quot;: true,
    &quot;token&quot;: &quot;YOUR_BOT_TOKEN&quot;,
    &quot;ownerIds&quot;: [123456789]
  }
}</code></pre>
<p><strong>Slack</strong> — richiede una Slack App con permessi <code>chat:write</code>, <code>im:read</code>, <code>im:write</code>, <code>users:read</code>:</p>
<pre><code class="language-json">&quot;slack&quot;: {
  &quot;enabled&quot;: true,
  &quot;botToken&quot;: &quot;xoxb-...&quot;,
  &quot;signingSecret&quot;: &quot;...&quot;,
  &quot;appToken&quot;: &quot;xapp-...&quot;
}</code></pre>
<h3>Il file <code>soul.md</code></h3>
<p>Uno degli aspetti più potenti di OpenClaw è il file <code>soul.md</code> — la personalità e le istruzioni permanenti dell'agente. Si trova nel workspace principale e viene caricato come system prompt persistente:</p>
<pre><code class="language-markdown"># Il mio Assistente AI Personale

## Personalità
Sei un assistente professionale, preciso e proattivo. Parli italiano.
Anticipi le esigenze e proponi soluzioni prima di essere interrogato.

## Contesto
- Nome: Marco
- Professione: Giornalista digitale
- Sito WordPress: https://miosito.it
- Server: VPS Ubuntu 22.04

## Regole operative
1. Prima di eseguire comandi distruttivi, chiedi conferma.
2. Logga sempre le azioni importanti in ~/logs/agent.log
3. Avvisami su Telegram se qualcosa va storto.</code></pre>
<h3>Sicurezza — Best Practice</h3>
<ul>
<li>Non installare mai OpenClaw sull'account root di un server di produzione.</li>
<li>Usa VM o container dedicati per ambienti ad alto rischio.</li>
<li>Configura le <strong>Exec Approvals</strong> per i comandi shell pericolosi.</li>
<li>Imposta <strong>spending cap</strong> sul dashboard del provider LLM.</li>
<li>Esegui <code>openclaw doctor</code> regolarmente.</li>
</ul>
<blockquote>
<p>⚠️ <strong>Attenzione</strong> — Un agente in loop può consumare molti token rapidamente. Imposta sempre un limite mensile di spesa prima di avviare automazioni autonome.</p>
</blockquote>
<hr />
<h2>4. Il Sistema delle Skills</h2>
<h3>Cos'è una Skill</h3>
<p>Una skill in OpenClaw è una cartella contenente un file <code>SKILL.md</code> con frontmatter YAML e istruzioni in linguaggio naturale. Le skill insegnano all'agente come usare strumenti specifici, seguire procedure particolari o automatizzare task ricorrenti.</p>
<pre><code>my-skill/
  SKILL.md         # definizione principale
  scripts/         # script Python/Bash
  config.json      # configurazione opzionale</code></pre>
<h3>Anatomia di un <code>SKILL.md</code></h3>
<pre><code class="language-yaml">---
name: nome-skill
description: Descrizione breve che appare nel prompt dell&#039;agente
homepage: https://link-documentazione.com
user-invocable: true
disable-model-invocation: false
metadata:
  {&quot;openclaw&quot;: {
    &quot;emoji&quot;: &quot;🔧&quot;,
    &quot;requires&quot;: {
      &quot;bins&quot;: [&quot;wp&quot;, &quot;python3&quot;],
      &quot;env&quot;: [&quot;WP_SSH_HOST&quot;],
      &quot;config&quot;: [&quot;browser.enabled&quot;]
    }
  }}
---

# Istruzioni per l&#039;agente

Qui vanno le istruzioni dettagliate in linguaggio naturale.
L&#039;agente le leggerà e le seguirà per eseguire il task.</code></pre>
<h3>Posizioni e Precedenza</h3>
<p>OpenClaw carica le skill da tre posizioni, in ordine di precedenza:</p>
<ol>
<li><strong>Workspace skills</strong> — <code>&lt;workspace&gt;/skills</code> → priorità massima</li>
<li><strong>Managed/local skills</strong> — <code>~/.openclaw/skills</code> → condivise tra tutti gli agenti</li>
<li><strong>Bundled skills</strong> — incluse nell'installazione npm → priorità minima</li>
</ol>
<h3>ClawHub — Il Marketplace</h3>
<p><a href="https://clawhub.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">ClawHub</a> è il registry pubblico delle skill per OpenClaw. Comandi principali:</p>
<pre><code class="language-bash"># Cerca una skill
clawhub search wordpress

# Installa una skill nel workspace
clawhub install wordpress-publisher

# Aggiorna tutte le skill installate
clawhub update --all</code></pre>
<h3>Gating (Filtri al Caricamento)</h3>
<p>OpenClaw filtra le skill al caricamento in base ai requisiti dichiarati:</p>
<table>
<thead>
<tr>
<th>Campo</th>
<th>Comportamento</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>requires.bins</code></td>
<td>I binari devono essere presenti nel PATH</td>
</tr>
<tr>
<td><code>requires.env</code></td>
<td>Le variabili d'ambiente devono esistere</td>
</tr>
<tr>
<td><code>requires.config</code></td>
<td>I path di <code>openclaw.json</code> devono avere valori truthy</td>
</tr>
<tr>
<td><code>os</code></td>
<td>La skill si carica solo sugli OS specificati</td>
</tr>
</tbody>
</table>
<h3>Iniezione di Segreti nelle Skill</h3>
<pre><code class="language-json">&quot;skills&quot;: {
  &quot;entries&quot;: {
    &quot;my-wordpress-skill&quot;: {
      &quot;env&quot;: {
        &quot;WP_DB_PASS&quot;: &quot;secret123&quot;,
        &quot;UNSPLASH_KEY&quot;: &quot;your-api-key&quot;
      }
    }
  }
}</code></pre>
<hr />
<h2>5. Automazione: Cron, Heartbeat e Webhook</h2>
<h3>Cron Jobs</h3>
<pre><code class="language-json">&quot;cron&quot;: {
  &quot;jobs&quot;: [
    {
      &quot;id&quot;: &quot;morning-briefing&quot;,
      &quot;schedule&quot;: &quot;0 8 * * *&quot;,
      &quot;prompt&quot;: &quot;Prepara il briefing mattutino: meteo, news, calendario.&quot;,
      &quot;channel&quot;: &quot;telegram&quot;
    },
    {
      &quot;id&quot;: &quot;weekly-report&quot;,
      &quot;schedule&quot;: &quot;0 9 * * 1&quot;,
      &quot;prompt&quot;: &quot;Genera il report settimanale di analytics WordPress.&quot;,
      &quot;channel&quot;: &quot;slack&quot;
    }
  ]
}</code></pre>
<h3>Heartbeat (Ciclo Autonomo)</h3>
<pre><code class="language-json">&quot;heartbeat&quot;: {
  &quot;enabled&quot;: true,
  &quot;intervalMinutes&quot;: 60,
  &quot;prompt&quot;: &quot;Controlla se ci sono task pendenti, aggiorna la memoria, invia notifiche se necessario.&quot;
}</code></pre>
<blockquote>
<p>💡 <strong>Differenza chiave</strong> — Il <strong>Cron</strong> è per task schedulati a orari precisi. Il <strong>Heartbeat</strong> è per check periodici autonomi. In pratica: usa il Cron per <em>&quot;pubblica alle 9:00&quot;</em>, usa il Heartbeat per <em>&quot;controlla ogni ora se c'è qualcosa da fare&quot;</em>.</p>
</blockquote>
<h3>Webhook</h3>
<pre><code class="language-json">&quot;webhooks&quot;: {
  &quot;enabled&quot;: true,
  &quot;endpoints&quot;: [
    {
      &quot;path&quot;: &quot;/github-push&quot;,
      &quot;secret&quot;: &quot;your-webhook-secret&quot;,
      &quot;prompt&quot;: &quot;Un nuovo push su GitHub. Analizza le modifiche e aggiorna la documentazione.&quot;
    }
  ]
}</code></pre>
<hr />
<h2>6. Configurazione Multi-Agent</h2>
<p>OpenClaw supporta più agenti sullo stesso Gateway, ognuno con il proprio workspace, <code>soul.md</code>, set di skill e canale dedicato. Architettura ideale per:</p>
<ul>
<li>Separare agenti per ruolo (sviluppo, marketing, giornalismo)</li>
<li>Isolare gli ambienti per sicurezza (agente untrusted in sandbox Docker)</li>
<li>Condividere skill comuni tra agenti diversi</li>
</ul>
<p><strong>Routing dei canali:</strong></p>
<pre><code class="language-json">&quot;routing&quot;: {
  &quot;telegram&quot;: {
    &quot;workBot&quot;: &quot;agent-work&quot;,
    &quot;personalBot&quot;: &quot;agent-personal&quot;
  }
}</code></pre>
<hr />
<h2>7. Esempi di impostazione Skills OpenClaw</h2>
<hr />
<h3>Skill 1 — Web Scraper e Digest Quotidiano delle News</h3>
<p>Raccoglie automaticamente notizie da fonti RSS, le aggrega, applica un'analisi editoriale e invia un digest formattato su Telegram ogni mattina.</p>
<p><strong>Struttura della cartella:</strong></p>
<pre><code>~/.openclaw/skills/news-digest/
  SKILL.md
  scripts/
    fetch_rss.py
  sources.json</code></pre>
<p><strong>SKILL.md:</strong></p>
<pre><code class="language-yaml">---
name: news-digest
description: Raccoglie news da RSS, le aggrega e invia un digest quotidiano su Telegram
user-invocable: true
metadata:
  {&quot;openclaw&quot;: {
    &quot;emoji&quot;: &quot;📰&quot;,
    &quot;requires&quot;: {
      &quot;bins&quot;: [&quot;python3&quot;],
      &quot;env&quot;: [&quot;TELEGRAM_CHAT_ID&quot;]
    }
  }}
---

# Skill: News Digest Quotidiano

## Trigger
Eseguita automaticamente alle 7:30 via cron job, oppure con /news-digest.

## Procedura

1. Esegui: python3 {baseDir}/scripts/fetch_rss.py &gt; /tmp/raw_news.json

2. Per ogni notizia applica questa analisi:
   - Valuta la rilevanza (1-10): impatto, novità, interesse
   - Scrivi un riassunto di 2-3 righe in italiano
   - Assegna categoria: Tecnologia, Economia, Politica, Scienza, Altro

3. Seleziona le TOP 5 notizie per rilevanza.

4. Formatta il digest:
   🌅 *Buongiorno! Digest News — [DATA]*
   📌 *[TITOLO]*
   [RIASSUNTO]
   🔗 [LINK]

5. Invia su Telegram. Logga in ~/openclaw-logs/news-digest-[DATA].json</code></pre>
<p><strong>scripts/fetch_rss.py:</strong></p>
<pre><code class="language-python">#!/usr/bin/env python3
import json, feedparser
from datetime import datetime, timedelta

SOURCES = json.load(open(&#039;{baseDir}/sources.json&#039;))
articles = []

for src in SOURCES[&#039;feeds&#039;]:
    feed = feedparser.parse(src[&#039;url&#039;])
    for entry in feed.entries[:10]:
        articles.append({
            &#039;title&#039;: entry.get(&#039;title&#039;, &#039;&#039;),
            &#039;summary&#039;: entry.get(&#039;summary&#039;, &#039;&#039;)[:400],
            &#039;link&#039;: entry.get(&#039;link&#039;, &#039;&#039;),
            &#039;source&#039;: src[&#039;name&#039;]
        })

print(json.dumps(articles, ensure_ascii=False))</code></pre>
<p><strong>sources.json:</strong></p>
<pre><code class="language-json">{
  &quot;feeds&quot;: [
    {&quot;name&quot;: &quot;Ansa&quot;,     &quot;url&quot;: &quot;https://www.ansa.it/sito/notizie/tecnologia/tecnologia_rss.xml&quot;},
    {&quot;name&quot;: &quot;Wired IT&quot;, &quot;url&quot;: &quot;https://www.wired.it/feed/rss&quot;},
    {&quot;name&quot;: &quot;BBC Tech&quot;, &quot;url&quot;: &quot;https://feeds.bbci.co.uk/news/technology/rss.xml&quot;}
  ]
}</code></pre>
<p><strong>Configurazione cron:</strong></p>
<pre><code class="language-json">{
  &quot;cron&quot;: {
    &quot;jobs&quot;: [{
      &quot;id&quot;: &quot;morning-news&quot;,
      &quot;schedule&quot;: &quot;30 7 * * *&quot;,
      &quot;prompt&quot;: &quot;Esegui la skill news-digest e invia il digest mattutino.&quot;,
      &quot;channel&quot;: &quot;telegram&quot;
    }]
  }
}</code></pre>
<hr />
<h3>Skill 2 — Monitoraggio e Alert del Server</h3>
<p>Monitora periodicamente CPU, RAM, disco e servizi critici di un server Linux, inviando alert proattivi con diagnosi e azioni consigliate su Telegram.</p>
<p><strong>Struttura della cartella:</strong></p>
<pre><code>~/.openclaw/skills/server-monitor/
  SKILL.md
  scripts/
    check_metrics.sh
  thresholds.json</code></pre>
<p><strong>SKILL.md:</strong></p>
<pre><code class="language-yaml">---
name: server-monitor
description: Monitora CPU, RAM, disco e servizi del server con alert intelligenti su Telegram
user-invocable: true
metadata:
  {&quot;openclaw&quot;: {
    &quot;emoji&quot;: &quot;🖥️&quot;,
    &quot;requires&quot;: {
      &quot;bins&quot;: [&quot;df&quot;, &quot;free&quot;, &quot;top&quot;, &quot;systemctl&quot;, &quot;python3&quot;],
      &quot;env&quot;: [&quot;ALERT_TELEGRAM_CHAT_ID&quot;]
    },
    &quot;os&quot;: [&quot;linux&quot;]
  }}
---

# Skill: Server Monitor con Alert Intelligenti

## Esecuzione automatica
Gira ogni 15 minuti via heartbeat.

## Procedura

1. Raccogli metriche:
   bash {baseDir}/scripts/check_metrics.sh &gt; /tmp/metrics.txt

2. Confronta i valori con {baseDir}/thresholds.json

3. Determina la gravità:
   - WARNING (🟡): metrica tra 70% e 85% della soglia critica
   - CRITICAL (🔴): metrica sopra l&#039;85%

4. Genera alert con:
   - Metrica problematica e valore attuale
   - Diagnosi probabile (es. &quot;Possibile memory leak in nginx&quot;)
   - Azioni consigliate (comandi specifici)

5. In caso di CRITICAL, esegui automaticamente:
   sudo systemctl restart nginx (se nginx è coinvolto)
   Notifica l&#039;azione intrapresa.</code></pre>
<p><strong>scripts/check_metrics.sh:</strong></p>
<pre><code class="language-bash">#!/bin/bash
echo &quot;=== CPU ===&quot;
top -bn1 | grep &#039;Cpu(s)&#039; | awk &#039;{print $2}&#039; | cut -d&#039;%&#039; -f1

echo &quot;=== RAM ===&quot;
free -m | awk &#039;NR==2{printf &quot;%.1f\n&quot;, $3*100/$2}&#039;

echo &quot;=== DISCO ===&quot;
df -h / | awk &#039;NR==2{print $5}&#039; | tr -d &#039;%&#039;

echo &quot;=== SERVIZI ===&quot;
for svc in nginx mysql php8.2-fpm; do
  systemctl is-active $svc 2&gt;/dev/null &amp;&amp; echo &quot;$svc:OK&quot; || echo &quot;$svc:FAIL&quot;
done</code></pre>
<p><strong>thresholds.json:</strong></p>
<pre><code class="language-json">{
  &quot;cpu_warning&quot;: 70,
  &quot;cpu_critical&quot;: 90,
  &quot;ram_warning&quot;: 75,
  &quot;ram_critical&quot;: 90,
  &quot;disk_warning&quot;: 80,
  &quot;disk_critical&quot;: 95,
  &quot;services&quot;: [&quot;nginx&quot;, &quot;mysql&quot;, &quot;php8.2-fpm&quot;]
}</code></pre>
<blockquote>
<p>⚠️ <strong>Sicurezza</strong> — Configura <code>sudoers</code> per permettere solo i comandi specifici necessari (es. <code>systemctl restart nginx</code>) senza password, e mai con accesso root completo.</p>
</blockquote>
<hr />
<h3>Skill 3 — WordPress Remote News Publisher via SSH + WP-CLI</h3>
<blockquote>
<p><strong>Versione remota della Skill 3 originale.</strong><br />
Rispetto alla versione locale, questa skill non richiede WP-CLI installato sulla macchina che esegue OpenClaw: tutta l'interazione con WordPress avviene sul <strong>server remoto</strong> tramite connessione <strong>SSH con autenticazione automatica a chiave pubblica</strong>. Le immagini vengono scaricate e ottimizzate localmente, trasferite sul server via <code>scp</code>, e poi importate con <code>wp media import</code> eseguito in remoto.</p>
</blockquote>
<hr />
<h4>Struttura della cartella</h4>
<pre><code>~/.openclaw/skills/wp-remote-publisher/
  SKILL.md
  scripts/
    download_cover.py
    optimize_image.sh
    upload_media_remote.sh
    publish_wp_remote.sh
  config.json</code></pre>
<hr />
<h4>SKILL.md</h4>
<pre><code class="language-markdown">---
name: wp-remote-publisher
description: Genera e pubblica automaticamente articoli di news su WordPress remoto
            via SSH con autenticazione a chiave pubblica e WP-CLI installato sul server.
            Scarica e ottimizza immagini di copertina da Unsplash, le trasferisce via scp
            e pubblica con metadati SEO Yoast.
user-invocable: true
metadata:
  {&quot;openclaw&quot;: {
    &quot;emoji&quot;: &quot;📝&quot;,
    &quot;requires&quot;: {
      &quot;bins&quot;: [&quot;ssh&quot;, &quot;scp&quot;, &quot;python3&quot;, &quot;curl&quot;, &quot;convert&quot;],
      &quot;env&quot;: [
        &quot;WP_SSH_HOST&quot;,
        &quot;WP_SSH_USER&quot;,
        &quot;WP_SSH_KEY&quot;,
        &quot;WP_REMOTE_PATH&quot;,
        &quot;UNSPLASH_ACCESS_KEY&quot;,
        &quot;WP_AUTHOR_ID&quot;
      ]
    }
  }}
---

#### Skill: WordPress Remote News Publisher

#### IMPORTANTE — Filosofia Editoriale

Ogni articolo DEVE rispettare queste regole:
- Scrivi come un giornalista senior del settore, non come un AI.
- Usa frasi di lunghezza variabile. Alterna periodi brevi a costruzioni articolate.
- Inserisci una tesi editoriale chiara nel primo paragrafo (lede).
- Usa citazioni attribuite a fonti reali quando disponibili.
- EVITA: &quot;è importante notare&quot;, &quot;nell&#039;era digitale&quot;, &quot;nel mondo di oggi&quot;,
  &quot;in conclusione&quot;, &quot;ovviamente&quot;, &quot;chiaramente&quot;, qualsiasi formula AI.
- Il titolo deve essere specifico. Niente clickbait.

#### Variabili d&#039;ambiente richieste

| Variabile           | Descrizione                                             | Esempio                              |
|---------------------|---------------------------------------------------------|--------------------------------------|
| WP_SSH_HOST         | Hostname o IP del server remoto                         | `203.0.113.10` o `miosito.it`        |
| WP_SSH_USER         | Utente SSH sul server remoto                            | `ubuntu` / `www-data` / `deploy`     |
| WP_SSH_KEY          | Path assoluto alla chiave privata SSH locale            | `/home/user/.ssh/id_ed25519_wp`      |
| WP_SSH_PORT         | Porta SSH (default 22)                                  | `22`                                 |
| WP_REMOTE_PATH      | Path assoluto di WordPress sul server remoto            | `/var/www/html/wordpress`            |
| WP_REMOTE_TMP       | Cartella temporanea scrivibile sul server remoto        | `/tmp`                               |
| UNSPLASH_ACCESS_KEY | Access Key API Unsplash                                 | `AbC123...`                          |
| WP_AUTHOR_ID        | ID autore WordPress                                     | `1`                                  |

#### Trigger
Eseguita ogni giorno alle 10:00 e 16:00 (lun-ven) via cron job.
Invocabile manualmente con: /wp-remote-publisher [argomento]

---

#### Procedura Completa

#### FASE 1 — Selezione Argomento
Se non viene fornito un argomento:
1. Leggi {baseDir}/config.json per la lista di topic configurati.
2. Seleziona il topic con la pubblicazione più vecchia (round-robin).

#### FASE 2 — Verifica Connessione SSH
Prima di qualsiasi operazione, verifica che la connessione SSH funzioni:

  ssh -i $WP_SSH_KEY -p ${WP_SSH_PORT:-22} -o StrictHostKeyChecking=no \
      -o BatchMode=yes -o ConnectTimeout=10 \
      $WP_SSH_USER@$WP_SSH_HOST \
      &quot;wp --info --path=$WP_REMOTE_PATH&quot; 2&gt;&amp;1

Se il comando fallisce, interrompi e notifica l&#039;errore su Telegram.

#### FASE 3 — Ricerca e Raccolta Fatti
1. Cerca via web: &quot;[argomento] ultime notizie [mese corrente]&quot;
   Cerca anche in inglese per fonti internazionali.

2. Raccogli SOLO fatti verificabili:
   - Dati numerici con fonte
   - Dichiarazioni di persone reali con nome e ruolo
   - Date ed eventi specifici
   - Evita speculazioni non attribuite

3. Salva i fatti in /tmp/wp_facts.json

#### FASE 4 — Generazione Articolo con Stile Giornalistico

Struttura editoriale obbligatoria:

**TITOLO** (max 65 caratteri)
- Specifico, non generico. Contiene il fatto principale.
- Buono:  &quot;Meta taglia 3.600 posti: addio ai team AI di Base&quot;
- Cattivo: &quot;Meta compie un passo importante per il futuro&quot;

**LEDE** (primo paragrafo, 40-60 parole)
- Risponde a: Chi? Cosa? Quando? Dove? Perché?
- È la notizia più importante in forma densa e precisa.
- Non inizia mai con &quot;Nel mondo di...&quot; o &quot;Negli ultimi anni...&quot;

**CORPO** (600-900 parole totali)
- Paragrafo 2: contesto e background
- Paragrafo 3-4: sviluppo principale con dati e citazioni
- Paragrafo 5: reazioni e posizioni dei protagonisti
- Paragrafo 6: implicazioni e prospettive (attribuite a esperti)
- Paragrafo finale: elemento che chiude il cerchio narrativo

**META DESCRIPTION** (max 155 caratteri)
**TAG SEO** (3-5 tag, senza #)
**KEYWORD PRINCIPALE** (1 keyword)

Salva in /tmp/wp_article.json:
{
  &quot;title&quot;: &quot;...&quot;,
  &quot;content&quot;: &quot;...&quot;,
  &quot;excerpt&quot;: &quot;...&quot;,
  &quot;tags&quot;: [&quot;...&quot;],
  &quot;meta_desc&quot;: &quot;...&quot;,
  &quot;keyword&quot;: &quot;...&quot;,
  &quot;topic&quot;: &quot;...&quot;
}

#### FASE 5 — Immagine di Copertina
1. Determina una keyword visiva (es. &quot;server room technology&quot;).
2. Scarica da Unsplash LOCALMENTE:
   python3 {baseDir}/scripts/download_cover.py &#039;[keyword]&#039; /tmp/cover.jpg
3. Ottimizza localmente:
   bash {baseDir}/scripts/optimize_image.sh /tmp/cover.jpg /tmp/cover_opt.jpg
4. Trasferisci sul server remoto e importa in WordPress:
   bash {baseDir}/scripts/upload_media_remote.sh /tmp/cover_opt.jpg
   → ID salvato in /tmp/wp_media_id.txt

#### FASE 6 — Pubblicazione su WordPress Remoto
1. Esegui: bash {baseDir}/scripts/publish_wp_remote.sh
2. Post creato come draft. Aspetta 30 secondi, verifica lo stato via SSH.
3. Se OK, pubblica:
   ssh -i $WP_SSH_KEY -p ${WP_SSH_PORT:-22} $WP_SSH_USER@$WP_SSH_HOST \
     &quot;wp post update $(cat /tmp/wp_post_id.txt) \
      --post_status=publish --path=$WP_REMOTE_PATH&quot;
4. Recupera l&#039;URL del post pubblicato:
   ssh -i $WP_SSH_KEY -p ${WP_SSH_PORT:-22} $WP_SSH_USER@$WP_SSH_HOST \
     &quot;wp post get $(cat /tmp/wp_post_id.txt) --field=url --path=$WP_REMOTE_PATH&quot;
5. Invia conferma su Telegram con titolo, URL, parole, keyword.

#### FASE 7 — Aggiornamento Registro
Aggiorna {baseDir}/config.json segnando il topic come
&quot;ultimo pubblicato&quot; con timestamp per garantire la rotazione.</code></pre>
<hr />
<h4>config.json</h4>
<pre><code class="language-json">{
  &quot;wp_remote_path&quot;: &quot;/var/www/html/wordpress&quot;,
  &quot;author_id&quot;: 1,
  &quot;categories&quot;: {
    &quot;tecnologia&quot;: 5,
    &quot;economia&quot;: 8,
    &quot;startup&quot;: 12
  },
  &quot;topics&quot;: [
    {
      &quot;name&quot;: &quot;Intelligenza Artificiale&quot;,
      &quot;keywords&quot;: [&quot;AI&quot;, &quot;machine learning&quot;, &quot;LLM&quot;],
      &quot;category&quot;: &quot;tecnologia&quot;,
      &quot;last_published&quot;: null
    },
    {
      &quot;name&quot;: &quot;Cybersecurity&quot;,
      &quot;keywords&quot;: [&quot;sicurezza informatica&quot;, &quot;hacking&quot;, &quot;privacy&quot;],
      &quot;category&quot;: &quot;tecnologia&quot;,
      &quot;last_published&quot;: null
    },
    {
      &quot;name&quot;: &quot;Startup Tech&quot;,
      &quot;keywords&quot;: [&quot;startup&quot;, &quot;venture capital&quot;, &quot;unicorn&quot;],
      &quot;category&quot;: &quot;startup&quot;,
      &quot;last_published&quot;: null
    }
  ]
}</code></pre>
<hr />
<h4>scripts/download_cover.py</h4>
<p>Identico alla versione locale: scarica l'immagine da Unsplash sulla macchina locale.</p>
<pre><code class="language-python">#!/usr/bin/env python3
import sys, requests, os

query   = sys.argv[1]
outfile = sys.argv[2]
api_key = os.environ[&#039;UNSPLASH_ACCESS_KEY&#039;]

r = requests.get(
    &#039;https://api.unsplash.com/photos/random&#039;,
    params={&#039;query&#039;: query, &#039;orientation&#039;: &#039;landscape&#039;, &#039;content_filter&#039;: &#039;high&#039;},
    headers={&#039;Authorization&#039;: f&#039;Client-ID {api_key}&#039;}
)
r.raise_for_status()
data = r.json()

img_data = requests.get(data[&#039;urls&#039;][&#039;regular&#039;]).content
with open(outfile, &#039;wb&#039;) as f:
    f.write(img_data)

with open(&#039;/tmp/cover_meta.txt&#039;, &#039;w&#039;) as f:
    f.write(f&quot;Photo by {data[&#039;user&#039;][&#039;name&#039;]} on Unsplash&quot;)

print(f&quot;Immagine scaricata: {outfile}&quot;)</code></pre>
<hr />
<h4>scripts/optimize_image.sh</h4>
<p>Identico alla versione locale: ottimizza e ritaglia l'immagine sulla macchina locale con ImageMagick.</p>
<pre><code class="language-bash">#!/bin/bash
INPUT=$1
OUTPUT=$2

# Resize a 1200x630 (dimensione Open Graph ottimale) e comprimi
convert &quot;$INPUT&quot; \
  -resize 1200x630^ \
  -gravity Center \
  -extent 1200x630 \
  -quality 85 \
  -strip \
  &quot;$OUTPUT&quot;

echo &quot;Ottimizzazione completata: $(du -h &quot;$OUTPUT&quot; | cut -f1)&quot;</code></pre>
<hr />
<h4>scripts/upload_media_remote.sh</h4>
<p>Questo script è la principale differenza rispetto alla versione locale.<br />
<strong>Trasferisce</strong> l'immagine ottimizzata sul server remoto via <code>scp</code>, poi esegue <code>wp media import</code> tramite <code>ssh</code>.</p>
<pre><code class="language-bash">#!/bin/bash
# ============================================================
# upload_media_remote.sh
# Trasferisce l&#039;immagine sul server remoto e la importa
# in WordPress con WP-CLI remoto via SSH a chiave pubblica.
# ============================================================

IMAGE_PATH=$1

# --- Parametri SSH da variabili d&#039;ambiente ---
SSH_HOST=&quot;${WP_SSH_HOST}&quot;
SSH_USER=&quot;${WP_SSH_USER}&quot;
SSH_KEY=&quot;${WP_SSH_KEY}&quot;
SSH_PORT=&quot;${WP_SSH_PORT:-22}&quot;
REMOTE_PATH=&quot;${WP_REMOTE_PATH:-/var/www/html/wordpress}&quot;
REMOTE_TMP=&quot;${WP_REMOTE_TMP:-/tmp}&quot;

# Opzioni SSH comuni (chiave pubblica, no password, no prompt)
SSH_OPTS=&quot;-i $SSH_KEY -p $SSH_PORT \
          -o StrictHostKeyChecking=no \
          -o BatchMode=yes \
          -o ConnectTimeout=15 \
          -o PasswordAuthentication=no&quot;

# --- Validazione variabili ---
if [ -z &quot;$SSH_HOST&quot; ] || [ -z &quot;$SSH_USER&quot; ] || [ -z &quot;$SSH_KEY&quot; ]; then
  echo &quot;ERRORE: WP_SSH_HOST, WP_SSH_USER e WP_SSH_KEY sono obbligatori.&quot; &gt;&amp;2
  exit 1
fi

if [ ! -f &quot;$SSH_KEY&quot; ]; then
  echo &quot;ERRORE: chiave SSH non trovata in $SSH_KEY&quot; &gt;&amp;2
  exit 1
fi

if [ ! -f &quot;$IMAGE_PATH&quot; ]; then
  echo &quot;ERRORE: immagine non trovata in $IMAGE_PATH&quot; &gt;&amp;2
  exit 1
fi

REMOTE_FILENAME=&quot;wp_cover_$(date +%s).jpg&quot;
REMOTE_FILE_PATH=&quot;$REMOTE_TMP/$REMOTE_FILENAME&quot;

# --- Trasferimento immagine via scp ---
echo &quot;Trasferimento immagine su $SSH_USER@$SSH_HOST:$REMOTE_FILE_PATH ...&quot;
scp $SSH_OPTS &quot;$IMAGE_PATH&quot; &quot;$SSH_USER@$SSH_HOST:$REMOTE_FILE_PATH&quot;

if [ $? -ne 0 ]; then
  echo &quot;ERRORE: scp fallito durante il trasferimento dell&#039;immagine.&quot; &gt;&amp;2
  exit 1
fi

echo &quot;Immagine trasferita con successo.&quot;

# --- Importazione media con WP-CLI remoto ---
echo &quot;Importazione media in WordPress via WP-CLI remoto...&quot;
MEDIA_ID=$(ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp media import &#039;$REMOTE_FILE_PATH&#039; \
   --path=&#039;$REMOTE_PATH&#039; \
   --porcelain 2&gt;/dev/null&quot;)

if [ -z &quot;$MEDIA_ID&quot; ]; then
  echo &quot;ERRORE: wp media import non ha restituito un ID.&quot; &gt;&amp;2
  # Cleanup file remoto anche in caso di errore
  ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; &quot;rm -f &#039;$REMOTE_FILE_PATH&#039;&quot; 2&gt;/dev/null
  exit 1
fi

# --- Cleanup file temporaneo remoto ---
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; &quot;rm -f &#039;$REMOTE_FILE_PATH&#039;&quot; 2&gt;/dev/null

echo &quot;$MEDIA_ID&quot; &gt; /tmp/wp_media_id.txt
echo &quot;Media importato su WordPress con ID: $MEDIA_ID&quot;</code></pre>
<hr />
<h4>scripts/publish_wp_remote.sh</h4>
<p>Esegue tutti i comandi <code>wp</code> sul server remoto tramite SSH. Nessuna chiamata WP-CLI locale.</p>
<pre><code class="language-bash">#!/bin/bash
# ============================================================
# publish_wp_remote.sh
# Crea il post WordPress come draft via WP-CLI remoto (SSH).
# ============================================================

# --- Parametri SSH da variabili d&#039;ambiente ---
SSH_HOST=&quot;${WP_SSH_HOST}&quot;
SSH_USER=&quot;${WP_SSH_USER}&quot;
SSH_KEY=&quot;${WP_SSH_KEY}&quot;
SSH_PORT=&quot;${WP_SSH_PORT:-22}&quot;
REMOTE_PATH=&quot;${WP_REMOTE_PATH:-/var/www/html/wordpress}&quot;
AUTHOR_ID=&quot;${WP_AUTHOR_ID:-1}&quot;

SSH_OPTS=&quot;-i $SSH_KEY -p $SSH_PORT \
          -o StrictHostKeyChecking=no \
          -o BatchMode=yes \
          -o ConnectTimeout=15 \
          -o PasswordAuthentication=no&quot;

# --- Leggi dati articolo ---
TITLE=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;title&#039;])&quot;)
CONTENT=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;content&#039;])&quot;)
EXCERPT=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;excerpt&#039;])&quot;)
TAGS=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(&#039;,&#039;.join(d[&#039;tags&#039;]))&quot;)
META_DESC=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;meta_desc&#039;])&quot;)
KEYWORD=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;keyword&#039;])&quot;)
MEDIA_ID=$(cat /tmp/wp_media_id.txt)

# --- Trasferisci il JSON dell&#039;articolo sul server remoto (necessario per content lungo) ---
REMOTE_ARTICLE_JSON=&quot;/tmp/wp_article_remote_$(date +%s).json&quot;
scp $SSH_OPTS /tmp/wp_article.json &quot;$SSH_USER@$SSH_HOST:$REMOTE_ARTICLE_JSON&quot;

# --- Crea il post come draft (WP-CLI remoto) ---
echo &quot;Creazione post come draft su WordPress remoto...&quot;
POST_ID=$(ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; bash &lt;&lt;ENDSSH
  TITLE=\$(python3 -c &quot;import json; d=json.load(open(&#039;$REMOTE_ARTICLE_JSON&#039;)); print(d[&#039;title&#039;])&quot;)
  CONTENT=\$(python3 -c &quot;import json; d=json.load(open(&#039;$REMOTE_ARTICLE_JSON&#039;)); print(d[&#039;content&#039;])&quot;)
  EXCERPT=\$(python3 -c &quot;import json; d=json.load(open(&#039;$REMOTE_ARTICLE_JSON&#039;)); print(d[&#039;excerpt&#039;])&quot;)

  wp post create \
    --post_title=&quot;\$TITLE&quot; \
    --post_content=&quot;\$CONTENT&quot; \
    --post_excerpt=&quot;\$EXCERPT&quot; \
    --post_status=draft \
    --post_author=$AUTHOR_ID \
    --post_type=post \
    --path=&quot;$REMOTE_PATH&quot; \
    --porcelain 2&gt;/dev/null
ENDSSH
)

if [ -z &quot;$POST_ID&quot; ]; then
  echo &quot;ERRORE: wp post create non ha restituito un ID.&quot; &gt;&amp;2
  ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; &quot;rm -f &#039;$REMOTE_ARTICLE_JSON&#039;&quot; 2&gt;/dev/null
  exit 1
fi

echo &quot;Post draft creato con ID: $POST_ID&quot;

# --- Imposta immagine di copertina ---
echo &quot;Impostazione immagine di copertina...&quot;
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp post meta update $POST_ID _thumbnail_id $MEDIA_ID \
   --path=&#039;$REMOTE_PATH&#039;&quot; 2&gt;/dev/null

# --- Aggiungi tag ---
echo &quot;Aggiunta tag...&quot;
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp post term add $POST_ID post_tag &#039;$TAGS&#039; \
   --path=&#039;$REMOTE_PATH&#039;&quot; 2&gt;/dev/null

# --- Meta SEO Yoast ---
echo &quot;Aggiornamento meta SEO Yoast...&quot;
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp post meta update $POST_ID _yoast_wpseo_metadesc &#039;$META_DESC&#039; \
   --path=&#039;$REMOTE_PATH&#039;&quot; 2&gt;/dev/null

ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp post meta update $POST_ID _yoast_wpseo_focuskw &#039;$KEYWORD&#039; \
   --path=&#039;$REMOTE_PATH&#039;&quot; 2&gt;/dev/null

# --- Cleanup file temporanei remoti ---
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; &quot;rm -f &#039;$REMOTE_ARTICLE_JSON&#039;&quot; 2&gt;/dev/null

echo &quot;$POST_ID&quot; &gt; /tmp/wp_post_id.txt
echo &quot;Post WordPress creato come draft con ID: $POST_ID&quot;</code></pre>
<hr />
<h4>Configurazione in <code>~/.openclaw/openclaw.json</code></h4>
<h4>Iniezione chiave pubblica SSH nella skill</h4>
<pre><code class="language-json">&quot;skills&quot;: {
  &quot;entries&quot;: {
    &quot;wp-remote-publisher&quot;: {
      &quot;env&quot;: {
        &quot;WP_SSH_HOST&quot;:         &quot;203.0.113.10&quot;,
        &quot;WP_SSH_USER&quot;:         &quot;deploy&quot;,
        &quot;WP_SSH_KEY&quot;:          &quot;/home/user/.ssh/id_ed25519_wp&quot;,
        &quot;WP_SSH_PORT&quot;:         &quot;22&quot;,
        &quot;WP_REMOTE_PATH&quot;:      &quot;/var/www/html/wordpress&quot;,
        &quot;WP_REMOTE_TMP&quot;:       &quot;/tmp&quot;,
        &quot;WP_AUTHOR_ID&quot;:        &quot;1&quot;,
        &quot;UNSPLASH_ACCESS_KEY&quot;: &quot;la-tua-access-key-unsplash&quot;
      }
    }
  }
}</code></pre>
<h4>Cron jobs per pubblicazione automatica</h4>
<pre><code class="language-json">&quot;cron&quot;: {
  &quot;jobs&quot;: [
    {
      &quot;id&quot;: &quot;wp-morning-news&quot;,
      &quot;schedule&quot;: &quot;0 10 * * 1-5&quot;,
      &quot;prompt&quot;: &quot;Esegui la skill wp-remote-publisher. Scegli il topic dalla rotazione.&quot;,
      &quot;channel&quot;: &quot;telegram&quot;
    },
    {
      &quot;id&quot;: &quot;wp-afternoon-news&quot;,
      &quot;schedule&quot;: &quot;0 16 * * 1-5&quot;,
      &quot;prompt&quot;: &quot;Esegui la skill wp-remote-publisher per il pomeriggio.&quot;,
      &quot;channel&quot;: &quot;telegram&quot;
    }
  ]
}</code></pre>
<hr />
<h4>Setup della chiave SSH (una-tantum)</h4>
<p>Prima di usare la skill, configura l'autenticazione a chiave pubblica sul server remoto:</p>
<pre><code class="language-bash"># 1. Genera una coppia di chiavi dedicata (raccomandato: ed25519)
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_wp -C &quot;openclaw-wp-publisher&quot; -N &quot;&quot;

# 2. Copia la chiave pubblica sul server remoto
ssh-copy-id -i ~/.ssh/id_ed25519_wp.pub -p 22 deploy@203.0.113.10

# 3. Verifica la connessione automatica (nessuna password richiesta)
ssh -i ~/.ssh/id_ed25519_wp -o BatchMode=yes deploy@203.0.113.10 &quot;wp --info&quot;

# 4. (Opzionale) Limita ulteriormente la chiave in ~/.ssh/authorized_keys sul server
# Aggiungi prima della chiave: command=&quot;wp --allow-root&quot;,no-port-forwarding,no-X11-forwarding</code></pre>
<blockquote>
<p>💡 <strong>Consiglio sicurezza</strong> — Usa un utente SSH dedicato (<code>deploy</code> o <code>wpcli</code>) con permessi minimi sul server. Non usare <code>root</code>. Se WP-CLI richiede permessi su <code>/var/www</code>, aggiungi l'utente al gruppo <code>www-data</code>.</p>
</blockquote>
<hr />
<h4>Requisiti sul server remoto</h4>
<table>
<thead>
<tr>
<th>Componente</th>
<th>Requisito</th>
<th>Verifica</th>
</tr>
</thead>
<tbody>
<tr>
<td>WP-CLI</td>
<td>Installato e nel PATH</td>
<td><code>wp --info</code></td>
</tr>
<tr>
<td>PHP</td>
<td>≥ 7.4 (8.x raccomandato)</td>
<td><code>php --version</code></td>
</tr>
<tr>
<td>Python 3</td>
<td>Per leggere JSON nell'articolo</td>
<td><code>python3 --version</code></td>
</tr>
<tr>
<td>Permessi</td>
<td>Utente SSH scrive in <code>WP_REMOTE_PATH</code></td>
<td><code>ls -la /var/www/html/wordpress</code></td>
</tr>
<tr>
<td>Porta SSH</td>
<td>Aperta nel firewall</td>
<td><code>ufw status</code> / <code>iptables -L</code></td>
</tr>
</tbody>
</table>
<h4>Requisiti sulla macchina locale (OpenClaw)</h4>
<table>
<thead>
<tr>
<th>Componente</th>
<th>Requisito</th>
<th>Installazione</th>
</tr>
</thead>
<tbody>
<tr>
<td>ssh, scp</td>
<td>Presenti nel PATH</td>
<td>Pre-installati su Linux/macOS</td>
</tr>
<tr>
<td>ImageMagick</td>
<td>Comando <code>convert</code></td>
<td><code>apt install imagemagick</code></td>
</tr>
<tr>
<td>Python 3</td>
<td>Con libreria <code>requests</code></td>
<td><code>pip install requests</code></td>
</tr>
</tbody>
</table>
<hr />
<blockquote>
<p>✅ <strong>In sintesi rispetto alla versione locale:</strong> WP-CLI non è più richiesto sulla macchina con OpenClaw. Tutti i comandi <code>wp</code> vengono eseguiti via <code>ssh -i chiave ...</code> sul server remoto. Le immagini vengono elaborate localmente e trasferite con <code>scp</code>. La connessione non richiede mai password grazie all'autenticazione a chiave pubblica.</p>
</blockquote>
<p><strong>Esempio di articolo generato con stile giornalistico:</strong></p>
<blockquote>
<p><strong>Titolo:</strong> OpenAI apre i modelli o1 agli sviluppatori: tariffe ridotte del 40% e nuovi limiti di contesto</p>
<p><strong>Lede:</strong> OpenAI ha reso disponibili via API i modelli della famiglia o1, finora riservati agli utenti ChatGPT Plus, con una riduzione dei costi del 40% rispetto all'anteprima pubblica. La mossa, annunciata il 20 febbraio, amplia la finestra di contesto a un milione di token per i tier enterprise e segnala un cambio di strategia nella monetizzazione dell'AI per sviluppatori.</p>
</blockquote>
<p>Notare: nessun <em>&quot;nell'era digitale&quot;</em>, nessun <em>&quot;è importante notare&quot;</em>. Il lede risponde subito alle 5W con dati numerici precisi e fonte esplicita. Tono da agenzia stampa, non da blog.</p>
<hr />
<h2>8. Riferimento Comandi CLI {#cli}</h2>
<table>
<thead>
<tr>
<th>Comando</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>openclaw onboard</code></td>
<td>Avvia il wizard di configurazione guidata</td>
</tr>
<tr>
<td><code>openclaw gateway</code></td>
<td>Avvia il Gateway (processo principale)</td>
</tr>
<tr>
<td><code>openclaw gateway --daemon</code></td>
<td>Avvia il Gateway in background</td>
</tr>
<tr>
<td><code>openclaw status</code></td>
<td>Stato del Gateway e degli agenti</td>
</tr>
<tr>
<td><code>openclaw stop</code></td>
<td>Ferma il Gateway</td>
</tr>
<tr>
<td><code>openclaw doctor</code></td>
<td>Diagnosi configurazione e sicurezza</td>
</tr>
<tr>
<td><code>openclaw logs</code></td>
<td>Log del Gateway in tempo reale</td>
</tr>
<tr>
<td><code>clawhub install &lt;slug&gt;</code></td>
<td>Installa una skill da ClawHub</td>
</tr>
<tr>
<td><code>clawhub search &lt;query&gt;</code></td>
<td>Cerca skill nel registry</td>
</tr>
<tr>
<td><code>clawhub update --all</code></td>
<td>Aggiorna tutte le skill installate</td>
</tr>
<tr>
<td><code>openclaw agent list</code></td>
<td>Lista degli agenti configurati</td>
</tr>
<tr>
<td><code>openclaw session list</code></td>
<td>Lista delle sessioni attive</td>
</tr>
</tbody>
</table>
<hr />
<h2>9. Troubleshooting</h2>
<p><strong>Il Gateway non si avvia</strong><br />
Verifica che Node.js sia ≥22: <code>node --version</code>. Controlla i log con <code>openclaw logs</code>. Assicurati che la porta 18789 non sia occupata: <code>lsof -i :18789</code>.</p>
<p><strong>Le skill non vengono caricate</strong><br />
Esegui <code>openclaw doctor</code> per rilevare binari mancanti o env non configurate. Controlla che <code>SKILL.md</code> abbia frontmatter YAML valido. Verifica che <code>requires.bins</code> siano nel PATH dell'utente che esegue OpenClaw.</p>
<p><strong>WP-CLI restituisce errore di permessi</strong><br />
Usa l'utente web corretto (es. <code>www-data</code>) o il flag <code>--allow-root</code> solo in ambienti controllati. Verifica il path: <code>wp --path=/var/www/html/wordpress post list</code>.</p>
<p><strong>Consumo eccessivo di token</strong><br />
Imposta spending cap sul dashboard del provider. Usa modelli economici (Gemini Flash) per skill semplici. Disabilita il heartbeat in sviluppo. Controlla che non ci siano loop nei cron job.</p>
<p><strong>L'agente non trova le skill nel prompt</strong><br />
OpenClaw fa uno snapshot delle skill all'avvio della sessione. Dopo aver aggiunto una skill, riavvia la sessione o abilita <code>skills.watcher</code> per il hot-reload automatico.</p>
<hr />
<h2>Risorse Utili</h2>
<ul>
<li><strong>GitHub</strong> — <a href="https://github.com/openclaw/openclaw" target="_blank" rel="noopener nofollow external" data-wpel-link="external">github.com/openclaw/openclaw</a></li>
<li><strong>Documentazione</strong> — <a href="https://docs.openclaw.ai" target="_blank" rel="noopener nofollow external" data-wpel-link="external">docs.openclaw.ai</a></li>
<li><strong>ClawHub</strong> — <a href="https://clawhub.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">clawhub.com</a></li>
<li><strong>WP-CLI</strong> — <a href="https://wp-cli.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">wp-cli.org</a></li>
<li><strong>Unsplash API</strong> — <a href="https://unsplash.com/developers" target="_blank" rel="noopener nofollow external" data-wpel-link="external">unsplash.com/developers</a></li>
<li><strong>AgentSkills spec</strong> — <a href="https://agentskills.io" target="_blank" rel="noopener nofollow external" data-wpel-link="external">agentskills.io</a></li>
</ul>
<hr />
<p><em>Hai domande o vuoi condividere la tua skill? Lascia un commento qui sotto o apri una issue su GitHub.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/openclaw-guida-completa-configurazione-e-creazione-skills/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WooCommerce Performance: Ottimizzazione per 10.000+ Prodotti</title>
		<link>https://www.mrtux.it/woocommerce-performance-ottimizzazione-per-10-000-prodotti</link>
					<comments>https://www.mrtux.it/woocommerce-performance-ottimizzazione-per-10-000-prodotti#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 25 Jun 2025 10:32:24 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[woocommerce]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3008</guid>

					<description><![CDATA[Introduzione Gestire un negozio WooCommerce con oltre 10.000 prodotti può essere una sfida, soprattutto quando le prestazioni del sito iniziano a risentirne. Un database non ottimizzato può causare tempi di caricamento lenti, query inefficienti e persino crash del server, compromettendo l’esperienza utente e le conversioni. In questo articolo, esploreremo tecniche avanzate per ottimizzare il database [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2><strong>Introduzione</strong></h2>
<p>Gestire un negozio <a href="https://woocommerce.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WooCommerce</a> con oltre <strong>10.000 prodotti</strong> può essere una sfida, soprattutto quando le prestazioni del sito iniziano a risentirne. Un database non ottimizzato può causare tempi di caricamento lenti, query inefficienti e persino crash del server, compromettendo l’esperienza utente e le conversioni.</p>
<p>In questo articolo, esploreremo <strong>tecniche avanzate per ottimizzare il database di <a href="https://www.mrtux.it/wordpress-ecommerce-woocommerce-setup" data-wpel-link="internal" target="_self" rel="noopener">WooCommerce</a></strong>, garantendo prestazioni fluide anche con un catalogo esteso. Dalla pulizia dei dati ridondanti all’indicizzazione delle tabelle, scoprirai come mantenere il tuo e-commerce veloce e reattivo.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone size-large wp-image-2059 aligncenter" src="https://www.mrtux.it/wp-content/uploads/2023/06/vendite-online-woocommerce-2-1024x560.jpg" alt="vendite online woocommerce 2" width="1024" height="560" srcset="https://www.mrtux.it/wp-content/uploads/2023/06/vendite-online-woocommerce-2-1024x560.jpg 1024w, https://www.mrtux.it/wp-content/uploads/2023/06/vendite-online-woocommerce-2-300x164.jpg 300w, https://www.mrtux.it/wp-content/uploads/2023/06/vendite-online-woocommerce-2-768x420.jpg 768w, https://www.mrtux.it/wp-content/uploads/2023/06/vendite-online-woocommerce-2.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<hr />
<h2><strong>1. Perché l’Ottimizzazione del Database è Cruciale per WooCommerce</strong></h2>
<p>WooCommerce si affida pesantemente al database MySQL per gestire prodotti, ordini, recensioni e altri dati. Con migliaia di prodotti, le tabelle crescono rapidamente, generando query complesse che possono rallentare il backend e il frontend.</p>
<p><strong>Problemi comuni con database non ottimizzati:</strong></p>
<ul>
<li><strong>Tempi di risposta lenti</strong> nelle pagine del negozio.</li>
<li><strong>Carico elevato sul server</strong>, con picchi di CPU e RAM.</li>
<li><strong>Difficoltà nella gestione degli ordini</strong> e nell’aggiornamento dell’inventario.</li>
</ul>
<p>Un’ottimizzazione mirata migliora non solo la velocità, ma anche la stabilità del sito, riducendo il rischio di downtime durante i picchi di traffico.</p>
<hr />
<h2><strong>2. Analisi e Pulizia del Database WooCommerce</strong></h2>
<p>Prima di ottimizzare, è essenziale <strong>identificare i dati ridondanti</strong>. WooCommerce accumula nel tempo informazioni non necessarie, come:</p>
<ul>
<li>Revisioni di prodotti non utilizzate.</li>
<li>Transienti scaduti (opzioni temporanee).</li>
<li>Ordini e carrelli abbandonati.</li>
</ul>
<h3><strong>Strumenti per la Pulizia del Database</strong></h3>
<ul>
<li><strong>WP-Optimize</strong>: Plugin che elimina dati inutili e compatta le tabelle.</li>
<li><strong>Advanced Database Cleaner</strong>: Rimuove transienti, post duplicati e spam.</li>
<li><strong>Query manuali SQL</strong>: Per eliminare record obsoleti direttamente via phpMyAdmin.</li>
</ul>
<p><strong>Esempio di query per eliminare revisioni dei prodotti:</strong></p>
<pre><code class="language-sql">DELETE FROM wp_posts WHERE post_type = 'revision';  </code></pre>
<hr />
<h2><strong>3. Ottimizzazione delle Tabelle MySQL</strong></h2>
<p>Le tabelle WooCommerce possono frammentarsi nel tempo, riducendo l’efficienza delle query. Una manutenzione regolare include:</p>
<h3><strong>A. Deframmentazione e Ottimizzazione</strong></h3>
<p>Esegui periodicamente:</p>
<pre><code class="language-sql">OPTIMIZE TABLE wp_woocommerce_order_items, wp_woocommerce_order_itemmeta;  </code></pre>
<h3><strong>B. Indicizzazione delle Colonne Frequenti</strong></h3>
<p>Aggiungi indici alle colonne usate spesso nelle query, come <code>_product_id</code> o <code>_order_id</code>:</p>
<pre><code class="language-sql">ALTER TABLE wp_woocommerce_order_itemmeta ADD INDEX (meta_key(50));  </code></pre>
<hr />
<h2><strong>4. Configurazione di WooCommerce per Cataloghi Grandi</strong></h2>
<h3><strong>A. Disattiva Funzionalità Non Necessarie</strong></h3>
<ul>
<li><strong>Recensioni dei prodotti</strong>: Se non utilizzate, disattivale da <em>WooCommerce &gt; Impostazioni &gt; Prodotti</em>.</li>
<li><strong>Cron job ridondanti</strong>: Usa <strong>Action Scheduler</strong> per gestire i task in background in modo efficiente.</li>
</ul>
<h3><strong>B. Limita i Dati Caricati nelle Query</strong></h3>
<p>Modifica le query predefinite per evitare di recuperare troppi dati:</p>
<pre><code class="language-php">add_filter( 'woocommerce_product_query', function( $query ) {  
    $query-&gt;set( 'posts_per_page', 50 ); // Limita i prodotti per pagina  
});  </code></pre>
<hr />
<h2><strong>5. Caching e Scalabilità per Database di Grandi Dimensioni</strong></h2>
<h3><strong>A. Utilizza un Caching Avanzato</strong></h3>
<ul>
<li><strong>Object Caching (Redis/Memcached)</strong>: Riduce le query ripetute al database.</li>
<li><strong>Transients API</strong>: Memorizza dati temporanei invece di interrogare il DB ogni volta.</li>
</ul>
<h3><strong>B. Scalabilità Orizzontale del Database</strong></h3>
<p>Per negozi con milioni di prodotti:</p>
<ul>
<li><strong>Replica MySQL</strong>: Distribuisci il carico su più server.</li>
<li><strong>Sharding</strong>: Suddividi le tabelle in database separati.</li>
</ul>
<hr />
<h2><strong>6. Monitoraggio e Manutenzione Continua</strong></h2>
<p>Usa strumenti come:</p>
<ul>
<li><strong>New Relic</strong> o <strong>Query Monitor</strong> per tracciare query lente.</li>
<li><strong>MySQL Slow Query Log</strong> per identificare colli di bottiglia.</li>
</ul>
<p><strong>Pianifica backup e ottimizzazioni regolari</strong> per evitare degradazioni delle prestazioni nel tempo.</p>
<hr />
<h2><strong>Conclusione</strong></h2>
<p>Ottimizzare il database di WooCommerce per <strong>10.000+ prodotti</strong> richiede una combinazione di pulizia, indicizzazione, caching e configurazioni avanzate. Seguendo queste best practice, il tuo negozio rimarrà veloce e scalabile, migliorando l’esperienza utente e il tasso di conversione.</p>
<p>Investi nella manutenzione proattiva del database: i risultati si tradurranno in un e-commerce più efficiente e redditizio.</p>
<hr />
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/woocommerce-performance-ottimizzazione-per-10-000-prodotti/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress API REST: Sviluppo Headless per PWA Mobile-First</title>
		<link>https://www.mrtux.it/wordpress-api-rest-sviluppo-headless-per-pwa-mobile-first</link>
					<comments>https://www.mrtux.it/wordpress-api-rest-sviluppo-headless-per-pwa-mobile-first#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 25 Jun 2025 10:27:25 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[rest api]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3009</guid>

					<description><![CDATA[Introduzione Negli ultimi anni, il modo in cui sviluppiamo e distribuiamo applicazioni web è cambiato radicalmente. Una delle tendenze più rilevanti è l’adozione di architetture headless, dove il backend e il frontend sono completamente separati. WordPress, grazie alla sua API REST, si presta perfettamente a questo approccio, diventando una soluzione ideale per lo sviluppo di [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2><strong>Introduzione</strong></h2>
<p>Negli ultimi anni, il modo in cui sviluppiamo e distribuiamo applicazioni web è cambiato radicalmente. Una delle tendenze più rilevanti è l’adozione di architetture <strong>headless</strong>, dove il backend e il frontend sono completamente separati. WordPress, grazie alla sua <a href="https://www.ibm.com/it-it/think/topics/rest-apis" target="_blank" rel="noopener nofollow external" data-wpel-link="external"><strong>API REST</strong></a>, si presta perfettamente a questo approccio, diventando una soluzione ideale per lo sviluppo di <strong>Progressive Web App (PWA) mobile-first</strong>.</p>
<p>In questo articolo, esploreremo come utilizzare l'<strong>API REST di WordPress</strong> per creare un’architettura headless, abilitando la realizzazione di PWA performanti e scalabili. Analizzeremo vantaggi, best practice e casi d’uso per garantire un’esperienza utente fluida su dispositivi mobili.</p>
<p><img decoding="async" class="alignnone size-full wp-image-144 aligncenter" src="https://www.mrtux.it/wp-content/uploads/2019/09/web-design-assistenza-wp.jpeg" alt="web-design-assistenza-wp" width="500" height="334" srcset="https://www.mrtux.it/wp-content/uploads/2019/09/web-design-assistenza-wp.jpeg 500w, https://www.mrtux.it/wp-content/uploads/2019/09/web-design-assistenza-wp-300x200.jpeg 300w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<hr />
<h2><strong>1. Cos’è l’API REST di WordPress?</strong></h2>
<p>L’<strong>API REST di <a href="https://www.mrtux.it/come-creare-contenuti-virali-attraverso-wordpress" data-wpel-link="internal" target="_self" rel="noopener">WordPress</a></strong> rappresenta un'interfaccia programmatica che permette di interagire con i dati di un sito WordPress utilizzando richieste HTTP standard (GET, POST, PUT, DELETE). Introdotta ufficialmente nella versione 4.7, questa API consente agli sviluppatori di:</p>
<ul>
<li>Recuperare contenuti (post, pagine, media, utenti) in formato JSON.</li>
<li>Modificare e cancellare dati senza accedere al back-office.</li>
<li>Integrare WordPress con altre piattaforme (app mobile, frontend JavaScript, IoT).</li>
</ul>
<h3><strong>Vantaggi dell’API REST per WordPress</strong></h3>
<ul>
<li><strong>Interoperabilità</strong>: Facilita l’integrazione con app esterne.</li>
<li><strong>Scalabilità</strong>: Separa logica e presentazione, migliorando le prestazioni.</li>
<li><strong>Flessibilità</strong>: Consente l’uso di tecnologie moderne (React, Vue, Angular) per il frontend.</li>
</ul>
<hr />
<h2><strong>2. Architettura Headless con WordPress</strong></h2>
<p>Un’architettura <strong>headless</strong> prevede che il CMS (WordPress) gestisca solo i dati, mentre il frontend viene sviluppato in modo indipendente. Questo approccio è particolarmente vantaggioso per:</p>
<ul>
<li><strong>PWA (Progressive Web App)</strong>: Offrono un’esperienza simile a un’app nativa.</li>
<li><strong>Siti ad alte prestazioni</strong>: Riduce il carico sul server.</li>
<li><strong>Multipiattaforma</strong>: Lo stesso backend può alimentare web, mobile e altri dispositivi.</li>
</ul>
<h3><strong>Come Configurare WordPress in Modalità Headless</strong></h3>
<ol>
<li><strong>Abilitare l’API REST</strong>: Di default, è già attiva.</li>
<li><strong>Custom Endpoint</strong>: Estendere le route per esigenze specifiche.</li>
<li><strong>Autenticazione</strong>: Utilizzare JWT o OAuth per proteggere le API.</li>
</ol>
<hr />
<h2><strong>3. Sviluppo di PWA Mobile-First con WordPress Headless</strong></h2>
<p>Le <strong>Progressive Web App</strong> rappresentano il futuro del web mobile grazie a:</p>
<ul>
<li><strong>Caricamento offline</strong> (Service Workers).</li>
<li><strong>Notifiche push</strong>.</li>
<li><strong>Installazione diretta su home screen</strong>.</li>
</ul>
<h3><strong>Tecnologie Consigliate</strong></h3>
<ul>
<li><strong>Frontend</strong>: React.js, Next.js, o Vue.js.</li>
<li><strong>Librerie per PWA</strong>: Workbox, Lighthouse per ottimizzazioni.</li>
<li><strong>Gestione dello stato</strong>: Redux o Context API.</li>
</ul>
<h3><strong>Passaggi per Creare una PWA con WordPress API REST</strong></h3>
<ol>
<li><strong>Recuperare i dati</strong> dall’API (<code>/wp-json/wp/v2/posts</code>).</li>
<li><strong>Ottimizzare le richieste</strong> con caching e lazy loading.</li>
<li><strong>Implementare un Service Worker</strong> per l’offline mode.</li>
<li><strong>Aggiungere un Web App Manifest</strong> per l’installazione.</li>
</ol>
<hr />
<h2><strong>4. Best Practice per Performance e SEO</strong></h2>
<h3><strong>Ottimizzazione delle Performance</strong></h3>
<ul>
<li><strong>CDN per asset statici</strong>.</li>
<li><strong>Lazy loading delle immagini</strong>.</li>
<li><strong>Compressione GZIP</strong>.</li>
</ul>
<h3><strong>SEO per PWA Headless</strong></h3>
<ul>
<li><strong>SSR (Server-Side Rendering)</strong> con Next.js per migliorare l’indicizzazione.</li>
<li><strong>Metadata dinamici</strong> tramite API.</li>
<li><strong>Schema markup</strong> per una migliore comprensione da parte dei motori di ricerca.</li>
</ul>
<hr />
<h2><strong>5. Casi d’Uso Reali</strong></h2>
<p>Alcuni esempi di progetti che beneficiano di WordPress headless:</p>
<ul>
<li><strong>E-commerce</strong>: Frontend veloce con WooCommerce API.</li>
<li><strong>Media e Blog</strong>: Distribuzione su più canali (app, AMP, social).</li>
<li><strong>Portali aziendali</strong>: Dashboard personalizzate per diversi ruoli.</li>
</ul>
<hr />
<h2><strong>Conclusione</strong></h2>
<p>L’utilizzo dell’<a href="https://developer.wordpress.org/rest-api/" target="_blank" rel="noopener nofollow external" data-wpel-link="external"><strong>API REST di WordPress</strong></a> in un’architettura headless offre enormi vantaggi per lo sviluppo di <strong>PWA mobile-first</strong>. Combinando la flessibilità di WordPress con tecnologie moderne come React o Vue, è possibile creare applicazioni performanti, scalabili e facili da mantenere.</p>
<p>Investire in una strategia headless non solo migliora l’esperienza utente, ma prepara il tuo progetto per le future evoluzioni del web.</p>
<hr />
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/wordpress-api-rest-sviluppo-headless-per-pwa-mobile-first/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress Staging Environment: Setup Git Workflow</title>
		<link>https://www.mrtux.it/wordpress-staging-environment-setup-git-workflow</link>
					<comments>https://www.mrtux.it/wordpress-staging-environment-setup-git-workflow#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 24 Jun 2025 18:45:09 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[sviluppo]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3011</guid>

					<description><![CDATA[Introduzione Sviluppare un sito WordPress in team richiede organizzazione, collaborazione e strumenti efficaci per evitare conflitti nel codice e garantire un flusso di lavoro fluido. Una delle soluzioni più potenti per gestire lo sviluppo collaborativo è l’utilizzo di un ambiente di staging abbinato a un workflow Git strutturato. In questo articolo, esploreremo come configurare un [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em>Introduzione</em><br />
Sviluppare <a href="https://www.mrtux.it/quanto-costa-un-sito-web-professionale-wordpress" data-wpel-link="internal" target="_self" rel="noopener">un sito WordPress</a> in team richiede organizzazione, collaborazione e strumenti efficaci per evitare conflitti nel codice e garantire un flusso di lavoro fluido. Una delle soluzioni più potenti per gestire lo sviluppo collaborativo è l’utilizzo di un ambiente di staging abbinato a un workflow Git strutturato. In questo articolo, esploreremo come configurare un ambiente di staging per WordPress e implementare una <a href="https://git-scm.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">pipeline Git</a> ottimizzata per team di sviluppo, garantendo stabilità, tracciabilità e efficienza.</p>
<p><em>Perché un Ambiente di Staging e Git sono Essenziali</em><br />
Prima di addentrarci nella configurazione, è fondamentale comprendere perché questi strumenti sono indispensabili:</p>
<ol>
<li><strong>Ambiente di Staging</strong>: Una copia identica del sito live, ma isolata, permette di testare modifiche senza rischiare di rompere il sito in produzione.</li>
<li><strong>Git</strong>: Un sistema di controllo versione che registra ogni modifica al codice, facilitando la collaborazione, il rollback e il debugging.</li>
</ol>
<p>Senza un ambiente di staging e un workflow Git ben definito, i team rischiano di introdurre errori in produzione, perdere modifiche o lavorare su versioni non sincronizzate del progetto.</p>
<p><img decoding="async" class="alignnone size-large wp-image-80" src="https://www.mrtux.it/wp-content/uploads/2019/09/deploy-git-wp-live-1024x247.jpg" alt="deploy-git-wp-live" width="1024" height="247" srcset="https://www.mrtux.it/wp-content/uploads/2019/09/deploy-git-wp-live-1024x247.jpg 1024w, https://www.mrtux.it/wp-content/uploads/2019/09/deploy-git-wp-live-300x72.jpg 300w, https://www.mrtux.it/wp-content/uploads/2019/09/deploy-git-wp-live-768x185.jpg 768w, https://www.mrtux.it/wp-content/uploads/2019/09/deploy-git-wp-live-20x5.jpg 20w, https://www.mrtux.it/wp-content/uploads/2019/09/deploy-git-wp-live.jpg 1164w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<p><em>Configurare un Ambiente di Staging per WordPress</em><br />
Esistono diverse opzioni per creare un ambiente di staging:</p>
<ol>
<li><strong>Plugin per Staging</strong>:
<ul>
<li>Strumenti come WP Staging, Duplicator o All-in-One WP Migration semplificano la creazione di un clone del sito.</li>
<li>Ideale per team meno tecnici, ma meno flessibile per integrazioni avanzate con Git.</li>
</ul>
</li>
<li><strong>Staging Manuale su Server</strong>:
<ul>
<li>Creare una sottodirectory (es. <code>/staging</code>) o un sottodominio (es. <code>staging.tuosito.it</code>) e clonare il sito tramite FTP o SSH.</li>
<li>Richiede competenze tecniche ma offre maggiore controllo.</li>
</ul>
</li>
<li><strong>Soluzioni Hosting Gestite</strong>:
<ul>
<li>Provider come Kinsta, WP Engine o SiteGround includono ambienti di staging integrati con un clic.</li>
</ul>
</li>
</ol>
<p>Una volta configurato lo staging, assicurati che:</p>
<ul>
<li>Il file <code>wp-config.php</code> punti al database di staging.</li>
<li>Le costanti <code>WP_HOME</code> e <code>WP_SITEURL</code> siano aggiornate.</li>
<li>I plugin di caching siano disabilitati per evitare conflitti.</li>
</ul>
<p><em>Implementare un Workflow Git per Team Development</em><br />
Git è lo standard per la gestione del codice, ma per WordPress serve una strategia adatta. Ecco un workflow solido per team:</p>
<ol>
<li><strong>Strutturare il Repository</strong>:
<ul>
<li>Escludi file non necessari (es. <code>wp-content/uploads/</code>) tramite <code>.gitignore</code>.</li>
<li>Includi solo temi, plugin personalizzati e configurazioni essenziali.</li>
</ul>
</li>
<li><strong>Branch Strategy</strong>:
<ul>
<li><code>main</code>: La versione stabile, corrispondente all’ambiente live.</li>
<li><code>staging</code>: L’ambiente di pre-produzione, dove vengono testate le modifiche.</li>
<li><code>feature/*</code>: Branch dedicati a nuove funzionalità, poi uniti in <code>staging</code> tramite Merge Request.</li>
</ul>
</li>
<li><strong>Automazione con CI/CD</strong>:
<ul>
<li>Usa strumenti come GitHub Actions, GitLab CI o Bitbucket Pipelines per automatizzare i test e i deploy.</li>
<li>Esempio di workflow:
<ul>
<li>Push su <code>feature/blog-redesign</code> → Test automatici → Merge in <code>staging</code> → Revisione → Deploy su produzione.</li>
</ul>
</li>
</ul>
</li>
<li><strong>Sincronizzare Database e Media</strong>:
<ul>
<li>Git non gestisce il database. Usa plugin come WP Migrate DB o script per sincronizzare i dati tra staging e produzione.</li>
<li>Per i file multimediali, considera soluzioni come S3 o CDN per evitare conflitti.</li>
</ul>
</li>
</ol>
<p><em>Best Practices per un Workflow Efficiente</em></p>
<ul>
<li><strong>Commit Atomici</strong>: Ogni commit dovrebbe rappresentare un singolo cambiamento logico.</li>
<li><strong>Documentazione</strong>: Mantieni un <code>README.md</code> con istruzioni per il setup e il deploy.</li>
<li><strong>Review del Codice</strong>: Prima di un merge in <code>staging</code>, richiedi una revisione da un collega.</li>
<li><strong>Backup Automatici</strong>: Anche con Git, esegui backup regolari dell’intero sito.</li>
</ul>
<p><em>Conclusione</em><br />
Configurare un ambiente di staging e un workflow Git per WordPress è un investimento che ripaga in termini di qualità, collaborazione e riduzione degli errori. Seguendo le best practice illustrate, il tuo team potrà lavorare in modo coordinato, testare in sicurezza e rilasciare aggiornamenti con confidence. Che tu scelga soluzioni hosting gestite o un approccio manuale, l’importante è mantenere disciplina nel versionamento e nella comunicazione tra sviluppatori.</p>
<p><strong>TAGS</strong>: wordpress, staging, git, sviluppo-team, workflow</p>
<p><strong>SUMMARY</strong>: Scopri come configurare un ambiente di staging e un workflow Git per WordPress, ottimizzando lo sviluppo di team con collaborazione e sicurezza.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/wordpress-staging-environment-setup-git-workflow/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>5 Pannelli di Controllo Web con Licenza Gnu/GPL</title>
		<link>https://www.mrtux.it/5-pannelli-di-controllo-web-con-licenza-gnu-gpl</link>
					<comments>https://www.mrtux.it/5-pannelli-di-controllo-web-con-licenza-gnu-gpl#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 18 Jul 2023 13:25:34 +0000</pubDate>
				<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[hestiacp]]></category>
		<category><![CDATA[pannello di controllo]]></category>
		<category><![CDATA[web hosting]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=2248</guid>

					<description><![CDATA[Cinque eccellenti pannelli di controllo web con licenza Gnu/GPL che offrono funzionalità avanzate e ti consentono di gestire facilmente il tuo sito web.]]></description>
										<content:encoded><![CDATA[<h2>Introduzione</h2>
<p>Quando si tratta di <a href="https://www.mrtux.it/creazione-siti-web" data-wpel-link="internal" target="_self" rel="noopener">gestire un sito web</a> è fondamentale avere a disposizione un pannello di controllo affidabile e flessibile. Se sei alla ricerca di soluzioni gratuite e open source sei nel posto giusto. In questo articolo esploreremo cinque eccellenti pannelli di controllo web con licenza Gnu/GPL che offrono funzionalità avanzate e ti consentono di gestire facilmente il tuo sito web.</p>
<p><img decoding="async" class="aligncenter" src="https://www.mrtux.it/wp-content/uploads/2023/07/top-5-free-web-hosting-control-panels-to-manage-vps-dedicated-servers.jpg" alt="top 5 free web hosting control panels " /></p>
<h2>1. <strong>Webmin</strong></h2>
<p>Il primo pannello di controllo che vogliamo presentarti è Webmin. Si tratta di un pannello di controllo basato sul web che ti permette di gestire in modo completo il tuo server e tutti i suoi servizi. Con Webmin puoi <a href="https://www.mrtux.it/5-web-server-per-wordpress-a-confronto" data-wpel-link="internal" target="_self" rel="noopener">amministrare il tuo sito web</a> in modo efficace e intuitivo.</p>
<p><strong>Caratteristiche principali di Webmin:</strong></p>
<ul>
<li>Interfaccia utente intuitiva e personalizzabile.</li>
<li>Gestione completa dei servizi di rete, come Apache, DNS, FTP e molto altro.</li>
<li>Strumenti avanzati per la gestione dei file e delle autorizzazioni.</li>
<li>Monitoraggio delle risorse e delle prestazioni del server.</li>
</ul>
<p><a href="https://www.webmin.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Webmin</a></p>
<h2>2. <strong>Virtualmin</strong></h2>
<p>Virtualmin è un potente pannello di controllo che si basa su Webmin e offre funzionalità specifiche per la gestione di server di hosting web. È una soluzione completa che ti consente di gestire account di hosting, domini, database e altro ancora.</p>
<p><strong>Caratteristiche principali di Virtualmin:</strong></p>
<ul>
<li>Gestione degli account di hosting, inclusi utenti, domini e spazio di archiviazione.</li>
<li>Strumenti per la creazione e la gestione di database MySQL e PostgreSQL.</li>
<li>Installazione automatica di applicazioni web come WordPress, Joomla, Drupal e altri.</li>
<li>Monitoraggio delle risorse e delle prestazioni del server.</li>
</ul>
<p><a href="https://www.virtualmin.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Virtualmin</a></p>
<h2>3. <strong>ISPConfig</strong></h2>
<p>ISPConfig è un pannello di controllo web molto popolare e completo che ti permette di gestire facilmente il tuo server di hosting. Con una vasta gamma di funzionalità e un'interfaccia intuitiva ISPConfig è una scelta eccellente per la gestione dei tuoi siti web.</p>
<p><strong>Caratteristiche principali di ISPConfig:</strong></p>
<ul>
<li>Gestione degli account di hosting, inclusi utenti, domini e risorse.</li>
<li>Configurazione avanzata del server web, come Apache o Nginx.</li>
<li>Strumenti per la gestione dei database, dei backup e delle statistiche del sito.</li>
<li>Supporto per la gestione dei certificati SSL.</li>
</ul>
<p><a href="https://www.ispconfig.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su ISPConfig</a></p>
<h2>4. <strong>CentOS Web Panel</strong></h2>
<p>CentOS Web Panel (CWP) è un pannello di controllo web gratuito e open source progettato per il sistema operativo CentOS. Offre una vasta gamma di funzionalità per la gestione del tuo server e dei tuoi siti web.</p>
<p><strong>Caratteristiche principali di CentOS Web Panel:</strong></p>
<ul>
<li>Gestione degli account di hosting, inclusi utenti, domini e risorse.</li>
<li>Strumenti di sicurezza avanzati per proteggere il tuo server e i tuoi siti web.</li>
<li>Installazione automatica di applicazioni web come WordPress, Joomla, Drupal e altri.</li>
<li>Monitoraggio delle risorse del server e delle prestazioni del sito web.</li>
</ul>
<p><a href="https://control-webpanel.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su CentOS Web Panel</a></p>
<h2>5. <strong>HestiaCP</strong></h2>
<p>HestiaCP è un pannello di controllo web leggero e veloce che ti consente di gestire facilmente il tuo server e i tuoi siti web. Con un'interfaccia utente intuitiva e una vasta gamma di funzionalità, HestiaCP è una scelta popolare tra gli amministratori di sistema e i webmaster.</p>
<p><strong>Caratteristiche principali di HestiaCP:</strong></p>
<ul>
<li>Gestione degli account di hosting, inclusi utenti, domini e risorse.</li>
<li>Strumenti per la gestione dei database, dei DNS e dei backup.</li>
<li>Monitoraggio delle risorse del server e delle prestazioni del sito web.</li>
<li>Installazione automatica di applicazioni web come WordPress, Joomla, Drupal e altri.</li>
</ul>
<p><a href="https://hestiacp.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su HestiaCP</a></p>
<p><img loading="lazy" decoding="async" class="size-large wp-image-689 aligncenter" src="https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-1024x422.png" alt="installazione configurazione web server apache" width="1024" height="422" srcset="https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-1024x422.png 1024w, https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-300x124.png 300w, https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-768x317.png 768w, https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-20x8.png 20w, https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<h2>Conclusioni</h2>
<p>I pannelli di controllo web con <a href="https://www.gnu.org/licenses/licenses.it.html" target="_blank" rel="noopener nofollow external" data-wpel-link="external">licenza Gnu/GPL</a> offrono una soluzione gratuita e open source per la gestione dei tuoi siti web. Sia che tu abbia bisogno di gestire un singolo sito web o un intero server di hosting, questi pannelli di controllo ti offrono un'ampia gamma di funzionalità e strumenti per semplificare la tua esperienza di gestione.</p>
<p>Scegli quello che meglio si adatta alle tue esigenze e inizia a gestire il tuo sito web in modo efficace e intuitivo. Ricorda sempre di fare riferimento alla documentazione ufficiale e alla comunità di supporto per ottenere assistenza e consigli durante il processo di configurazione e gestione.</p>
<p>Con i pannelli di controllo web con licenza Gnu/GPL hai il pieno controllo del tuo sito web senza dover spendere una fortuna per le soluzioni proprietarie. Scegli il tuo preferito e goditi la libertà e la flessibilità che offrono!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/5-pannelli-di-controllo-web-con-licenza-gnu-gpl/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>10 Distro Linux per il Web Design</title>
		<link>https://www.mrtux.it/10-distro-linux-web-design</link>
					<comments>https://www.mrtux.it/10-distro-linux-web-design#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Mon, 26 Jun 2023 05:30:49 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[distribuzione]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[web design]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=2217</guid>

					<description><![CDATA[Scopri le 10 migliori distro Linux per il web design e la grafica web. Questo articolo ti guiderà nella scelta della distribuzione Linux ideale per il tuo progetto di web design, fornendo esempi di codice, suggerimenti utili e risposte alle domande più frequenti.]]></description>
										<content:encoded><![CDATA[<h2>Introduzione</h2>
<p>Hai deciso di intraprendere una carriera nel <a href="https://www.mrtux.it/emilio-petrozzi-chi-sono" data-wpel-link="internal" target="_self" rel="noopener">web design</a> o sei già un esperto del settore? Indipendentemente dal tuo livello di esperienza, l'utilizzo di una distribuzione Linux adatta può migliorare notevolmente la tua produttività e l'efficienza nel processo di sviluppo web.</p>
<p>In questo articolo esploreremo le 10 migliori distro Linux che sono ideali per il web design e la grafica web. Ogni distribuzione offre un'ampia gamma di strumenti, editor di testo, IDE e supporto per il linguaggio di <a href="https://www.php.net/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">programmazione PHP</a>, che sono essenziali per creare siti web moderni e accattivanti.</p>
<p><img decoding="async" class="aligncenter" src="https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design-2.jpg" alt="linux distro web design 2" /></p>
<h2>1. Ubuntu Studio:</h2>
<p><a href="https://www.ubuntu-it.org/derivate/ubuntu-studio" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Ubuntu Studio</a> è una distribuzione Linux basata su Ubuntu, specificamente progettata per artisti, musicisti, animatori e, naturalmente, web designer. È fornita di default con un'ampia gamma di strumenti grafici, audio e video, tra cui GIMP, Inkscape e Blender. Ubuntu Studio offre anche supporto per PHP e include il famoso editor di testo Atom.</p>
<h2>2. Fedora Design Suite:</h2>
<p><a href="https://labs.fedoraproject.org/it/design-suite/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Fedora Design Suite</a> è una distribuzione Linux creata appositamente per il design grafico e la produzione multimediale. Questa distribuzione include una vasta gamma di strumenti come GIMP, Inkscape, Blender e Scribus. Inoltre offre un ambiente di sviluppo completo con supporto per PHP e un'ampia scelta di editor di testo come Sublime Text.</p>
<h2>3. openSUSE Leap:</h2>
<p><a href="https://get.opensuse.org/leap/15.4/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">openSUSE Leap</a> è una distribuzione Linux molto popolare, ampiamente utilizzata dai professionisti del web design. Include una vasta gamma di strumenti per il design grafico e la programmazione web, tra cui GIMP, Inkscape, Krita e NetBeans IDE. openSUSE Leap è una scelta solida per i progetti di web design che richiedono un ambiente stabile e sicuro.</p>
<h2>4. Debian:</h2>
<p>Debian è una distribuzione Linux altamente stabile e affidabile, ampiamente utilizzata nel settore del web design. È dotata di una vasta selezione di strumenti di sviluppo, tra cui GIMP, Inkscape, Blender e Bluefish, un editor di testo specializzato per il web design. Debian offre anche supporto per PHP e una comunità di sviluppatori attiva.</p>
<h2>5. Arch Linux:</h2>
<p>Arch Linux è una distribuzione Linux leggera e altamente personalizzabile, che offre agli sviluppatori web la flessibilità di creare un ambiente di sviluppo personalizzato. Puoi installare solo gli strumenti necessari per il tuo flusso di lavoro di web design, come GIMP, Inkscape, Atom e PHPStorm. Arch Linux è ideale per i professionisti del web design che preferiscono un sistema altamente personalizzato.</p>
<h2>6. CentOS:</h2>
<p>CentOS è una distribuzione Linux derivata da Red Hat Enterprise Linux (RHEL) ed è ampiamente utilizzata in ambienti di produzione e server web. Offre un ambiente stabile e sicuro per i progetti di web design, con supporto per PHP e una vasta selezione di strumenti come GIMP, Inkscape e Bluefish.</p>
<h2>7. Manjaro:</h2>
<p>Manjaro è una distribuzione Linux basata su Arch Linux, ma con un'installazione semplificata e un'interfaccia utente intuitiva. È dotata di una vasta gamma di strumenti per il design grafico e la programmazione web, tra cui GIMP, Inkscape, Atom e Geany. Manjaro è ideale per i web designer che desiderano la potenza di Arch Linux senza la complessità dell'installazione.</p>
<h2>8. Elementary OS:</h2>
<p>Elementary OS è una distribuzione Linux elegante e user-friendly, che offre un'esperienza simile a macOS. Sebbene sia incentrata sull'usabilità e sull'estetica, Elementary OS include strumenti essenziali per il web design come GIMP, Inkscape e Code, un editor di testo leggero con supporto per il web design.</p>
<h2>9. Zorin OS:</h2>
<p>Zorin OS è una distribuzione Linux progettata per facilitare la transizione degli utenti da Windows o macOS a Linux. Offre una vasta selezione di strumenti di sviluppo, tra cui GIMP, Inkscape, Bluefish e il famoso editor di testo Visual Studio Code. Zorin OS è un'ottima scelta per i web designer che desiderano un'interfaccia familiare e un ambiente di sviluppo potente.</p>
<h2>10. Kubuntu:</h2>
<p>Kubuntu è una distribuzione Linux basata su Ubuntu, ma con l'ambiente desktop KDE. Offre una vasta gamma di strumenti di sviluppo per il web design, tra cui GIMP, Inkscape, Krita e Kate, un editor di testo leggero e potente. Kubuntu è una scelta eccellente per i web designer che preferiscono l'interfaccia di KDE e desiderano un'esperienza simile a Windows.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2218 aligncenter" src="https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design.png" alt="linux web design" width="1000" height="625" srcset="https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design.png 1000w, https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design-300x188.png 300w, https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design-768x480.png 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></p>
<h2>Frequently Asked Questions:</h2>
<h3>Q: Qual è la migliore distribuzione Linux per il web design?</h3>
<p>A: La scelta dipende dalle tue preferenze personali e dalle tue esigenze specifiche. Tuttavia, Ubuntu Studio, Fedora Design Suite e openSUSE Leap sono considerate tra le migliori distribuzioni per il web design.</p>
<h3>Q: Quali strumenti di sviluppo sono disponibili in queste distribuzioni Linux?</h3>
<p>A: Le distribuzioni menzionate offrono una vasta selezione di strumenti, tra cui GIMP, Inkscape, Blender, Atom, Bluefish e molti altri.</p>
<h3>Q: Posso utilizzare linguaggi di programmazione come PHP su queste distribuzioni Linux?</h3>
<p>A: Sì, tutte le distribuzioni menzionate supportano PHP e offrono un ambiente di sviluppo completo per la programmazione web.</p>
<h3>Q: Quale distribuzione Linux è più adatta per un principiante nel web design?</h3>
<p>A: Elementary OS e Zorin OS sono distribuzioni Linux user-friendly che offrono un'esperienza simile a macOS o Windows, quindi possono essere ideali per i principianti nel web design.</p>
<table>
<tbody>
<tr>
<th>Distribuzione Linux</th>
<th>Strumenti di Web Design</th>
<th>Linguaggio di Programmazione</th>
</tr>
<tr>
<td>Ubuntu Studio</td>
<td>GIMP, Inkscape, Blender</td>
<td>PHP, Python</td>
</tr>
<tr>
<td>Fedora Design Suite</td>
<td>GIMP, Inkscape, Blender, Scribus</td>
<td>PHP, Python</td>
</tr>
<tr>
<td>openSUSE Leap</td>
<td>GIMP, Inkscape, Krita</td>
<td>PHP, Python</td>
</tr>
<tr>
<td>Debian</td>
<td>GIMP, Inkscape, Blender, Bluefish</td>
<td>PHP, Python</td>
</tr>
<tr>
<td>Arch Linux</td>
<td>GIMP, Inkscape, Atom, PHPStorm</td>
<td>PHP, Python</td>
</tr>
<tr>
<td>CentOS</td>
<td>GIMP, Inkscape, Bluefish</td>
<td>PHP, Python</td>
</tr>
<tr>
<td>Manjaro</td>
<td>GIMP, Inkscape, Atom, Geany</td>
<td>PHP, Python</td>
</tr>
<tr>
<td>Elementary OS</td>
<td>GIMP, Inkscape, Code</td>
<td>PHP, Python</td>
</tr>
<tr>
<td>Zorin OS</td>
<td>GIMP, Inkscape, Bluefish, Visual Studio Code</td>
<td>PHP, Python</td>
</tr>
<tr>
<td>Kubuntu</td>
<td>GIMP, Inkscape, Krita, Kate</td>
<td>PHP, Python</td>
</tr>
</tbody>
</table>
<h2>Conclusione</h2>
<p>Scegliere la distribuzione Linux giusta per il web design può fare la differenza nella tua produttività e nella qualità dei tuoi progetti. Dalle distribuzioni basate su Ubuntu come Ubuntu Studio e Kubuntu alle distribuzioni leggere e altamente personalizzabili come Arch Linux e Manjaro, hai molte opzioni tra cui scegliere.</p>
<p>Esplora le diverse distribuzioni, prova gli strumenti disponibili e considera le tue preferenze personali e le tue esigenze specifiche. Ricorda che queste distribuzioni offrono supporto per il linguaggio di programmazione PHP e una vasta gamma di editor di testo, IDE e strumenti grafici essenziali per il web design.</p>
<p>Sia che tu sia un principiante nel web design o un professionista esperto, l'utilizzo di una distribuzione Linux appositamente progettata per il settore può migliorare notevolmente la tua esperienza di sviluppo e consentirti di <a href="https://www.mrtux.it/creazione-siti-web" data-wpel-link="internal" target="_self" rel="noopener">creare siti web</a> accattivanti e funzionali.</p>
<p>Sperimenta e scopri le potenzialità delle distribuzioni Linux per il web design. Sia che tu scelga Ubuntu Studio per la sua vasta selezione di strumenti o Manjaro per la sua flessibilità, sarai pronto a intraprendere il tuo viaggio nel mondo del web design su <a href="https://www.freecodecamp.org/italian/news/introduzione-a-linux/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Linux</a>.</p>
<h2>Risorse per il Web Design</h2>
<ol>
<li><a href="https://www.w3schools.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">W3Schools - Web Design</a> - Una risorsa completa con tutorial, guide e esempi di codice per imparare il web design.</li>
<li><a href="https://css-tricks.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">CSS-Tricks</a> - Un sito ricco di articoli, tutorial e snippet di codice per imparare e approfondire le tecniche di CSS.</li>
<li><a href="https://www.smashingmagazine.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Smashing Magazine</a> - Una rinomata risorsa che offre articoli di qualità, tutorial e risorse sul web design e lo sviluppo front-end.</li>
<li><a href="https://tympanus.net/codrops/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Codrops</a> - Una piattaforma che presenta esempi di design interattivo, tutorial e articoli focalizzati sulle ultime tendenze e tecnologie del web design.</li>
<li><a href="https://www.awwwards.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Awwwards</a> - Un sito che premia e raccoglie esempi di design web di alta qualità, offrendo ispirazione e spunti creativi.</li>
<li><a href="https://www.webdesignerdepot.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Webdesigner Depot</a> - Una risorsa che offre articoli, tutorial e risorse gratuite per il web design, coprendo una vasta gamma di argomenti.</li>
<li><a href="https://stackoverflow.com/questions/tagged/web-design" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Stack Overflow</a> - Una comunità di sviluppatori dove puoi trovare risposte alle tue domande specifiche sul web design e interagire con altri professionisti del settore.</li>
<li><a href="https://dribbble.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Dribbble</a> - Una piattaforma in cui designer di tutto il mondo condividono i loro progetti, offrendo una fonte di ispirazione visiva per il web design.</li>
<li><a href="https://codepen.io/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">CodePen</a> - Una comunità online che permette di condividere, esplorare e sperimentare codice HTML, CSS e JavaScript, inclusi esempi di design interattivo.</li>
<li><a href="https://webflow.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Webflow</a> - Una piattaforma di sviluppo visuale che combina l'editing di design con il codice generato automaticamente, consentendo di creare siti web responsive senza dover scrivere manualmente il codice.</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/10-distro-linux-web-design/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Migliora velocità di caricamento del tuo sito web: 10 consigli</title>
		<link>https://www.mrtux.it/migliora-velocita-di-caricamento-sito-web-10-consigli</link>
					<comments>https://www.mrtux.it/migliora-velocita-di-caricamento-sito-web-10-consigli#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 20 Jun 2023 06:03:37 +0000</pubDate>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Indicizzazione SEO]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sito web]]></category>
		<category><![CDATA[velocità caricamento]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=2200</guid>

					<description><![CDATA[Scopri come ottimizzare la velocità di caricamento del tuo sito web con questi 10 consigli professionale. Migliora l'esperienza utente e il posizionamento sui motori di ricerca.]]></description>
										<content:encoded><![CDATA[<h2>Introduzione</h2>
<p>La <strong>velocità di caricamento</strong> di un <a href="https://www.mrtux.it/sito-web-lento-6-strategie-per-un-sito-web-veloce" data-wpel-link="internal" target="_self" rel="noopener">sito web</a> è un aspetto cruciale per il successo online. Per i visitatori una pagina web che si carica rapidamente è un requisito fondamentale. Inoltre i motori di ricerca considerano la velocità di caricamento come un importante fattore di ranking. In questo articolo esploreremo 10 consigli pratici ed efficaci per migliorare la velocità di caricamento del tuo sito web. Seguendo questi suggerimenti potrai fornire una migliore esperienza utente, aumentare la conversione e ottenere un vantaggio competitivo.</p>
<p><img loading="lazy" decoding="async" class="aligncenter" title="velocità di caricamento sito web" src="https://www.mrtux.it/wp-content/uploads/2023/06/velocita-caricamento-sito-web.png" alt="velocità di caricamento sito web" width="600" height="310" /></p>
<h2>1. Ottimizza le immagini per ridurre la dimensione dei file</h2>
<p>Le immagini sono spesso la causa principale di una lenta velocità di caricamento del sito web. Utilizzando immagini non ottimizzate, si aumenta il peso delle pagine e si rallenta il caricamento. Ecco alcuni consigli per ottimizzare le immagini:</p>
<ul>
<li>Riduci le dimensioni delle immagini utilizzando strumenti come Photoshop o <a href="https://www.gimp.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">GIMP</a>.</li>
<li>Comprimi le immagini utilizzando formati di file più efficienti come JPEG o WebP.</li>
<li>Utilizza lo lazy loading per caricare le immagini solo quando diventano visibili nella viewport dell'utente.</li>
<li>Imposta dimensioni e risoluzioni adeguate per le immagini, evitando di caricarle in dimensioni più grandi di quelle effettivamente visualizzate.</li>
</ul>
<h2>2. Minimizza e unifica i file CSS e JavaScript</h2>
<p>Un numero elevato di file CSS e <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript" target="_blank" rel="noopener nofollow external" data-wpel-link="external">JavaScript</a> può rallentare il caricamento del sito web. Ecco cosa puoi fare per ottimizzare i file CSS e JavaScript:</p>
<ul>
<li>Combina i file CSS in uno o pochi file, riducendo il numero di richieste al server.</li>
<li>Minimizza i file CSS e JavaScript rimuovendo spazi vuoti, commenti e linee vuote.</li>
<li>Utilizza strumenti di compressione come Gzip per ridurre ulteriormente le dimensioni dei file.</li>
<li>Carica i file CSS in testa (nella sezione ) e i file JavaScript alla fine del documento (prima della chiusura del tag).</li>
</ul>
<h2>3. Utilizza una CDN per fornire contenuti statici</h2>
<p>Una <a href="https://www.cloudflare.com/it-it/learning/cdn/what-is-a-cdn/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Content Delivery Network (CDN)</a> distribuisce i contenuti statici del tuo sito web in diversi server in tutto il mondo, consentendo agli utenti di accedere ai file dalla posizione più vicina a loro. Ciò riduce la latenza e migliora la velocità di caricamento complessiva del sito web.</p>
<ul>
<li>Scegli una CDN affidabile e configura correttamente il tuo sito web per utilizzarla.</li>
<li>Carica tutti i file statici (immagini, CSS, JavaScript) sulla CDN e utilizza i relativi URL nella tua pagina web.</li>
<li>Approfitta delle funzionalità di caching offerte dalla CDN per ridurre ulteriormente il tempo di caricamento delle risorse.</li>
</ul>
<h2>4. Ottimizza il codice HTML e CSS</h2>
<p>Un codice HTML e CSS ben ottimizzato può contribuire a migliorare la velocità di caricamento del sito web. Ecco alcuni suggerimenti per ottimizzare il codice:</p>
<ul>
<li>Rimuovi il codice superfluo, come tag o attributi non utilizzati.</li>
<li>Utilizza una struttura semantica per il tuo codice HTML, organizzando correttamente i tag e utilizzando elementi appropriati per i diversi tipi di contenuto.</li>
<li>Evita l'uso eccessivo di stili inline e preferisci invece i file CSS esterni.</li>
<li>Utilizza commenti per rendere il codice più comprensibile e manutenibile.</li>
</ul>
<h2>5. Abilita la cache del browser</h2>
<p>L'utilizzo della cache del browser consente agli utenti di memorizzare alcune risorse del tuo sito web localmente, riducendo così il numero di richieste al server e velocizzando il caricamento delle pagine per i visitatori ricorrenti. Ecco come abilitare la cache del browser:</p>
<ul>
<li>Configura l'header "Cache-Control" nel tuo server per specificare la durata della cache per le diverse risorse.</li>
<li>Imposta un etag (entity tag) per consentire al browser di verificare se la versione in cache di una risorsa è aggiornata o meno.</li>
<li>Utilizza nomi di file univoci per le risorse, in modo che le modifiche apportate si riflettano correttamente nei browser degli utenti.</li>
</ul>
<h2>6. Migliora le prestazioni del server</h2>
<p>Le prestazioni del server svolgono un ruolo fondamentale nella velocità di caricamento del tuo sito web. Ecco alcuni suggerimenti per ottimizzare il server:</p>
<ul>
<li>Scegli un hosting affidabile e di qualità che possa gestire il traffico e le richieste senza problemi.</li>
<li>Configura correttamente il tuo server per sfruttare la compressione Gzip e la memorizzazione nella cache.</li>
<li>Monitora le prestazioni del server e ottimizzale regolarmente, tenendo conto delle esigenze del tuo sito web.</li>
</ul>
<h2>7. Limita l'uso di plugin e script esterni</h2>
<p>L'aggiunta di numerosi plugin e script esterni può rallentare notevolmente il caricamento del tuo sito web. Ecco cosa puoi fare per ridurre l'impatto negativo:</p>
<ul>
<li>Valuta attentamente l'utilità di ogni plugin o script esterno prima di installarli sul tuo sito web.</li>
<li>Elimina o disabilita i plugin e gli script non necessari.</li>
<li>Utilizza versioni leggere o alternative dei plugin per ridurre la quantità di codice aggiuntivo caricato.</li>
</ul>
<h2>8. Utilizza un servizio di hosting con prestazioni elevate</h2>
<p>La scelta del servizio di hosting giusto è fondamentale per garantire una velocità di caricamento ottimale del sito web. Ecco alcuni fattori da considerare nella scelta di un servizio di hosting:</p>
<ul>
<li>Prestazioni del server, tra cui velocità di risposta e uptime garantito.</li>
<li>Opzioni di caching e compressione disponibili.</li>
<li>Supporto tecnico affidabile e tempi di risposta rapidi.</li>
<li>Scalabilità per gestire eventuali picchi di traffico.</li>
</ul>
<h2>9. Riduci il numero di reindirizzamenti</h2>
<p>I reindirizzamenti possono influire negativamente sulla velocità di caricamento del sito web. Limita il loro utilizzo e, quando necessario, utilizza reindirizzamenti 301 permanenti invece di quelli temporanei (302). Ecco alcuni suggerimenti per ridurre il numero di reindirizzamenti:</p>
<ul>
<li>Verifica la presenza di reindirizzamenti superflui e rimuovili.</li>
<li>Evita i reindirizzamenti in cascata, che comportano una catena di reindirizzamenti tra diverse pagine.</li>
</ul>
<h2>10. Monitora e ottimizza le prestazioni</h2>
<p>Il monitoraggio delle prestazioni del tuo sito web è essenziale per identificare eventuali problemi e miglioramenti. Ecco cosa puoi fare per monitorare e ottimizzare le prestazioni:</p>
<ul>
<li>Utilizza strumenti come Google PageSpeed Insights o GTmetrix per analizzare le prestazioni del tuo sito web e identificare le aree di miglioramento.</li>
<li>Monitora regolarmente i tempi di caricamento delle pagine e le metriche di performance per identificare eventuali rallentamenti.</li>
<li>Effettua test A/B per valutare l'impatto delle modifiche apportate sulle prestazioni complessive del sito web.</li>
</ul>
<p><img loading="lazy" decoding="async" class="size-full wp-image-582 aligncenter" src="https://www.mrtux.it/wp-content/uploads/2019/10/velocita-caricamento-wordpress.jpg" alt="velocita caricamento wordpress" width="1000" height="636" srcset="https://www.mrtux.it/wp-content/uploads/2019/10/velocita-caricamento-wordpress.jpg 1000w, https://www.mrtux.it/wp-content/uploads/2019/10/velocita-caricamento-wordpress-300x191.jpg 300w, https://www.mrtux.it/wp-content/uploads/2019/10/velocita-caricamento-wordpress-768x488.jpg 768w, https://www.mrtux.it/wp-content/uploads/2019/10/velocita-caricamento-wordpress-20x13.jpg 20w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></p>
<h2>Domande frequenti sulla velocità di caricamento del sito web</h2>
<h3>Qual è una velocità di caricamento accettabile per un sito web?</h3>
<p>Una velocità di caricamento accettabile per un sito web è generalmente inferiore a 3 secondi. Tuttavia, obiettivi più ambiziosi includono tempi di caricamento inferiori a 2 secondi o addirittura inferiori a 1 secondo.</p>
<h3>Come posso misurare la velocità di caricamento del mio sito web?</h3>
<p>Puoi misurare la velocità di caricamento del tuo sito web utilizzando strumenti come Google PageSpeed Insights, <a href="https://gtmetrix.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">GTmetrix</a> o WebPageTest.</p>
<p>Questi strumenti ti forniranno una valutazione delle prestazioni del tuo sito web e suggerimenti per migliorare la velocità di caricamento.</p>
<h3>Quali sono i fattori che influenzano la velocità di caricamento di un sito web?</h3>
<p>Diversi fattori possono influenzare la velocità di caricamento di un sito web, tra cui la dimensione delle immagini, il numero di richieste al server, la qualità dell'hosting, la presenza di script e plugin pesanti, la configurazione del server e la presenza di reindirizzamenti superflui.</p>
<h3>Come posso ottimizzare la velocità di caricamento di un sito web WordPress?</h3>
<p>Per ottimizzare la velocità di caricamento di un sito web WordPress, puoi seguire i consigli descritti in questo articolo, come l'ottimizzazione delle immagini, la riduzione del numero di plugin, l'utilizzo di una CDN e la configurazione corretta della cache del browser. Puoi anche utilizzare plugin di caching e ottimizzazione delle immagini specifici per WordPress.</p>
<h3>Cosa posso fare se il mio sito web è ancora lento nonostante l'ottimizzazione?</h3>
<p>Se il tuo sito web è ancora lento nonostante l'ottimizzazione, potresti voler considerare l'analisi approfondita delle prestazioni con l'aiuto di uno sviluppatore esperto.</p>
<p>Potrebbe esserci la necessità di esaminare il codice personalizzato, l'infrastruttura del server o altri fattori specifici che richiedono una soluzione personalizzata.</p>
<h2>Conclusione</h2>
<p>Migliorare la velocità di caricamento del tuo sito web è fondamentale per offrire una migliore esperienza agli utenti e ottenere un vantaggio competitivo. Seguendo i 10 consigli forniti in questo articolo potrai ottimizzare efficacemente la velocità di caricamento del tuo sito web. Ricorda che la velocità di caricamento è un processo continuo, quindi monitora regolarmente le prestazioni del tuo sito e apporta gli aggiornamenti necessari per mantenere una velocità ottimale. Investire tempo ed energia nell'ottimizzazione della velocità di caricamento del tuo sito web si tradurrà in un sito più veloce, una maggiore soddisfazione degli utenti e un migliore posizionamento sui motori di ricerca.</p>
<h4>External links</h4>
<ul>
<li><a href="https://developers.google.com/speed/pagespeed/insights" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Google PageSpeed Insights</a></li>
<li><a href="https://gtmetrix.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">GTmetrix</a></li>
<li><a href="https://www.webpagetest.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WebPageTest</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/migliora-velocita-di-caricamento-sito-web-10-consigli/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WP-CLI Tutorial &#124; Gestione avanzata di WordPress</title>
		<link>https://www.mrtux.it/wp-cli-tutorial-gestione-avanzata-di-wordpress</link>
					<comments>https://www.mrtux.it/wp-cli-tutorial-gestione-avanzata-di-wordpress#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 14 Jun 2023 08:19:52 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-cli]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=2163</guid>

					<description><![CDATA[Scopri come utilizzare WP-CLI, lo strumento di gestione di WordPress basato sulla riga di comando. Questo tutorial ti guiderà passo dopo passo nell'installazione di WP-CLI, nell'esplorazione dei comandi principali.]]></description>
										<content:encoded><![CDATA[<h2>Introduzione</h2>
<p>In questo tutorial esamineremo <a href="https://www.mrtux.it/backup-remoto-wp-tramite-wp-cli-rclone-e-restic" data-wpel-link="internal" target="_self" rel="noopener">WP-CLI</a>, lo strumento di gestione di WordPress basato sulla riga di comando. Se stai cercando di semplificare il modo in cui gestisci il <a href="https://it.wordpress.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">tuo sito WordPress</a> WP-CLI è la soluzione perfetta per te. Con WP-CLI puoi automatizzare le operazioni comuni di WordPress, risparmiando tempo e complicazioni varie. Vedremo come installare WP-CLI, esploreremo i comandi principali e forniremo alcuni esempi pratici che ti aiuteranno ad approfondire la gestione del tuo sito WordPress. Quindi preparati a scoprire il potenziale di <strong>WP-CLI</strong> e migliorare la tua esperienza di gestione di WordPress.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2165 aligncenter" src="https://www.mrtux.it/wp-content/uploads/2023/06/bash-wp-cli-wordpress-linea-comando-1.jpg" alt="bash wp cli wordpress linea comando" width="960" height="640" srcset="https://www.mrtux.it/wp-content/uploads/2023/06/bash-wp-cli-wordpress-linea-comando-1.jpg 960w, https://www.mrtux.it/wp-content/uploads/2023/06/bash-wp-cli-wordpress-linea-comando-1-300x200.jpg 300w, https://www.mrtux.it/wp-content/uploads/2023/06/bash-wp-cli-wordpress-linea-comando-1-768x512.jpg 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></p>
<h2>Cosa è WP-CLI?</h2>
<p>WP-CLI è uno strumento di <em>linea di comando</em> open source che consente di gestire un sito WordPress senza dover utilizzare l'interfaccia utente tradizionale del pannello di amministrazione. Con WP-CLI  puoi eseguire una vasta gamma di operazioni, come l'installazione di temi e plugin, la gestione dei contenuti, il backup e il ripristino del database e molto altro ancora, tutto direttamente dalla riga di comando.</p>
<h2>Installazione di WP-CLI</h2>
<p>Prima di iniziare ad utilizzare WP-CLI è necessario installarlo sul tuo sistema. Segui questi passaggi per installare WP-CLI:</p>
<ol>
<li>Apri il tuo terminale o prompt dei comandi.</li>
<li>Verifica di avere già installato PHP sul tuo sistema.</li>
<li>Utilizza il seguente comando per scaricare l'archivio di WP-CLI:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
</pre>
</li>
<li>Verifica l'integrità dell'archivio scaricato utilizzando il comando:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">php -r "if (hash_file('sha512', 'wp-cli.phar') === 'aa31b17e1d7d4eaf63dbf56c74b72cd46ce6ab5d2912c60e2c3f71b62459e06807bf60ef660cdaa3df9e4debb3d61befb794d669f1b8d7a9d4fddb042bbc2a8') { echo 'WP-CLI Phar integrity verified.' . PHP_EOL; } else { echo 'Phar integrity check failed. Please try downloading WP-CLI again.' . PHP_EOL; }"
</pre>
</li>
<li>Rinomina il file scaricato in <code>wp-cli.phar</code> con il comando:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">mv wp-cli.phar wp-cli
</pre>
</li>
<li>Sposta il file <code>wp-cli</code> in una directory inclusa nel tuo PATH di sistema per renderlo eseguibile globalmente. Ad esempio, puoi utilizzare il seguente comando per spostarlo nella directory `/usr/local/bin/:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo mv wp-cli /usr/local/bin/
</pre>
</li>
<li>Verifica l'installazione eseguendo il comando:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp --info
</pre>
<p>Se tutto è stato configurato correttamente, dovresti visualizzare le informazioni di WP-CLI, inclusa la versione installata.</li>
</ol>
<h2>Utilizzo di WP-CLI</h2>
<p>Una volta installato WP-CLI, puoi iniziare a utilizzarlo per gestire il tuo sito WordPress direttamente dalla riga di comando. Ecco alcuni dei comandi più comuni che ti saranno utili:</p>
<h3>1. Installazione di WordPress</h3>
<p>Puoi utilizzare WP-CLI per installare una nuova istanza di WordPress sul tuo server con pochi comandi. Ad esempio, per installare WordPress con un database specifico, puoi utilizzare il seguente comando:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp core install --url=nome-sito.com --title=Titolo-sito --admin_user=admin --admin_password=password --admin_email=admin@nome-sito.com
</pre>
<p>Assicurati di sostituire <code>nome-sito.com</code> con il tuo URL effettivo, <code>Titolo-sito</code> con il titolo desiderato per il tuo sito, <code>admin</code> con il nome utente desiderato per l'account amministratore, <code>password</code> con la password desiderata per l'account amministratore e <code>admin@nome-sito.com</code> con l'indirizzo email dell'amministratore.</p>
<h3>2. Installazione di temi e plugin</h3>
<p>Con WP-CLI, puoi installare e gestire temi e plugin direttamente dalla riga di comando. Ecco alcuni esempi:</p>
<ul>
<li>Per installare un tema:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp theme install nome-tema
</pre>
</li>
<li>Per attivare un tema:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp theme activate nome-tema
</pre>
</li>
<li>Per installare un plugin:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp plugin install nome-plugin
</pre>
</li>
<li>Per attivare un plugin:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp plugin activate nome-plugin
</pre>
</li>
</ul>
<h3>3. Gestione dei contenuti</h3>
<p>WP-CLI ti consente di gestire i contenuti del tuo sito WordPress in modo efficiente. Puoi creare nuovi articoli, pagine, categorie e molto altro ancora utilizzando i seguenti comandi:</p>
<ul>
<li>Per creare un nuovo articolo:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp post create --post_type=post --post_title='Titolo-articolo' --post_content='Contenuto-articolo' --post_status=publish
</pre>
</li>
<li>Per creare una nuova pagina:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp post create --post_type=page --post_title='Titolo-pagina' --post_content='Contenuto-pagina' --post_status=publish
</pre>
</li>
<li>Per creare una nuova categoria:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp term create category 'Nome-categoria'
</pre>
</li>
<li>Per assegnare una categoria a un articolo:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp post term set ID-articolo category 'Nome-categoria'
</pre>
</li>
</ul>
<h3>4. Backup e ripristino del database</h3>
<p>Con WP-CLI, puoi eseguire facilmente il backup del tuo database WordPress e ripristinarlo se necessario. Ecco come farlo:</p>
<ul>
<li>Per eseguire il backup del database:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp db export nome-file.sql
</pre>
</li>
<li>Per ripristinare il database da un file di backup:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wp db import nome-file.sql
</pre>
</li>
</ul>
<p>Questi sono solo alcuni degli esempi di comandi che puoi utilizzare con WP-CLI. Esplora la documentazione ufficiale di WPCLI per scoprire ulteriori comandi e funzionalità avanzate che possono semplificare ulteriormente la gestione del tuo sito WordPress.</p>
<h2>Domande frequenti su WP-CLI</h2>
<h3>1. Cos'è WP-CLI e perché dovrei usarlo?</h3>
<p>WP-CLI è uno strumento di linea di comando per la gestione di WordPress. È estremamente utile per gli sviluppatori e gli amministratori di siti WordPress poiché consente di automatizzare operazioni comuni, risparmiando tempo e sforzo. Con WP-CLI puoi eseguire task come l'installazione di temi e plugin, la gestione dei contenuti e il <a href="https://www.mrtux.it/guida-rclone-criptare-salvare-su-yandex-disk-backups" data-wpel-link="internal" target="_self" rel="noopener">backup</a> del database, tutto senza dover utilizzare l'interfaccia utente tradizionale del pannello di amministrazione.</p>
<h3>2. Come posso installare WP-CLI sul mio sistema?</h3>
<p>L'installazione di WP-CLI è semplice. Devi assicurarti di avere PHP installato sul tuo sistema e seguire i passaggi di installazione che abbiamo descritto in precedenza. Una volta completata l'installazione, potrai utilizzare WP-CLI direttamente dalla riga di comando.</p>
<h3>3. Quali sono alcuni comandi comuni di WP-CLI che dovrei conoscere?</h3>
<p>Ci sono numerosi comandi utili che puoi utilizzare con WP-CLI. Alcuni esempi includono l'installazione di WordPress, l'installazione e l'attivazione di temi e plugin, la gestione dei contenuti e il backup del database. Nel nostro tutorial, abbiamo fornito alcuni esempi di comandi per aiutarti a iniziare, ma ti consigliamo di esplorare la documentazione ufficiale di WP-CLI per scoprire ulteriori comandi e funzionalità.</p>
<h3>4. WP-CLI è adatto anche ai principianti o è più adatto agli sviluppatori esperti?</h3>
<p>WP-CLI può essere utilizzato sia dai principianti che dagli sviluppatori esperti. Anche se alcune funzionalità più avanzate richiedono una conoscenza più approfondita di WordPress e della riga di comando, ci sono molti comandi di base che possono essere facilmente utilizzati dai principianti per semplificare la gestione del loro sito. Con un po' di pratica, anche i principianti possono trarre vantaggio dall'utilizzo di WP-CLI per automatizzare operazioni comuni e risparmiare tempo.</p>
<h3>5. WP-CLI è compatibile con tutti i provider di hosting?</h3>
<p>Sì, WP-CLI è compatibile con la maggior parte dei provider di hosting che supportano WordPress. Tuttavia, potrebbero esserci alcune limitazioni o restrizioni imposte dai provider di hosting specifici. Assicurati di verificare con il tuo provider di hosting se supportano WP-CLI e se ci sono eventuali requisiti o configurazioni aggiuntive da seguire per utilizzarlo correttamente.</p>
<h3>6. Posso utilizzare WP-CLI anche per siti WordPress multisito?</h3>
<p>Assolutamente! WP-CLI supporta la gestione di siti WordPress multisito. Puoi utilizzare comandi specifici per operare su siti individuali all'interno della tua installazione multisito, consentendoti di gestire in modo efficiente l'intera rete di siti WordPress.</p>
<h2>Conclusioni</h2>
<p>WP-CLI è unostrumento potente che semplifica notevolmente la gestione di WordPress direttamente dalla riga di comando. Nel nostro tutorial, abbiamo esaminato l'installazione di WP-CLI, i comandi principali e fornito esempi pratici per aiutarti a iniziare. Ricorda che WP-CLI può automatizzare molte operazioni comuni, consentendoti di risparmiare tempo prezioso nella gestione del tuo sito WordPress.</p>
<p>Utilizzando WP-CLI, puoi installare temi e plugin, gestire i contenuti, eseguire backup del database e molto altro ancora, tutto attraverso comandi semplici e intuitivi. Con un po' di pratica e familiarità con i comandi di WP-CLI, potrai ottimizzare e semplificare ulteriormente la gestione del tuo sito WordPress.</p>
<p>Spero che questo tutorial ti abbia fornito una base di conoscenza su WP-CLI che ti consenta di sfruttare i vantaggi nell'utilizzo di questo strumento nella tua esperienza con WordPress. Esplora ulteriormente i comandi e le funzionalità di WP-CLI per scoprire come puoi personalizzare e automatizzare la gestione del tuo <a href="https://www.mrtux.it/timeline-creazione-sito-web-dalla-bozza-alla-messa-online" data-wpel-link="internal" target="_self" rel="noopener">sito web</a>.</p>
<h3>Risorse esterne utili:</h3>
<ul>
<li>Documentazione ufficiale di WP-CLI: <a href="https://wp-cli.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">link</a></li>
<li>WP-CLI su GitHub: <a href="https://github.com/wp-cli/wp-cli" target="_blank" rel="noopener nofollow external" data-wpel-link="external">link</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/wp-cli-tutorial-gestione-avanzata-di-wordpress/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Come impostare un server Web con Hestia Control Panel</title>
		<link>https://www.mrtux.it/come-impostare-un-server-web-con-hestia-control-panel</link>
					<comments>https://www.mrtux.it/come-impostare-un-server-web-con-hestia-control-panel#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 14 Jun 2023 06:44:43 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[hestiacp]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=2158</guid>

					<description><![CDATA[Impara come configurare un server Web utilizzando Hestia Control Panel e sfrutta la potenza di WordPress. Segui questa guida completa per ottenere un ambiente di hosting affidabile e sicuro.]]></description>
										<content:encoded><![CDATA[<p>Se stai cercando un pannello di controllo potente, intuitivo e gratuito per gestire il tuo server Linux, <a href="https://hestiacp.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Hestia Control Panel</a> (HestiaCP) è la scelta perfetta. In questo articolo ti forniremo una panoramica completa su come installare, configurare e utilizzare HestiaCP per creare e <a href="https://www.mrtux.it/installare-wordpress-vps-centos-7-vestacp" data-wpel-link="internal" target="_self" rel="noopener">gestire siti Web</a>, in particolare con lo scopo di configurare e installare WordPress.</p>
<p><img loading="lazy" decoding="async" class="aligncenter" src="https://www.mrtux.it/wp-content/uploads/2023/06/wordpress-hestiacp-intallazione.jpg" alt="wordpress hestiacp intallazione" width="750" height="469" /></p>
<h2>1. Cos'è Hestia Control Panel?</h2>
<p>Hestia Control Panel è un pannello di controllo <a href="https://it.wikipedia.org/wiki/Open_source" target="_blank" rel="noopener nofollow external" data-wpel-link="external">open-source</a> progettato per semplificare la gestione dei server Web basati su Linux. Fornisce un'interfaccia utente intuitiva e una vasta gamma di funzionalità che consentono agli amministratori di configurare e monitorare facilmente il proprio server. HestiaCP supporta diverse distribuzioni Linux, tra cui Ubuntu, Debian e CentOS.</p>
<h3>1.1 Vantaggi di Hestia Control Panel</h3>
<p>Hestia Control Panel offre numerosi vantaggi che lo rendono una scelta ideale per gli amministratori di server Web:</p>
<ul>
<li>Installazione semplice e veloce</li>
<li>Interfaccia utente intuitiva e facile da usare</li>
<li>Ampia gamma di funzionalità per la gestione del server</li>
<li>Supporto per diverse <a href="https://www.mrtux.it/25-applicazioni-linux-gratuite-web-design-produttivita" data-wpel-link="internal" target="_self" rel="noopener">distribuzioni Linux</a></li>
<li>Aggiornamenti regolari e sicurezza avanzata</li>
<li>Assistenza e documentazione completa</li>
</ul>
<h2>2. Installazione di Hestia Control Panel</h2>
<p>Per iniziare, segui i passaggi di seguito per installare Hestia Control Panel sul tuo server:</p>
<ol>
<li>Accedi al tuo server Linux tramite <a href="https://www.ssh.com/academy/ssh" target="_blank" rel="noopener nofollow external" data-wpel-link="external">SSH</a> utilizzando le tue credenziali di accesso amministrativo.</li>
<li>Assicurati di avere i privilegi di root o di un utente con accesso sudo.</li>
<li>Aggiorna i pacchetti del sistema eseguendo il seguente comando:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo apt update
</pre>
</li>
<li>Installa il software Hestia Control Panel eseguendo il seguente comando:
<pre class="EnlighterJSRAW" data-enlighter-language="generic">wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
sudo bash hst-install.sh
</pre>
</li>
<li>Segui le istruzioni visualizzate sullo schermo per completare l'installazione.</li>
<li>Una volta completata l'installazione puoi accedere all'interfaccia di amministrazione di HestiaCP utilizzando il tuo browser preferito e accedendo all'indirizzo <code>https://indirizzo_ip_server:8083</code>. Assicurati di sostituire "indirizzo_ip_server" con l'indirizzo IP del tuo server.</li>
</ol>
<h2>3. Configurazione di Hestia Control Panel</h2>
<p>Dopo aver installato Hestia Control Panel è importante configurarlo correttamente per il tuo ambiente di hosting. Di seguito sono riportate alcune delle configurazioni di base che dovresti prendere in considerazione:</p>
<h3>3.1 Configurazione iniziale</h3>
<ul>
<li>Durante la configurazione iniziale di HestiaCP verrà richiesto di fornire alcune informazioni di base, come il nome del tuo server, l'indirizzo email dell'amministratore e la password di accesso. Assicurati di fornire informazioni accurate e di scegliere una password sicura.</li>
<li>Puoi anche configurare le impostazioni di rete come l'indirizzo IP predefinito per il server e il nome del dominio predefinito. Queste impostazioni possono essere modificate successivamente se necessario.</li>
</ul>
<h3>3.2 Configurazione del server Web</h3>
<p>HestiaCP offre un'interfaccia semplice e intuitiva per la configurazione del <a href="https://www.creativemotions.it/cos-e-un-web-server/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">server Web</a>. Puoi facilmente gestire domini, sottodomini, certificati SSL e impostazioni di sicurezza. Di seguito sono riportate alcune delle principali funzionalità offerte da HestiaCP per la configurazione del server Web:</p>
<ul>
<li>Aggiunta di domini: Puoi facilmente aggiungere domini al tuo server utilizzando l'opzione "Aggiungi dominio" nell'interfaccia di amministrazione. Assicurati di impostare correttamente i record DNS per il tuo dominio per indirizzare il traffico correttamente al tuo server.</li>
<li>Gestione dei certificati SSL: HestiaCP supporta la gestione dei <a href="https://www.kaspersky.it/resource-center/definitions/what-is-a-ssl-certificate" target="_blank" rel="noopener nofollow external" data-wpel-link="external">certificati SSL</a> tramite Let's Encrypt. Puoi generare e installare facilmente certificati SSL gratuiti per i tuoi domini e garantire una connessione sicura.</li>
<li>Configurazione di regole di sicurezza: Puoi configurare regole di firewall e impostare restrizioni di accesso per proteggere il tuo server da attacchi esterni. HestiaCP offre un'interfaccia semplice per configurare regole di sicurezza personalizzate.</li>
</ul>
<h3>3.3 Installazione di WordPress su Hestia Control Panel</h3>
<p>Una delle caratteristiche di Hestia Control Panel è la facilità di installazione e gestione di WordPress. Di seguito sono riportati i passaggi per installare WordPress sul tuo server utilizzando HestiaCP:</p>
<ol>
<li>Accedi all'interfaccia di amministrazione di HestiaCP utilizzando il tuo browser preferito.</li>
<li>Naviga nel menu a sinistra e seleziona "Web" e poi "Aggiungi dominio".</li>
<li>Inserisci il nome di dominio desiderato e scegli la cartella di destinazione per il tuo sito WordPress.</li>
<li>Fai clic su "Aggiungi" per creare il dominio.</li>
<li>Torna alla pagina principale di HestiaCP e fai clic su "WordPress" nel menu a sinistra.</li>
<li>Seleziona il dominio appena creato e fai clic su "Installa WordPress".</li>
<li>Fornisci le informazioni richieste, come il nome utente, la password e l'indirizzo email per l'amministratore di WordPress.</li>
<li>Fai clic su "Installa" per avviare l'installazione di WordPress.</li>
</ol>
<p>Una volta completata l'installazione, puoi accedere al tuo sito WordPress utilizzando l'URL del dominio che hai configurato. Puoi anche gestire il tuo sito WordPress tramite l'interfaccia di amministrazione di WordPress, che è accessibile tramite il menu di HestiaCP.</p>
<h2>4. Domande frequenti (FAQs)</h2>
<p><strong>Domanda 1:</strong> Posso utilizzare Hestia Control Panel con altre applicazioni oltre a WordPress?<br />
<strong>Risposta:</strong> Sì, Hestia Control Panel supporta una vasta gamma di applicazioni Web, tra cui <a href="https://www.mrtux.it/assistenza-wordpress-risolvi-problemi-sito" data-wpel-link="internal" target="_self" rel="noopener">WordPress</a>, Joomla, Drupal e molte altre. Puoi facilmente installare e gestire queste applicazioni tramite l'interfaccia di amministrazione di HestiaCP.</p>
<p><strong>Domanda 2:</strong> Posso migrare i miei siti esistenti su Hestia Control Panel?<br />
<strong>Risposta:</strong> Sì, puoi migrare i tuoi siti esistenti su HestiaCP. Puoi utilizzare strumenti di migrazione come Duplicator o eseguire manualmente il backup dei tuoi siti e ripristinarli sul server HestiaCP. Assicurati di seguire le istruzioni appropriate per garantire una migrazione corretta e senza problemi.</p>
<p><strong>Domanda 3:</strong> Hestia Control Panel è sicuro?<br />
<strong>Risposta:</strong> Sì, HestiaCP offre funzionalità avanzate di sicurezza per proteggere il tuo server. Puoi configurare regole di firewall, abilitare l'autenticazione a due fattori e gestire certificati SSL per garantire una connessione sicura. Inoltre, HestiaCP offre regolari aggiornamenti per garantire la sicurezza del tuo ambiente di hosting.</p>
<p><strong>Domanda 4:</strong> Quali sono i requisiti di sistema per Hestia Control Panel?<br />
<strong>Risposta:</strong> Hestia Control Panel richiede un server Linux con almeno 1 GB di RAM, 1 CPU e 10 GB di spazio su disco. È compatibile con diverse distribuzioni Linux, tra cui Ubuntu, Debian e CentOS.</p>
<h2>5. Conclusioni</h2>
<p>In questa guida, hai imparato come impostare un server Web utilizzando Hestia Control Panel. Abbiamo esplorato l'installazione di HestiaCP, la configurazione di base del server Web e l'installazione di WordPress su HestiaCP. Hestia Control Panel offre un'interfaccia intuitiva e potente per la gestione del tuo server, rendendo la creazione e la gestione di <a href="https://www.mrtux.it/creazione-siti-web" data-wpel-link="internal" target="_self" rel="noopener">siti Web</a>, in particolare con WordPress, un processo semplice e accessibile.</p>
<p>Sfruttando le funzionalità di HestiaCP, puoi ottenere un ambiente di hosting affidabile e sicuro per i tuoi progetti online. Non esitare a esplorare ulteriormente le funzionalità offerte da Hestia Control Panel e a sfruttarne appieno il potenziale.</p>
<p>Ricorda di seguire le best practice di sicurezza e di mantenere il tuo server e le tue applicazioni sempre aggiornate. Con Hestia Control Panel, hai tutto il necessario per creare e gestire siti Web di successo. Buon lavoro!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/come-impostare-un-server-web-con-hestia-control-panel/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>22 Applicazioni Linux Gratuite per Web Design e Produttività</title>
		<link>https://www.mrtux.it/25-applicazioni-linux-gratuite-web-design-produttivita</link>
					<comments>https://www.mrtux.it/25-applicazioni-linux-gratuite-web-design-produttivita#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sat, 10 Jun 2023 08:30:18 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[web design]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=2143</guid>

					<description><![CDATA[Web Design e strumenti gratuiti. In questo articolo, esploreremo 25 incredibili applicazioni Linux gratuite che ti aiuteranno a creare siti web straordinari.]]></description>
										<content:encoded><![CDATA[<h2>Introduzione</h2>
<p>Sei un appassionato di web design o desideri avvicinarti a questa affascinante disciplina? Se la tua risposta è sì, sei nel posto giusto! In questo articolo, esploreremo 25 incredibili <a href="https://www.andreaminini.com/linux/applicazioni-e-software-per-linux" target="_blank" rel="noopener nofollow external" data-wpel-link="external">applicazioni Linux</a> gratuite che ti aiuteranno a <a href="https://www.mrtux.it/creazione-siti-web" data-wpel-link="internal" target="_self" rel="noopener">creare siti web</a> straordinari.</p>
<p>Il web design è diventato un elemento fondamentale per qualsiasi azienda o professionista che desideri avere una forte presenza online. Utilizzare le applicazioni giuste è essenziale per ottenere risultati sorprendenti e offrire un'esperienza coinvolgente ai visitatori del tuo sito.</p>
<p><img loading="lazy" decoding="async" class="size-large wp-image-2144 aligncenter" src="https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design-strumenti-1024x576.jpg" alt="linux web design strumenti" width="1024" height="576" srcset="https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design-strumenti-1024x576.jpg 1024w, https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design-strumenti-300x169.jpg 300w, https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design-strumenti-768x432.jpg 768w, https://www.mrtux.it/wp-content/uploads/2023/06/linux-web-design-strumenti.jpg 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<h2>1. GIMP</h2>
<p>GIMP è uno straordinario strumento di fotoritocco che ti consente di creare e modificare immagini in modo professionale. Con un'interfaccia intuitiva e potenti funzionalità, GIMP è considerato il "Photoshop di Linux". Puoi ritoccare le immagini, creare loghi accattivanti e persino realizzare grafiche per il tuo sito web.</p>
<p><strong>Caratteristiche principali di GIMP:</strong></p>
<ul>
<li>Strumenti avanzati di fotoritocco, come livelli, maschere e filtri.</li>
<li>Supporto per i formati di file più comuni, come JPG, PNG e GIF.</li>
<li>Ampia gamma di pennelli e strumenti di disegno.</li>
<li>Plugin personalizzabili per estendere le funzionalità di base.</li>
</ul>
<p><a href="https://www.gimp.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su GIMP</a></p>
<h2>2. Inkscape</h2>
<p>Inkscape è un'applicazione di grafica vettoriale che ti permette di creare illustrazioni e icone di alta qualità per il tuo sito web. Grazie ai suoi strumenti potenti e alla sua interfaccia intuitiva, Inkscape è una scelta ideale per i designer che lavorano con il sistema operativo Linux.</p>
<p><strong>Caratteristiche principali di Inkscape:</strong></p>
<ul>
<li>Strumenti di disegno precisi per creare forme vettoriali.</li>
<li>Supporto completo per SVG (Scalable Vector Graphics).</li>
<li>Funzionalità di testo avanzate per aggiungere titoli e descrizioni.</li>
<li>Possibilità di combinare oggetti per creare illustrazioni complesse.</li>
</ul>
<p><a href="https://inkscape.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Inkscape</a></p>
<h2>3. Scribus</h2>
<p>Se hai bisogno di progettare materiali promozionali o brochure per il tuo sito web, Scribus è l'applicazione che fa al caso tuo. Questo software di impaginazione professionale ti permette di creare layout accattivanti e di alta qualità.</p>
<p><strong>Caratteristiche principali di Scribus:</strong></p>
<ul>
<li>Strumenti di impaginazione intuitivi per organizzare il contenuto.</li>
<li>Supporto per immagini ad alta risoluzione e colori CMYK per la stampa.</li>
<li>Possibilità di creare stili di testo personalizzati.</li>
<li>Gestione dei livelli per un maggiore controllo degli elementi grafici.</li>
</ul>
<p><a href="https://www.scribus.net" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Scribus</a></p>
<h2>4. Bluefish</h2>
<p>Bluefish è un potente editor di testo specificamente progettato per il web design. Con funzionalità avanzate di editing<strong>Caratteristiche principali di Bluefish:</strong></p>
<ul>
<li>Evidenziazione della sintassi per diversi linguaggi di programmazione.</li>
<li>Funzionalità di completamento automatico per una scrittura più rapida del codice.</li>
<li>Gestione dei progetti per organizzare i file del tuo sito web.</li>
<li>Possibilità di eseguire test e debug direttamente dall'editor.</li>
</ul>
<p><a href="https://bluefish.openoffice.nl" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Bluefish</a></p>
<h2>5. Brackets</h2>
<p>Brackets è un editor di codice moderno e intuitivo che si adatta perfettamente alle esigenze dei principianti nel campo del web design. Con una vasta gamma di estensioni e anteprime in tempo reale, Brackets ti permette di visualizzare immediatamente le modifiche apportate al codice.</p>
<p><strong>Caratteristiche principali di Brackets:</strong></p>
<ul>
<li>Anteprime in tempo reale per visualizzare il sito web mentre scrivi il codice.</li>
<li>Estensioni personalizzabili per estendere le funzionalità dell'editor.</li>
<li>Integrazione con Adobe Creative Cloud per il design responsive.</li>
<li>Interfaccia semplice e intuitiva.</li>
</ul>
<p><a href="http://brackets.io" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Brackets</a></p>
<h2>6. WebStorm</h2>
<p>WebStorm è un potente ambiente di sviluppo integrato (IDE) per il web design. Offre una vasta gamma di strumenti e funzionalità avanzate per semplificare il processo di sviluppo web.</p>
<p><strong>Caratteristiche principali di WebStorm:</strong></p>
<ul>
<li>Funzionalità di completamento automatico per una scrittura rapida del codice.</li>
<li>Debugging avanzato per individuare e risolvere gli errori.</li>
<li>Integrazione con Git per il controllo di versione.</li>
<li>Supporto per diversi linguaggi di programmazione web.</li>
</ul>
<p><a href="https://www.jetbrains.com/webstorm" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su WebStorm</a></p>
<h2>7. WordPress</h2>
<p>WordPress è una delle piattaforme di gestione dei contenuti (CMS) più popolari al mondo. Con WordPress, puoi creare e gestire il tuo sito web in modo facile ed efficiente, anche senza conoscenze di programmazione.</p>
<p><strong>Caratteristiche principali di WordPress:</strong></p>
<ul>
<li>Ampia scelta di temi e plugin per personalizzare il tuo sito web.</li>
<li>Editor intuitivo per la creazione e la modifica del contenuto.</li>
<li>Funzionalità di ottimizzazione per i motori di ricerca (SEO).</li>
<li>Possibilità di gestire un blog integrato nel tuo sito web.</li>
</ul>
<p><a href="https://it.wordpress.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su WordPress</a></p>
<h2>8. Drupal</h2>
<p>Drupal è un altro potente CMS che ti offre un'ampia flessibilità nel design e nella gestione del tuo sito web. È particolarmente adatto per la creazione di siti web complessi e di grandi dimensioni.</p>
<p><strong>Caratteristiche principali di Drupal:</strong></p>
<ul>
<li>Strumenti avanzati di gestione dei contenuti.</li>
<li>Ampia selezione di moduli per estendere le funzionalità del tuo sito.</li>
<li>Design responsivo per un'ottima visualizzazione su dispositivi mobili.</li>
<li>Sistema di permessi e ruoli per controllare l'accesso al contenuto.</li>
</ul>
<p><a href="https://www.drupal.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Drupal</a></p>
<h2>9. Joomla!</h2>
<p>Joomla! è un altro CMS popolare che ti permette di creare siti web dinamici e interattivi. Con la sua interfaccia intuitiva e una vasta gamma di estensioni, Joomla! ti consente di creare siti web personalizzati e di alta qualità.</p>
<p><strong>Caratteristiche principali di Joomla!:</strong></p>
<ul>
<li>Sistema di gestione dei contenuti flessibile e potente.</li>
<li>Ampia scelta di modelli per il design del sito.</li>
<li>Funzionalità avanzate per la gestione degli utenti e dei permessi.</li>
<li>Possibilità di creare siti multilingua.</li>
</ul>
<p><a href="https://www.joomla.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Joomla!</a></p>
<h2>10. Krita</h2>
<p>Krita è un software di grafica digitale che si concentra principalmente sulla pittura digitale e l'illustrazione. Con una vasta gamma di pennelli e strumenti di disegno, Krita è un'ottima scelta per i web designer che desiderano creare grafiche originali e accattivanti per il loro sito.</p>
<p><strong>Caratteristiche principali di Krita:</strong></p>
<ul>
<li>Vasta selezione di pennelli e texture personalizzabili.</li>
<li>Supporto per la pittura digitale e l'illustrazione vettoriale.</li>
<li>Strumenti avanzati di fusione dei colori.</li>
<li>Possibilità di creare animazioni.</li>
</ul>
<p><a href="https://krita.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Krita</a></p>
<h2>11. Blender</h2>
<p>Se stai cercando un'applicazione per la modellazione 3D e l'animazione, Blender è la scelta ideale. Questo software open-source offre una vasta gamma di strumenti per creare grafiche 3D mozzafiato per il tuo sito web.</p>
<p><strong>Caratteristiche principali di Blender:</strong></p>
<ul>
<li>Potenti strumenti di modellazione 3D per la creazione di oggetti e personaggi.</li>
<li>Motori di rendering avanzati per ottenere immagini realistiche.</li>
<li>Animazione 3D e simulazione di effetti speciali.</li>
<li>Supporto per scripting e personalizzazione.</li>
</ul>
<p><a href="https://www.blender.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Blender</a></p>
<h2>12. Shotcut</h2>
<p>Shotcut è un editor video open-source e multi-piattaforma che ti permette di creare video di alta qualità per il tuo sito web. Con una vasta gamma di funzionalità e filtri, Shotcut ti offre tutte le risorse necessarie per creare video accattivanti.</p>
<p><strong>Caratteristiche principali di Shotcut:</strong></p>
<ul>
<li>Timeline intuitiva per organizzare i clip video.</li>
<li>Ampia scelta di filtri ed effetti per migliorare e personalizzare i video.</li>
<li>Supporto per diversi formati video.</li>
<li>Possibilità di esportare i video in vari formati.</li>
</ul>
<p><a href="https://www.shotcut.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Shotcut</a></p>
<h2>13. GDevelop</h2>
<p>GDevelop è un software di sviluppo di giochi gratuito e open-source che ti permette di creare giochi interattivi per il tuo sito web. Con una vasta gamma di strumenti e funzionalità, GDevelop ti offre la possibilità di dare vita alle tue idee di gioco.</p>
<p><strong>Caratteristiche principali di GDevelop:</strong></p>
<ul>
<li>Interfaccia intuitiva per la creazione di giochi senza programmazione.</li>
<li>Ampia scelta di risorse grafiche e audio.</li>
<li>Funzionalità di logica e scripting per aggiungere interattività ai giochi.</li>
<li>Supportper l'esportazione di giochi per diverse piattaforme, inclusi web, desktop e dispositivi mobili.</li>
</ul>
<p><a href="https://gdevelop-app.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su GDevelop</a></p>
<h2>14. FileZilla</h2>
<p>FileZilla è un'applicazione di trasferimento file che ti consente di gestire facilmente i file del tuo sito web tramite protocollo FTP (File Transfer Protocol). Con FileZilla, puoi caricare e scaricare file dal tuo server in modo semplice e veloce.</p>
<p><strong>Caratteristiche principali di FileZilla:</strong></p>
<ul>
<li>Interfaccia intuitiva per la gestione dei file e delle cartelle.</li>
<li>Supporto per connessioni FTP sicure (SFTP).</li>
<li>Trasferimento di file in background per una maggiore efficienza.</li>
<li>Gestione di più account e server.</li>
</ul>
<p><a href="https://filezilla-project.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su FileZilla</a></p>
<h2>15. KompoZer</h2>
<p>KompoZer è un editor HTML WYSIWYG (What You See Is What You Get) che ti permette di creare e modificare il codice HTML in modo visuale. È una scelta ideale per i principianti che desiderano creare pagine web senza la necessità di conoscenze approfondite di programmazione.</p>
<p><strong>Caratteristiche principali di KompoZer:</strong></p>
<ul>
<li>Interfaccia intuitiva e basata sul drag-and-drop.</li>
<li>Visualizzazione in tempo reale delle modifiche apportate al codice.</li>
<li>Strumenti di formattazione per la creazione di layout e stili.</li>
<li>Possibilità di visualizzare e modificare il codice HTML direttamente.</li>
</ul>
<p><a href="http://kompozer.net" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su KompoZer</a></p>
<h2>16. GHex</h2>
<p>GHex è un editor esadecimale che ti permette di visualizzare e modificare i file binari del tuo sito web. È particolarmente utile per effettuare modifiche precise a livello di codice e risolvere eventuali problemi.</p>
<p><strong>Caratteristiche principali di GHex:</strong></p>
<ul>
<li>Visualizzazione del contenuto dei file in formato esadecimale, decimale o ASCII.</li>
<li>Possibilità di modificare il contenuto dei file in modo preciso.</li>
<li>Funzionalità di ricerca e sostituzione per individuare determinati pattern.</li>
<li>Supporto per file di grandi dimensioni.</li>
</ul>
<p><a href="https://wiki.gnome.org/Apps/Ghex" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su GHex</a></p>
<h2>17. Thunderbird</h2>
<p>Thunderbird è un client di posta elettronica gratuito e open-source che ti permette di gestire le tue comunicazioni via email in modo efficiente. Con Thunderbird, puoi organizzare le tue caselle di posta, inviare e ricevere messaggi, e gestire i tuoi contatti.</p>
<p><strong>Caratteristiche principali di Thunderbird:</strong></p>
<ul>
<li>Gestione di più account di posta elettronica in un'unica interfaccia.</li>
<li>Filtri personalizzabili per organizzare automaticamente i messaggi.</li>
<li>Ricerca avanzata per trovare rapidamente i messaggi desiderati.</li>
<li>Ampia scelta di estensioni per estendere le funzionalità del client.</li>
</ul>
<p><a href="https://www.mozilla.org/thunderbird" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Thunderbird</a></p>
<h2>18. Gravit Designer</h2>
<p>Gravit Designer è un'applicazione di progettazione grafica vettoriale cheti consente di creare grafiche di alta qualità per il tuo sito web. Con un'interfaccia intuitiva e una vasta gamma di strumenti e effetti, Gravit Designer ti offre la libertà di esprimere la tua creatività nel design.</p>
<p><strong>Caratteristiche principali di Gravit Designer:</strong></p>
<ul>
<li>Strumenti di disegno vettoriale per creare forme e illustrazioni.</li>
<li>Supporto per l'importazione e l'esportazione di diversi formati di file.</li>
<li>Effetti e filtri per migliorare e personalizzare le grafiche.</li>
<li>Possibilità di creare layout e design responsivi.</li>
</ul>
<p><a href="https://www.designer.io" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Gravit Designer</a></p>
<h2>19. Dia</h2>
<p>Dia è un software di diagrammi e flussi di lavoro che ti permette di creare diagrammi e organigrammi per il tuo sito web. Con una vasta gamma di forme e simboli disponibili, Dia ti aiuta a visualizzare e comunicare le informazioni in modo chiaro e intuitivo.</p>
<p><strong>Caratteristiche principali di Dia:</strong></p>
<ul>
<li>Ampia scelta di forme e simboli per creare diagrammi personalizzati.</li>
<li>Possibilità di organizzare e collegare le forme in modo gerarchico.</li>
<li>Esportazione dei diagrammi in diversi formati di file.</li>
<li>Interfaccia intuitiva e facile da usare.</li>
</ul>
<p><a href="https://wiki.gnome.org/Apps/Dia" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Dia</a></p>
<h2>20. BlueGriffon</h2>
<p>BlueGriffon è un editor HTML e CSS che ti permette di creare e modificare il codice delle pagine web in modo intuitivo e facile da usare. Con BlueGriffon, anche i principianti possono creare siti web con un design professionale.</p>
<p><strong>Caratteristiche principali di BlueGriffon:</strong></p>
<ul>
<li>Interfaccia intuitiva e basata sul drag-and-drop.</li>
<li>Supporto per l'editing visuale di HTML e CSS.</li>
<li>Strumenti di formattazione per creare layout e stili.</li>
<li>Possibilità di visualizzare e modificare il codice direttamente.</li>
</ul>
<p><a href="https://bluegriffon.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su BlueGriffon</a></p>
<h2>21. Synfig Studio</h2>
<p>Synfig Studio è un software di animazione 2D vettoriale che ti permette di creare animazioni dinamiche per il tuo sito web. Con Synfig Studio, puoi dare vita ai tuoi disegni e creare animazioni fluide e coinvolgenti.</p>
<p><strong>Caratteristiche principali di Synfig Studio:</strong></p>
<ul>
<li>Strumenti di animazione vettoriale per creare movimenti fluidi.</li>
<li>Supporto per layer e maschere per un controllo preciso.</li>
<li>Possibilità di aggiungere effetti e transizioni alle animazioni.</li>
<li>Esportazione delle animazioni in diversi formati video.</li>
</ul>
<p><a href="https://www.synfig.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Synfig Studio</a></p>
<h2>22. Pencil Project</h2>
<p>Pencil Project è un'applicazione di prototipazione che ti permette di creare bozzetti e mockup interattivi per il tuo sito web. Con Pencil Project, puoi creare una rappresentazione visiva delle tue idee e testarle prima di sviluppare il design finale.</p>
<p><strong>Caratteristiche principali di Pencil Project:</strong></p>
<ul>
<li>Ampia scelta di forme e elementi per creare bozzetti e mockup.</li>
<li>Interfaccia intuitiva per collegare le pagine e creare interazioni.</li>
<li>Possibilità di esportare i prototipi in diversi formati.</li>
<li>Strumenti di annotazione per comunicare le idee.</li>
</ul>
<p><a href="https://pencil.evolus.vn" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Per ulteriori informazioni su Pencil Project</a></p>
<h2>Conclusioni</h2>
<p>In conclusione, il web design è un'attività cruciale per creare siti web attraenti e funzionali. Con le applicazioni Linux gratuite elencate in questo articolo, sia i professionisti che i principianti possono trovare gli strumenti giusti per realizzare progetti di web design di alta qualità.</p>
<p>Ricorda di scegliere le applicazioni in base alle tue esigenze specifiche e di esplorare le loro funzionalità per ottenere i migliori risultati. Che tu abbia bisogno di strumenti per la grafica,animazioni, prototipazione o gestione dei file, ci sono opzioni disponibili per soddisfare le tue necessità.</p>
<p>Alcuni suggerimenti per scegliere le applicazioni giuste per il tuo web design includono:</p>
<ol>
<li>Valuta le tue esigenze: Identifica quali sono le principali attività di web design che devi svolgere e quali strumenti sono necessari per completarle.</li>
<li>Leggi le recensioni: Fai una ricerca online per trovare recensioni e opinioni di altri utenti sulle diverse applicazioni. Questo ti darà un'idea delle esperienze degli altri utenti e ti aiuterà a prendere una decisione informata.</li>
<li>Prova le demo o le versioni di prova: Molte applicazioni offrono versioni demo o di prova gratuite. Sfrutta queste opportunità per testare le funzionalità e l'usabilità delle applicazioni prima di impegnarti nella versione completa.</li>
<li>Considera la facilità d'uso: Se sei un principiante nel web design, potrebbe essere importante scegliere applicazioni con un'interfaccia intuitiva e semplice da usare. Al contrario, se sei un professionista con competenze avanzate, potresti essere interessato a strumenti più complessi e potenti.</li>
<li>Supporto della community: Controlla se ci sono comunità attive o forum di supporto per le applicazioni che stai considerando. Una community attiva può offrire supporto, risorse e suggerimenti utili per l'utilizzo delle applicazioni.</li>
<li>Aggiornamenti e supporto tecnico: Assicurati che le applicazioni che scegli abbiano un supporto regolare e continuo, con aggiornamenti per mantenere il software sicuro e compatibile con le ultime tecnologie.</li>
</ol>
<p>Scegliere le giuste applicazioni Linux gratuite per il web design può fare la differenza nel tuo processo creativo e nella qualità del tuo lavoro. Esplora le opzioni disponibili, sperimenta e trova quelle che meglio si adattano alle tue esigenze e preferenze.</p>
<p>Ricorda, il <a href="https://www.mrtux.it/web-design-professionista-fai-da-te" data-wpel-link="internal" target="_self" rel="noopener">web design</a> è un campo in continua evoluzione, quindi continua a imparare, sperimentare e migliorare le tue abilità per rimanere al passo con le ultime tendenze e tecnologie. Buon web design!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/25-applicazioni-linux-gratuite-web-design-produttivita/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Backup remoto WP tramite wp-cli, rclone e restic</title>
		<link>https://www.mrtux.it/backup-remoto-wp-tramite-wp-cli-rclone-e-restic</link>
					<comments>https://www.mrtux.it/backup-remoto-wp-tramite-wp-cli-rclone-e-restic#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sat, 06 May 2023 08:26:21 +0000</pubDate>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sicurezza]]></category>
		<category><![CDATA[backup wp]]></category>
		<category><![CDATA[backups]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=1636</guid>

					<description><![CDATA[Introduzione Effettuare regolarmente un backup del proprio sito WordPress è fondamentale per proteggere i propri dati e garantire la continuità del sito in caso di problemi. In questo articolo mostreremo come utilizzare wp-cli, rclone e restic come backend per effettuare un backup completo del sito WordPress e sincronizzarlo con un servizio di cloud storage remoto. [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>Introduzione</h2>
<p>Effettuare regolarmente un <a href="https://www.mrtux.it/perche-assistenza-wordpress-essenziale-per-sito-web" data-wpel-link="internal" target="_self" rel="noopener">backup del proprio sito WordPress</a> è fondamentale per proteggere i propri dati e garantire la continuità del sito in caso di problemi. In questo articolo mostreremo come utilizzare <a href="https://wp-cli.org/it/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">wp-cli</a>, <a href="https://rclone.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">rclone</a> e <a href="https://restic.net/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">restic</a> come backend per effettuare un backup completo del sito WordPress e sincronizzarlo con un servizio di cloud storage remoto.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1637 size-full" title="Backup WordPress" src="https://www.mrtux.it/wp-content/uploads/2023/05/wordpress-backup.png" alt="wordpress backup" width="1024" height="537" srcset="https://www.mrtux.it/wp-content/uploads/2023/05/wordpress-backup.png 1024w, https://www.mrtux.it/wp-content/uploads/2023/05/wordpress-backup-300x157.png 300w, https://www.mrtux.it/wp-content/uploads/2023/05/wordpress-backup-768x403.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<h2>Utilizzo di wp-cli per esportare il database e i file WordPress</h2>
<p>Il primo passaggio per effettuare il backup del sito WordPress è esportare il database e i file. Per farlo, utilizzeremo <em>wp-cli</em>, l'interfaccia a riga di comando ufficiale di WordPress.</p>
<ol>
<li>Apri il terminale e accedi alla cartella radice del sito WordPress</li>
<li>Utilizza i seguenti comandi bash e wp-cli per esportare il database in un file sql e quindi creare un backup di tutto il sito:</li>
</ol>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">cd /var/www/sitowebwp 
wp db export nome_file.sql 
cd /backup 
tar -cvpzf $(date "+%d.%m.%Y-%H.%M.%S")_backup-sitowebwp.tar.gz /var/www/sitowebwp</pre>
<p>Una volta terminati questi passaggi, avrai una cartella contenente tutti i file del sito <a href="https://it.wordpress.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress</a> e un file sql contenente il database.</p>
<h2>Utilizzo di rclone per sincronizzare il backup con il servizio di cloud storage remoto</h2>
<p>Il passaggio successivo è sincronizzare il backup con un servizio di <a href="https://www.punto-informatico.it/migliori-cloud-storage/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">cloud storage</a> remoto. Utilizzeremo rclone, un programma che permette di sincronizzare i file con numerosi servizi di cloud storage.</p>
<ol>
<li>Scarica l'ultima versione di rclone dal sito ufficiale</li>
<li>Estrai il file scaricato e posiziona la cartella rclone nella cartella /usr/local/bin/</li>
<li>Utilizza il comando rclone config per configurare rclone con il servizio di cloud storage desiderato (ad esempio Google Drive)</li>
</ol>
<p>Una volta configurato rclone, è possibile utilizzare il comando rclone sync per sincronizzare la cartella contenente i backup con il servizio di cloud storage remoto. Ad esempio, se vuoi sincronizzare la cartella /backup con una cartella Google Drive chiamata "backup_wordpress", utilizza il seguente comando:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">rclone sync /backup nome_servizio:backup_wordpress</pre>
<h2>Backup remoto con Rclone e Restic</h2>
<p>Per iniziare assicurati di avere sia Rclone che Restic installati sul tuo sistema. Puoi seguire le istruzioni presenti nella documentazione ufficiale di entrambi gli strumenti.</p>
<p>Successivamente, puoi creare un backend di <em>Restic</em> utilizzando <em>Rclone</em> per la sincronizzazione remota. In questo esempio, useremo un backend di Restic con nome "backup_restic" e lo sincronizzeremo con Google Drive:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">rclone config</pre>
<p>Segui le istruzioni del programma di configurazione e crea un nuovo backend di Rclone con nome "remote_drive". Successivamente, crea un backend di Restic utilizzando il backend di Rclone appena creato:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">restic init --repo rclone:remote_drive:/backup</pre>
<p>Assicurati di sostituire "remote_drive" con il nome del backend di Rclone che hai creato in precedenza. Questo comando inizializza un repository Restic all'interno della cartella "backup" nel tuo backend di Rclone.</p>
<p>Successivamente, puoi utilizzare il comando restic backup per aggiungere i file del backup nel repository appena creato:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">restic -r rclone:remote_drive:/backup backup /backup</pre>
<h2>Ripristino del backup con Restic</h2>
<p>Nel caso in cui sia necessario ripristinare il backup Restic offre un'ampia gamma di opzioni per selezionare i dati da ripristinare. Ad esempio, per elencare tutti i file del backup:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">restic -r rclone:remote_drive:/backup snapshots</pre>
<p>Per ripristinare una singola cartella del backup in una directory locale:</p>
<pre><code class="language-bash"></code></pre>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">restic -r rclone:remote_drive:/backup restore latest --target /percorso/ripristino --include /percorso/backup/nome_cartella</pre>
<pre><code class="language-bash"></code></pre>
<pre><code class="language-bash"></code></pre>
<h4 style="text-align: center;">Caratteristiche e modalità di installazione di Rclone, Restic e wp-cli</h4>
<div style="overflow-x:auto;">
<table>
<thead>
<tr>
<th style="text-align: left;">Tool</th>
<th style="text-align: left;">Caratteristiche</th>
<th style="text-align: left;">Modalità di installazione</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">wp-cli</td>
<td style="text-align: left;">Interfaccia a riga di comando</td>
<td style="text-align: left;">Installazione tramite Composer o tramite download dell'archivio .phar e copia in una cartella del sistema</td>
</tr>
<tr>
<td style="text-align: left;">rclone</td>
<td style="text-align: left;">Sincronizzazione cloud storage</td>
<td style="text-align: left;">Scaricare l'ultima versione dal sito ufficiale, estrarre il file e posizionare la cartella rclone in /usr/local/bin/</td>
</tr>
<tr>
<td style="text-align: left;">restic</td>
<td style="text-align: left;">Backup e ripristino</td>
<td style="text-align: left;">Scaricare l'ultima versione dal sito ufficiale, estrarre il file e posizionare la cartella restic in /usr/local/bin/</td>
</tr>
</tbody>
</table>
</div>
<h2>Conclusioni</h2>
<p>In questo articolo abbiamo visto come utilizzare wp-cli, rclone e restic per effettuare un backup completo di un sito WordPress e sincronizzarlo con un servizio di cloud storage remoto. Rclone permette di sincronizzare i backup con numerosi servizi di cloud storage, mentre Restic offre la possibilità di creare snapshot di file e directory, memorizzarli in un repository sicuro e ripristinarli in caso di necessità. Con questa soluzione, è possibile garantire la sicurezza dei dati del proprio <a href="https://www.mrtux.it/prezzi-assistenza-siti-web-wordpress" data-wpel-link="internal" target="_self" rel="noopener">sito WordPress</a> e garantire la continuità del sito in caso di problemi.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/backup-remoto-wp-tramite-wp-cli-rclone-e-restic/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Trasferire WordPress: guida su come migrare su un nuovo Hosting</title>
		<link>https://www.mrtux.it/trasferire-wordpress-guida-migrazione-nuovo-hosting</link>
					<comments>https://www.mrtux.it/trasferire-wordpress-guida-migrazione-nuovo-hosting#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Fri, 22 Nov 2019 19:01:26 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[trasferimento]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=899</guid>

					<description><![CDATA[Se si decide di trasferire il proprio sito web WordPress su un hosting più veloce e performante basterà seguire i seguenti passaggi e in breve tempo sarà possibile avere il proprio sito attivo sul nuovo hosting. Molto spesso, dopo aver attivato il nuovo servizio di hosting presso cui effettuare il trasferimento, temendo che le procedura [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Se si decide di trasferire il proprio sito web WordPress su un hosting più veloce e performante basterà seguire i seguenti passaggi e in breve tempo sarà possibile avere il proprio sito attivo sul nuovo hosting.</p>



<p class="wp-block-paragraph">Molto spesso, dopo aver attivato il nuovo <a href="https://it.wikipedia.org/wiki/Hosting" target="_blank" rel="noopener nofollow external" data-wpel-link="external">servizio di hosting</a> presso cui effettuare il trasferimento, temendo che le procedura sia più complessa di quanto è realmente, ci si rivolge ad un professionista per spostare il proprio sito web.</p>



<p class="wp-block-paragraph">Ma seguendo questo tutorial sarà possibile effettuare il trasferimento senza troppe difficoltà e in caso di problemi si potrà ripristinare il tutto senza alcun inconveniente.</p>



<h2 class="wp-block-heading" id="backup-wordpress">Passaggio 1: Eseguire il backup dei file del sito Web WordPress</h2>



<p class="wp-block-paragraph">Di seguito sono elencati i passaggi necessari per spostare un sito web WordPress su un nuovo servizio di hosting, ma prima di iniziare ad analizzare come è possibile effettuare tale migrazione bisogna considerare che molto spesso gli stessi gestori dei servizi di hosting WordPress effettuano tale trasferimento.</p>



<p class="wp-block-paragraph">Quindi se si è acquistato un nuovo piano di hosting e si sta cercando di spostare sul nuovo spazio il sito web accertarsi se il nuovo provider di hosting offre la migrazione gratuita.</p>



<h2 class="wp-block-heading" id="backup-wordpress">Passaggio 1: Eseguire il backup dei file del sito Web WordPress</h2>


<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><img loading="lazy" decoding="async" src="https://www.mrtux.it/wp-content/uploads/2019/11/trasferimento-wordpress.png" alt="files per il backup in locale di wordpress" class="wp-image-921" width="957" height="552" srcset="https://www.mrtux.it/wp-content/uploads/2019/11/trasferimento-wordpress.png 957w, https://www.mrtux.it/wp-content/uploads/2019/11/trasferimento-wordpress-300x173.png 300w, https://www.mrtux.it/wp-content/uploads/2019/11/trasferimento-wordpress-768x443.png 768w, https://www.mrtux.it/wp-content/uploads/2019/11/trasferimento-wordpress-20x12.png 20w" sizes="auto, (max-width: 957px) 100vw, 957px" /></figure>
</div>


<p class="wp-block-paragraph">Il primo passo è il backup di tutti i file contenuti nella cartella root, cartella che di solito corrisponde alla cartella public_html del sito web. Questo passaggio è sempre consigliato prima di effettuare ogni cambiamento o modifica importante, ma in questo caso è un'operazione indispensabile per la migrazione dell'installazione di WordPress.</p>



<p class="wp-block-paragraph">Come è noto ci sono diversi <a href="https://it.wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">plugin WordPress</a> in grado di eseguire il backup completo di un sito in modo del tutto automatico. Ma questo guida segue invece un approccio più manuale per ottenere tale risultato. In particolare aiuterà a comprendere quali file sono coinvolti nel processo di trasferimento e come impostare i vari parametri di configurazione sul nuovo spazio web.</p>



<p class="wp-block-paragraph">A tale scopo utilizzeremo un programma FTP (ad esempio <a href="https://filezilla-project.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">FileZilla</a>) e ci connetteremo allo spazio web dove si trova attualmente il sito web e copieremo tutti i file presenti nella directory del sito web in una cartella sul computer locale.</p>



<p class="wp-block-paragraph">Ciò include anche il file .htaccess, file che in alcuni programmi FTP è impostato per essere non visibile. In tal caso nelle opzioni del programma FTP in uso attivare l'opzione per visualizzare i file nascosti e procedere con il download anche di questo file.</p>



<p class="wp-block-paragraph">Il tempo necessario per scaricare tutti i file dipende sopratutto dal numero di contenuti multimediali presenti sul sito. Durante il download del contenuto del sito web possiamo iniziare con il secondo passaggio, ovvero creare una copia del database.</p>



<h2 class="wp-block-heading" id="esportazione-database-wordpress">Passaggio 2: Esportazione del database di WordPress</h2>


<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><img loading="lazy" decoding="async" src="https://www.mrtux.it/wp-content/uploads/2019/11/salvataggio-backup-database-mysql-1024x492.png" alt="esportazione database wordpress" class="wp-image-922" width="1024" height="492" srcset="https://www.mrtux.it/wp-content/uploads/2019/11/salvataggio-backup-database-mysql-1024x492.png 1024w, https://www.mrtux.it/wp-content/uploads/2019/11/salvataggio-backup-database-mysql-300x144.png 300w, https://www.mrtux.it/wp-content/uploads/2019/11/salvataggio-backup-database-mysql-768x369.png 768w, https://www.mrtux.it/wp-content/uploads/2019/11/salvataggio-backup-database-mysql-20x10.png 20w, https://www.mrtux.it/wp-content/uploads/2019/11/salvataggio-backup-database-mysql.png 1248w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">L'esportazione del database è un processo semplice che richiede solo pochi passaggi per il completamento. Una volta effettuato l'accesso all'account di cPanel del server web apriamo l'applicazione <a href="https://www.phpmyadmin.net/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">phpMyAdmin</a>.</p>



<p class="wp-block-paragraph">Selezionano il database che contiene l'installazione di WordPress dall'elenco sulla barra laterale di sinistra e una volta selezionato basterà cliccare sul pulsante Esporta nel menu di navigazione.</p>



<p class="wp-block-paragraph">Le impostazioni predefinite dell'esportazione rapida e il formato SQL adottato per l'esportazione sono ciò di cui abbiamo bisogno in questo caso. Quindi una volta fatto clic sul pulsante Esporta inizierà il processo di esportazione del database e un file verrà scaricato sul computer locale.</p>



<p class="wp-block-paragraph">Una volta completata l'esportazione del database e il trasferimento FTP dei file, siamo pronti per passare alla fase successiva.</p>



<h2 class="wp-block-heading" id="creare-nuovo-database-wordpress">Passaggio 3: Creare un nuovo database WordPress sul nuovo hosting web</h2>


<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><img loading="lazy" decoding="async" src="https://www.mrtux.it/wp-content/uploads/2019/11/ripristino-backup-database-mysql-1024x399.png" alt="importazione database wordpress" class="wp-image-924" width="1024" height="399" srcset="https://www.mrtux.it/wp-content/uploads/2019/11/ripristino-backup-database-mysql-1024x399.png 1024w, https://www.mrtux.it/wp-content/uploads/2019/11/ripristino-backup-database-mysql-300x117.png 300w, https://www.mrtux.it/wp-content/uploads/2019/11/ripristino-backup-database-mysql-768x300.png 768w, https://www.mrtux.it/wp-content/uploads/2019/11/ripristino-backup-database-mysql-20x8.png 20w, https://www.mrtux.it/wp-content/uploads/2019/11/ripristino-backup-database-mysql.png 1241w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">Prima di poter iniziare la migrazione vera e propria sul nuovo hosting web dovremo creare un'ambiente idoneo all'installazione di WordPress. Per fare ciò sarà necessario creare un database in cui importeremo i dati contenuti nel file SQL scaricato in precedenza sul vecchio hosting web.</p>



<p class="wp-block-paragraph">Effettuiamo dunque il login sul nuovo hosting web con le credenziali utente che sono state fornite in fase di registrazione e accediamo sul pannello di controllo cPanel.</p>



<p class="wp-block-paragraph">In questo tutorial utilizzeremo l'applicazione <a href="https://www.mysql.com/it/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">database MySQL</a> presente nel pannello. Se il nuovo servizio di hosting web non ha tale applicazione in esecuzione basterà contattare il supporto chiedendo quel è la modalità adottata per la creazione di nuovi database.</p>



<p class="wp-block-paragraph">I passaggi per creare un database sono molto semplici:</p>



<ul class="wp-block-list">
<li>Apriamo dal pannello la sezione database MySQL e creiamo un nuovo database con un nome appropriato per il nostro sito web.</li>



<li>Creiamo un nuovo utente MySQL (con una password sicura).</li>



<li>Aggiungiamo un nuovo utente al nuovo database e gli concediamo tutti i privilegi disponibili.</li>



<li>Annotiamo il nome del database, il nuovo nome utente MySQL e la relativa password che andremo ad inserire nel file di configurazione.</li>
</ul>



<h2 class="wp-block-heading" id="aggiornare-file-configurazione-wp-config">Passo 4: Modificare il wp-config.php file</h2>



<p class="wp-block-paragraph">A questo punto passiamo nella cartella che abbiamo scaricato sul computer locale e nella quale sono presenti i file del sito Web. In tale cartella andremo a settare i parametri presenti nel file wp-config.php il quale consente di impostare le variabili WordPress che permettono di accedere al database MySQL.</p>



<p class="wp-block-paragraph">Per sicurezza creiamo una copia di questo file di configurazione e la salviamo in un'altra cartella sul computer locale. Ciò per per poter essere in grado di ripristinare le modifiche che stiamo per apportare qualora qualcosa dovesse andare storto.</p>



<p class="wp-block-paragraph">Apriamo la versione originale del file con l'editor di testo preferito e apportiamo le seguenti modifiche:</p>



<h3 class="wp-block-heading">1. Modificare il nome del database</h3>



<p class="wp-block-paragraph">Individuiamo la seguente riga:</p>



<p class="wp-block-paragraph">define ('DB_NAME', 'db_name');</p>



<p class="wp-block-paragraph">Il nome nome_db di questa riga risulterà impostato con il nome del database MySQL del vecchio web hosting. Tale nome lo sostituiremo con il nome del nuovo database che abbiamo appena creato.</p>



<h3 class="wp-block-heading">2. Modificare il nome utente del database</h3>



<p class="wp-block-paragraph">Subito dopo troveremo la seguente riga:</p>



<p class="wp-block-paragraph">define ('DB_USER', 'db_user');</p>



<p class="wp-block-paragraph">In questa riga è necessario sostituire db_user che corrisponde al nome utente del vecchio host in modo che riporti il nuovo nome utente appena creato.</p>



<h3 class="wp-block-heading">3. Modificare la password dell'utente del database</h3>



<p class="wp-block-paragraph">Infine, modificare la riga relativa alla password del database:</p>



<p class="wp-block-paragraph">define ('DB_PASSWORD', 'db_pass');</p>



<p class="wp-block-paragraph">Come già fatto in precedenza anche per la sezione db_pass di questa riga procediamo con la sostituzione con la nuova password creata per l'utente MySQL.</p>



<p class="wp-block-paragraph">A questo punto possiamo salvare e chiudere il file wp-config.php.</p>



<h2 class="wp-block-heading" id="importazione-database">Passaggio 5: Importare i dati nel nuovo database</h2>



<p class="wp-block-paragraph">Ora che abbiamo un nuovo database e impostato la relativa configurazione possiamo iniziare il processo di importazione.</p>



<p class="wp-block-paragraph">Avviamo phpMyAdmin attraverso il <a href="https://cpanel.net/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">pannello di controllo cPanel</a> sul nuovo server e selezionano il nuovo database dall'elenco nella barra laterale sinistra. Una volta aperto, selezioniamo il pulsante Importa dal menu di navigazione.</p>



<p class="wp-block-paragraph">Nella sezione File da importare facciamo clic sul pulsante Scegli file e selezionano il file SQL che abbiamo esportato in precedenza.</p>



<p class="wp-block-paragraph">Deselezionano la casella di controllo "Importazione parziale", assicurandoci che il formato sia impostato su SQL, quindi facciamo clic sul pulsante "Vai" per dare inizio all'importazione dei dati contenuti nel file salvato in precedenza.</p>



<p class="wp-block-paragraph">Il tempo necessario per l'importazione varia in base alle dimensioni del database. Ad importazione ultimata riceveremo un messaggio che ci segnalerà se l'operazione di caricamento dei dati è andata a buon fine.</p>



<h2 class="wp-block-heading" id="caricamento-file-su-nuovo-hosting">Passaggio 6: Importazione dei file WordPress sul nuovo spazio di hosting</h2>



<p class="wp-block-paragraph">Una volta importati i dati sul nuovo database e riconfigurato il file wp-config.php possiamo iniziare a caricare i file del sito sul nuovo spazio web.</p>



<p class="wp-block-paragraph">Ci connettiamo al nuovo servizio di hosting web usando un programma FTP come il client FTP FileZilla e in tale programma apriamo nella sezione dei file locali la cartella nella quale abbiamo scaricato in precedenza il sito web.</p>



<p class="wp-block-paragraph">Se sul nuovo spazio web il nostro sito è il sito principale, oppure è l'unico che viene installato sul server, procediamo con il caricamento dei file nella cartella standard public_html.</p>



<p class="wp-block-paragraph">Con la directory remota selezionata possiamo quindi caricare tutti i file del sito Web con inclusa la versione aggiornata del file wp-config.php.</p>



<p class="wp-block-paragraph">Come per il download precedente, anche questa fase di upload può richiedere del tempo in base alla velocità della linea internet e del numero dei files del sito web.</p>



<p class="wp-block-paragraph">Una volta ultimato il trasferimento FTP è sempre consigliato non eliminare i files del sito web che abbiamo sul computer locale in quanto potrebbero essere sempre utili in caso di problemi. Selezionando la cartella locale con il tasto destro del mouse possiamo quindi comprimerli e salvarli in un posto sicuro.</p>



<h2 class="wp-block-heading" id="registrazione-nuovo-dominio">Passaggio 7: Registrazione nuovo dominio e ricerca / sostituzione vecchio dominio</h2>



<p class="wp-block-paragraph">Se si intende passare ad un nuovo dominio sarà necessario seguire questo passaggio, altrimenti si potrà passare alla fase successiva.</p>



<p class="wp-block-paragraph">Un problema ricorrente quando si trasferisce il sito web su un nuovo dominio si ha in conseguenza dei collegamenti ipertestuali che puntano verso i vari files con il nome del vecchio dominio, causando inevitabilmente loro interruzione quando il sito web viene spostato su un nuovo dominio.</p>



<p class="wp-block-paragraph">Per trovare rapidamente e con facilità qualsiasi istanza del vecchio nome di dominio, e quindi sostituirlo con il nuovo nome, possiamo utilizzare lo script "<a href="https://github.com/promoweb/Search-Replace-DB" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Search Replace DB</a>" presente su GitHub. Tale script ci consentirà di farlo con facilità e molto rapidamente.</p>



<p class="wp-block-paragraph">Da sottolineare che per motivi di sicurezza, un volta effettuata la sostituzione, è importante rimuoverlo, e comunque non collocarlo nella cartella root ma utilizzarlo creando una cartella temporanea con un nome casuale prima di procedere con sostituzione del vecchio nome del dominio con il nuovo.</p>



<p class="wp-block-paragraph">Attraverso la modifica dell'URL del sito di fatto verrà effettuata una scansione nel database alla ricerca del vecchio dominio e tutte le istanze trovate verranno rimpiazzate con il nuovo dominio.</p>



<p class="wp-block-paragraph">Inoltre verranno modificati anche i valori site_url e home_url presenti nelle tabelle del database (di fatto in tal modo viene modificata quella che è l'URL del sito) il che consentirà di poter effettuare il login nel pannello di controllo di WordPress attraverso il nuovo dominio, senza essere reindirizzati verso il nome del vecchio dominio.</p>



<h2 class="wp-block-heading" id="modifiche-finali">Passaggio 8: Modifiche finali</h2>



<p class="wp-block-paragraph">Questo passaggio in realtà include due passaggi separati, i quali potrebbero essere intervallati da un'arco di tempo anche di diversi giorni.</p>



<p class="wp-block-paragraph">Prima di poter utilizzare il sito sul nuovo servizio di hosting è necessario riconfigurare le <a href="https://www.hostingtalk.it/come-impostare-i-dns-del-dominio-correttamente-lezione-12-della-guida_-c0000063W/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">impostazioni DNS del dominio</a>.</p>



<p class="wp-block-paragraph">Di solito sono impostati in modo da puntare sul vecchio spazio di hosting e sarà quindi necessario indirizzare correttamente i record verso il nuovo indirizzo IP del server sul quale è stato trasferito il sito web..</p>



<p class="wp-block-paragraph">Questo processo dipenderà in particolar modo da dove è stato registrato il dominio del sito web.</p>



<p class="wp-block-paragraph">I dettagli sul completamento di questo processo possono variare in modo significativo da provider a provider, ma in linea generale il Registrar del nuovo dominio dovrebbe fornire tutti i dettagli necessari che consentono di apportare questa modifica.</p>



<p class="wp-block-paragraph">La propagazione completa delle modifiche DNS può richiedere fino a 48 ore. Quindi è consigliato effettuarlo in periodi nei quali sono previsti bassi livelli di traffico web.</p>



<p class="wp-block-paragraph">Durante questa fase si consiglia di evitare di apportare modifiche al sito Web poiché non essendo immediatamente chiaro se le modifiche DNS sono state apportate o meno si rischia di effettuare le modifiche sul vecchio hosting e non sul nuovo.</p>



<p class="wp-block-paragraph">Entro 48 ore quindi dovrebbe essere possibile accedere al nuovo hosting web. A questo punto potremo connetterci al vecchio hosting web ed eliminare i file del sito web e il relativo database.</p>



<p class="wp-block-paragraph">Ovviamente ciò dopo aver creato e salvato una copia di backup localmente, sia del sito web che del database MySQL, oltre al file wp-config.php originale nel caso in cui sia necessario ripristinare la migrazione.</p>



<p class="wp-block-paragraph">E' buona norma conservare questi file in modo da poter effettuare un rapido ripristino del sito web in caso di problemi.</p>



<h3 class="wp-block-heading">Conclusione</h3>



<p class="wp-block-paragraph">Seguendo i passaggi descritti è dunque possibile effettuare il trasferimento di un sito web WordPress da un servizio di hosting ad un'altro senza troppe difficoltà.</p>



<p class="wp-block-paragraph">L'importante è creare una copia di backup sia del sito web che del database in modo da poter ripristinare il tutto in caso di problemi.</p>



<p class="wp-block-paragraph">Hai migrato il tuo sito web WordPress di recente? Descrivi la tua esperienza nella sezione commenti qui sotto!</p>


<div style="overflow-x:auto;"><table>
<thead>
<tr>
<th>Tipo di hosting</th>
<th>Pro</th>
<th>Contro</th>
<th>Costo medio</th>
<th>Fonte</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hosting condiviso</td>
<td>Economico, facile da usare</td>
<td>Risorse condivise, meno flessibilità</td>
<td>Da $3 a $10 al mese</td>
<td><a href="https://www.websitebuilderexpert.com/web-hosting-services/shared-hosting/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">websitebuilderexpert.com</a></td>
</tr>
<tr>
<td>Server VPS</td>
<td>Maggiore flessibilità, maggiore controllo</td>
<td>Costoso rispetto all'hosting condiviso</td>
<td>Da $20 a $80 al mese</td>
<td><a href="https://www.websitebuilderexpert.com/web-hosting-services/vps-hosting/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">websitebuilderexpert.com</a></td>
</tr>
<tr>
<td>Server dedicato</td>
<td>Controllo completo, prestazioni elevate</td>
<td>Costoso rispetto all'hosting condiviso e al server VPS</td>
<td>Da $80 a $200+ al mese</td>
<td><a href="https://www.websitebuilderexpert.com/web-hosting-services/dedicated-hosting/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">websitebuilderexpert.com</a></td>
</tr>
</tbody>
</table></div>


<h4 class="wp-block-heading has-text-align-center">Hosting condiviso vs Server VPS vs Server Dedicato</h4>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/trasferire-wordpress-guida-migrazione-nuovo-hosting/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installazione di WordPress 5.3 attraverso stack LAMP Linux Ubuntu</title>
		<link>https://www.mrtux.it/installazione-wordpress-stack-lamp-linux-ubuntu</link>
					<comments>https://www.mrtux.it/installazione-wordpress-stack-lamp-linux-ubuntu#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 30 Oct 2019 21:04:47 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=686</guid>

					<description><![CDATA[Ad oggi WordPress continua ad essere il CMS (sistema di gestione dei contenuti) più popolare su Internet. E ciò grazie al fatto che consente di impostare rapidamente blog e siti web molto flessibili, i quali sono gestiti attraverso il database MySQL e il linguaggio di scripting PHP. WordPress ha visto un'adozione incredibile negli ultimi anni [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ad oggi WordPress continua ad essere il CMS (sistema di gestione dei contenuti) più popolare su Internet. E ciò grazie al fatto che consente di impostare rapidamente blog e siti web molto flessibili, i quali sono gestiti attraverso il <a href="https://www.mysql.com/it/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">database MySQL</a> e il linguaggio di scripting PHP.</p>
<p>WordPress ha visto un'adozione incredibile negli ultimi anni ed è un'ottima scelta per far funzionare rapidamente <a href="https://www.mrtux.it/#sito-web-pagamento-anticipato" data-wpel-link="internal" target="_self" rel="noopener">un sito Web</a>. Dopo l'installazione l'amministrazione del sito web può essere gestita facilmente attraverso il funzionale front-end web di cui è dotato.</p>



<p>In questa guida vedremo come installare e configurare WordPress su uno stack LAMP (Linux, Apache, MySQL e PHP) utilizzando un server Linux Ubuntu 18.04.</p>
<h2 id="prerequisiti">Prerequisiti per avere WordPress su stack LAMP Ubuntu 18.04</h2>
<p>Per poter procedere con l'installazione di WordPress bisognerà creare un'utente con i privilegi SUDO, lo <a href="https://it.wikipedia.org/wiki/LAMP" target="_blank" rel="noopener nofollow external" data-wpel-link="external">stack LAMP</a> già configurato e il protocollo SSL già impostato.</p>
<h2 id="creazione-utente">Creazione di un'utente in grado di eseguire comandi sudo</h2>
<p>Per accedere a un nuovo server VPS oppure su un server dedicato con installato <a href="https://www.ubuntu-it.org/news/2018/05/01/ubuntu-1804-lts-rilasciato-cosa-c%C3%A8-di-nuovo" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Linux Ubuntu 18.04</a> è necessario conoscere l'indirizzo IP pubblico del server. Sarà inoltre necessaria la password oppure, se è stata installata una chiave SSH per l'autenticazione, la chiave privata per l'account dell'utente root .</p>
<pre class="now"><code style="white-space: pre-wrap;">$ ssh root@server-ip</code></pre>
<p>Accettare l'avviso sull'autenticità dell'host se appare. Se si utilizza l'autenticazione con password fornire la password dell'utente root per accedere. Se si utilizza una chiave SSH protetta da passphrase verrà richiesto di immettere la passphrase la prima volta che si utilizza la chiave.</p>
<p>Se è la prima volta che si accede al server con una password è probabile che venga richiesto di modificare la password di root.</p>
<p>Una volta effettuato l'accesso come root, siamo pronti ad aggiungere il nuovo account utente che utilizzeremo per accedere in seguito.</p>
<p>In questo esempio viene creato un nuovo utente chiamato nuovoutente, ma ovviamente è possibile scegliere un nome a propria discrezione:</p>
<pre class="now"><code style="white-space: pre-wrap;"># adduser nuovoutente</code></pre>
<p>A questo punto verranno poste alcune domande, a partire dalla password dell'account. Inserire una password complessa e, facoltativamente, inserire le informazioni aggiuntive. Tali informazioni non sono richieste ed è possibile tralasciarle digitando ENTER per ogni campo che campo si desidera saltare.</p>
<p>Ora abbiamo creato un nuovo account utente con privilegi di account normale. Tuttavia molto spesso è necessario essere in grado di svolgere attività amministrative riservate all'utente root.</p>
<p>Per evitare di doverci disconnettere come utente normale e riconnettersi come utente root dovremo impostare i cosiddetti "superutenti" o i privilegi di root per il nostro account normale. Ciò consentirà ad un'utente normale di eseguire comandi con privilegi di amministratore attraverso il comando sudo posto prima degli altri comandi immessi dalla linea di comando.</p>
<p>Per aggiungere questi privilegi al nostro nuovo utente dobbiamo aggiungere il nuovo utente al gruppo sudo. Per impostazione predefinita su Ubuntu gli utenti che appartengono al gruppo sudo sono autorizzati a utilizzare il comando sudo.</p>
<p>Come root, eseguiamo questo comando per aggiungere il nuovo utente al gruppo sudo (sostitute nuovoutente con il nome utente che si è scelto attraverso il comando adduser che abbiamo visto in precedenza):</p>
<pre class="now"><code style="white-space: pre-wrap;"># usermod -aG sudo nuovoutente</code></pre>
<p>Ora una volta fatto il login come utente normale è possibile digitare sudo prima dei comandi che si intende utilizzare con i privilegi di super-utente.</p>
<h2 id="configurazione-stack-lamp">Configurazione dello stack LAMP su Linux Ubuntu 18.04</h2>
<p>Uno stack LAMP è un gruppo di software open source che viene installato allo scopo di consentire a un server Linux di ospitare siti Web e applicazioni Web dinamiche.</p>
<p>Tale termine è l'acronimo che sta ad indicare il <a href="https://it.wikipedia.org/wiki/Linux" target="_blank" rel="noopener nofollow external" data-wpel-link="external">sistema operativo Linux</a>, il web server Apache, il database MySQL e il linguaggio di scripting lato server PHP. In questa guida, installeremo uno stack LAMP su un server con installato Linux Ubuntu 18.04.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-689" src="https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-1024x422.png" alt="installazione configurazione web server apache" width="1024" height="422" srcset="https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-1024x422.png 1024w, https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-300x124.png 300w, https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-768x317.png 768w, https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione-20x8.png 20w, https://www.mrtux.it/wp-content/uploads/2019/10/apache-web-server-configurazione.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<h3>Installazione del Web Server Apache</h3>
<p>Il <a href="https://httpd.apache.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">web server Apache</a> è tra i web server più popolari al mondo. È ben documentato ed è ampiamente utilizzato, il che lo rende un'ottima scelta per l'hosting di un sito Web.</p>
<p>Su Linux Ubuntu installeremo Apache attraverso i seguenti comandi, utilizzando il gestore di pacchetti di Ubuntu apt:</p>
<pre class="now"><code style="white-space: pre-wrap;">sudo apt update
sudo apt install apache2</code></pre>
<p>Dopo aver inserito la password dell'amministratore di sistema apt elencherà quali pacchetti verranno installati e quanto spazio aggiuntivo su disco verrà occupato. Digitiamo Y ed ENTER per continuare con l'installazione.</p>
<p>A installazione ultimata il server web partirà automaticamente e sarà accessibile localmente attraverso l'indirizzo 127.0.0.1 oppure localhost, mentre da remoto basterà digitare l'IP del server.</p>
<p>Se verrà visualizzata questa pagina avremo la conferma che il server web è stato installato correttamente.</p>
<h3>Installazione del database MySQL</h3>
<p>MySQL è uno dei <a href="https://it.wikipedia.org/wiki/MySQL" target="_blank" rel="noopener nofollow external" data-wpel-link="external">database open source</a> più diffusi ed utilizzati. Fondamentalmente il suo compito è quello di organizzare e fornire l'accesso ai contenuti memorizzati nei suoi archivi.</p>
<p>Anche in questo caso utilizzeremo il gestore di pacchetti apt per l'installazione:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo apt install mysql-server</code></pre>
<p>Subito dopo questo comando verrà mostrato l'elenco dei pacchetti che verranno installati e lo spazio su disco che verrà occupato. Confermare l'installazione digitando Y .</p>
<p>Al termine dell'installazione è consigliata l'esecuzione dello script di sicurezza preinstallato con MySQL che rimuoverà alcune impostazioni predefinite e limiterà le modalità di accesso.</p>
<p>Avviamo tale script digitando:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo mysql_secure_installation</code></pre>
<p>In modo interattivo verrà chiesto se si vuole configurare il file VALIDATE PASSWORD PLUGIN e altri parametri che consentiranno di limitare le possibilità di accesso e incrementando il livello sicurezza.</p>
<h3>Installazione di PHP</h3>
<p>PHP è il componente che elaborerà il codice in grado di visualizzare i contenuti dinamici presenti sul sito. E proprio grazie a questo <a href="https://www.php.net/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">linguaggio di scripting</a> sarà possibile connetterci al database MySQL in modo da poter visualizzare dinamicamente i dati sulle nostre pagine web.</p>
<p>Anche in questo caso utilizzeremo il gestore dei pacchetti apt per installare sul server i pacchetti PHP:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo apt install php libapache2-mod-php php-mysql</code></pre>
<p>Attraverso tale comando avremo installato i pacchetti standard, anche se molto spesso è necessario installare in seguito pacchetti aggiuntivi a seconda delle funzionalità richieste dal software utilizzato dal sito web.</p>
<p>Per la maggior parte dei casi la modifica più opportuna è quella di cambiare il modo in cui Apache serve i file quando si accede ad una directory. Per impostazione predefinita se un utente con il navigatore cerca di visualizzare il contenuto di una directory del server Apache cercherà per primo il file index.html.</p>
<p>Per modificare tale impostazione sarà necessario impostare la configurazione in modo che il server Web dia priorità ai file PHP rispetto agli altri.</p>
<p>Per ottenere ciò apriamo il file di configurazione dir.conf in un editor di testo con i privilegi di root:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo nano /etc/apache2/mods-enabled/dir.conf</code></pre>
<p>E impostiamo la direttiva nel modo seguente:</p>
<pre class="now"><code style="white-space: pre-wrap;">DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</code></pre>
<p>Una volta salvato il file riavviamo il server Web Apache in modo da rendere effettive le modifiche:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo systemctl restart apache2</code></pre>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-690" src="https://www.mrtux.it/wp-content/uploads/2019/10/schermata-iniziale-web-server-apache-728x1024.png" alt="schermata iniziare web server apache" width="728" height="1024" srcset="https://www.mrtux.it/wp-content/uploads/2019/10/schermata-iniziale-web-server-apache-728x1024.png 728w, https://www.mrtux.it/wp-content/uploads/2019/10/schermata-iniziale-web-server-apache-213x300.png 213w, https://www.mrtux.it/wp-content/uploads/2019/10/schermata-iniziale-web-server-apache-768x1081.png 768w, https://www.mrtux.it/wp-content/uploads/2019/10/schermata-iniziale-web-server-apache-14x20.png 14w, https://www.mrtux.it/wp-content/uploads/2019/10/schermata-iniziale-web-server-apache.png 1100w" sizes="auto, (max-width: 728px) 100vw, 728px" /></p>
<h3>Impostazione di host virtuali Apache su Linux Ubuntu</h3>
<p>Quando si utilizza il server Web Apache su Linux Ubuntu è possibile utilizzare host virtuali in modo da poter ospitare un numero praticamente illimitato di domini e siti web su un singolo server.</p>
<p>Su Ubuntu 18.04 Apache ha di default il server abilitato per servire i file presenti nella directory /var/www/html.</p>
<p>Ciò è quanto serve per un singolo sito web ed un singolo dominio, ma creando una serie di directory all'interno di /var/www/html e ricorrendo alle direttive di configurazione descritte in seguito saremo in grado di poter servire attraverso un'unico server web un numero praticamente illimitato di domini e siti web.</p>
<p>A tale scopo creiamo la directory per tuo-dominio.com come segue:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo mkdir /var/www/tuo-dominio.com</code></pre>
<p>Quindi assegniamo il proprietario della directory attraverso la variabile di ambiente $USER che di fatto corrisponde al nostro utente di sistema attuale:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo chown -R $USER:$USER /var/www/tuo-dominio.com</code></pre>
<p>Assegniamo anche i permessi di accesso e scrittura della directory nel seguente modo:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo chmod -R 755 /var/www/tuo-dominio.com</code></pre>
<p>Quindi creiamo un file index.html attraverso nano o altro editor di testo:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ nano /var/www/tuo-dominio.com/index.html</code></pre>
<p>E per il nostro test scriviamo solo una stringa di testo che ci consenta di testarne il corretto funzionamento:</p>
<p>Test mio-dominio.com</p>
<p>Copiamo il template e inseriamo nella copia i dati relativi al nostro dominio:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/tuo-dominio.com.conf
$ sudo nano /etc/apache2/sites-available/tuo-dominio.com.conf</code></pre>
<p>Ed inseriremo quanto segue tra i tag di apertura e di chiusura &lt;VirtualHost *:80&gt; ... &lt;/VirtualHost *:80&gt;:</p>
<pre class="now"><code style="white-space: pre-wrap;">ServerAdmin tuonome@tuo-dominio.com
ServerName tuo-dominio.com
ServerAlias www.tuo-dominio.com
DocumentRoot /var/www/tuo-dominio.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined</code></pre>
<p>Abilitiamo il file di configurazione mediante il programma a2ensite:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo a2ensite tuo-dominio.com.conf</code></pre>
<p>Disabilitiamo il sito predefinito relativo a 000-default.conf:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo a2dissite 000-default.conf</code></pre>
<p>Quindi testiamo il tutto in modo da mettere in rilievo eventuali errori di configurazione:</p>
<pre class="now"><code style="white-space: pre-wrap;">sudo apache2ctl configtest</code></pre>
<p>Se tutto è ok otterremo il seguente output:</p>
<pre class="now"><code style="white-space: pre-wrap;">Output
Syntax OK</code></pre>
<p>Infine riavviamo Apache per implementare le modifiche apportate:</p>
<pre class="now"><code style="white-space: pre-wrap;">sudo systemctl restart apache2</code></pre>
<p>Il web server Apache ora dovrebbe essere in grado di risolvere correttamente il nome del nostro dominio. Per testarlo basterà digitare sul browser il relativo indirizzo: http://www.tuo-dominio.com</p>
<p>Ora simo pronti per installare il nostro sito web. E per <a href="https://www.mrtux.it/assistenza-wordpress/" data-wpel-link="internal" target="_self" rel="noopener">installare e configurare un CMS</a> come WordPress basterà seguire <a href="https://www.mrtux.it/installazione-e-configurazione-di-wordpress-attraverso-wp-cli/" data-wpel-link="internal" target="_self" rel="noopener">la guida sull'installazione dalla linea di comando</a>.</p>
<h3>Impostazione del firewall per connesioni criptate</h3>
<p>I server con installato Linux Ubuntu 18.04 di solito utilizzano <a href="https://help.ubuntu.com/community/UFW" target="_blank" rel="noopener nofollow external" data-wpel-link="external">il firewall UFW</a> e ora vedremo come consentire solo connessioni per determinati servizi.</p>
<p>Sarà possibile configurare un firewall di base con facilità usando questa applicazione.</p>
<p>Diverse applicazioni possono registrare automaticamente i loro profili UFW al momento dell'installazione. Questi profili consentono a UFW di gestire queste applicazioni per nome.</p>
<p>Anche <a href="https://www.openssh.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">OpenSSH</a>, il servizio che ci consente di connetterci al nostro server in modalità criptata, ha un profilo registrato con UFW.</p>
<p>Per visualizzarlo digiteremo:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo ufw app list</code></pre>
<pre class="now"><code style="white-space: pre-wrap;">Available applications:
OpenSSH
</code></pre>
<p>Ora dovremo assicurarci che il firewall consenta di accedere al web server Apache attraverso connessioni criptate SSH. Possiamo consentire queste connessioni digitando:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo ufw allow OpenSSH</code></pre>
<p>Successivamente possiamo abilitare il firewall digitando:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo ufw enable</code></pre>
<p>Digitare "y" e premere ENTER per confermare l'attivazione del firewall con le nuove impostazioni. Per la conferma che le connessioni SSH ora sono consentite digiteremo:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo ufw status</code></pre>
<pre class="now"><code style="white-space: pre-wrap;">Output
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)</code></pre>
<p>Installano e configurano servizi aggiuntivi sarà necessario configurare le impostazioni del firewall in modo analogo, in modo da rendere accessibili i relativi servizi.</p>
<h2 id="configurazione-ssl">Configurazione del protocollo sicuro SSL</h2>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-688 size-large" src="https://www.mrtux.it/wp-content/uploads/2019/10/let-s-encrypt-ssl-wp-1024x576.jpg" alt="linux ubuntu supporto connessione ssl let's encrypt" width="1024" height="576" srcset="https://www.mrtux.it/wp-content/uploads/2019/10/let-s-encrypt-ssl-wp-1024x576.jpg 1024w, https://www.mrtux.it/wp-content/uploads/2019/10/let-s-encrypt-ssl-wp-300x169.jpg 300w, https://www.mrtux.it/wp-content/uploads/2019/10/let-s-encrypt-ssl-wp-768x432.jpg 768w, https://www.mrtux.it/wp-content/uploads/2019/10/let-s-encrypt-ssl-wp-20x11.jpg 20w, https://www.mrtux.it/wp-content/uploads/2019/10/let-s-encrypt-ssl-wp.jpg 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><br />WordPress offre contenuti dinamici e gestisce l'autenticazione e l'autorizzazione degli utenti mediante il relativo form.<br />TLS / SSL è la tecnologia che permette di crittografare il traffico di un sito web in modo che la connessione sia sicura.</p>
<h3>Guida Let's Encrypt per Apache</h3>
<p><a href="https://letsencrypt.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Let's Encrypt</a> è un'autorità di certificazione (CA) che fornisce un modo semplice per ottenere e installare certificati TLS / SSL gratuiti, abilitando in tal modo HTTPS crittografato sui server Web.<br />Semplifica il processo di installazione e configurazione fornendo un client software, Certbot, che automatizza la maggior parte (se non tutte) le fasi richieste per tale configurazione.<br />Attualmente l'intero processo di installazione di un certificato è completamente automatizzato sia su Apache che su Nginx.<br />In questo tutorial useremo Certbot per ottenere un certificato SSL gratuito per Apache su Ubuntu 18.04 e configurare il relativo certificato per il rinnovo automatico.<br />In questo caso verrà impostato un host virtuale di Apache, del tuutto indipendente da quella che è la configurazione predefinita del server web.<br />Questa procedura quindi sarà necessario ripeterla per ogni host virtuale di Apache che è associato al relativo dominio.</p>
<h4>Prerequisiti</h4>
<p>Per configurare Let's Encrypt per Apache avremo bisogno di:<br />1) Un server Ubuntu 18.04 già configurato, con un'utente con i privilegi sudo ma non root e un firewall.<br />2) Un nome di dominio già registrato. In questo tutorial useremo tuo-domino.it come esempio. A tale scopo è possibile ottenerne uno gratuitamente su Freenom, oppure utilizzare un registrar di domini a pagamento.<br />3) Impostare due record DNS che puntano verso l'IP del nostro server.<br />Un record A con il nome tuo-dominio.com che punta all'IP del server sul quale stiamo configurando Let's Encrypt.<br />Un record A con il nome www.tuo-dominio.com che punta sempre verso l'IP del server.<br />4) Apache installato su Ubuntu 18.04 con un host virtuale configurato per il nostro dominio. Nel nostro caso useremo come esempio il file di configurazione /etc/apache2/sites-available/tuo-dominio.com.conf</p>
<h3>Installazione di Certbot</h3>
<p>Il primo passo nella configurazione di Let's Encrypt è quello di installare <a href="https://certbot.eff.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">il programma Certbot</a> che ci consentirà di ottenere il certificato SSL da installare sul server.<br />In considerazione dl fatto che i pacchetti precompilati di Certbot forniti con Ubuntu 18.04 sono piuttosto obsoleti andremo ad utilizzare il repository gestito dagli sviluppatori di Certbot. Grazie a tale repository saremo in grado di installare la versione più aggiornata.<br />Aggiungiamo quindi il repository e lo installiamo con i seguenti comandi:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt install python-certbot-apache
</code></pre>
<p>Certbot è ora pronto per essere utilizzato. Quindi non rimane che configurare il web server Apache in modo che sia in grado di utilizzare il protocollo SSL.</p>
<h3>Configurazione del certificato SSL</h3>
<p>Certbot deve essere in grado di trovare l'host virtuale corretto nella configurazione di Apache per poter configurare automaticamente il protocollo SSL. In particolare lo fa cercando nel file di configurazione di Apache la direttiva ServerName, che di fatto corrisponde al dominio per il quale si richiede il certificato.</p>
<p>Il file di configurazione dell'host virtuale di Apache nell'installazione standard di Linux Ubuntu corrisponde al file /etc/apache2/sites-available/tuo-dominio.com.conf. Per verificare se tale dominio è stato impostato correttamente apriamo con nano o altro editor di testo il file corrispondente al nostro host virtuale:</p>
<pre class="now"><code style="white-space: pre-wrap;">sudo nano /etc/apache2/sites-available/tuo-dominio.com.conf
</code></pre>
<p>E nel file dovra essere presente il parametro ServerName con il nostro dominio. Se non presente lo imposteremo in modo che corrisponda a quanto segue:</p>
<pre class="now"><code style="white-space: pre-wrap;">...
ServerName tuo-dominio.com;
...</code></pre>
<p>Verifichiamo quindi la correttezza della sintassi del file di configurazione di Apache e ricarichiamo il file di configurazione con i seguenti comandi:</p>
<pre class="now"><code style="white-space: pre-wrap;">sudo apache2ctl configtest
sudo systemctl reload apache2</code></pre>
<p>Certbot ora sarà in grado di trovare automaticamente il blocco VirtualHost corretto e aggiornarlo. A questo punto impostiamo anche il firewall per consentire il traffico web sul protocollo HTTPS.</p>
<h3>Abilitare a livello di firewall il protocollo HTTPS</h3>
<p>Se si ha attivo il firewall ufw attivato il firewall sarà necessario abilitare il traffico sul <a href="https://it.wikipedia.org/wiki/HTTPS" target="_blank" rel="noopener nofollow external" data-wpel-link="external">protocollo HTTPS</a>. Apache a tale scopo ha già preconfigurati i parametri che consentono di abilitare il traffico attraverso il firewall ufw.<br />Quindi abilitiamo il protocollo criptato mediante il seguente comando e nel contempo disabilitiamo la precedente modalità di connessione che era limitata esclusivamente al protocollo http:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo ufw allow 'Apache Full'
$ sudo ufw delete allow 'Apache'
</code></pre>
<p>In seguito a ciò per visualizzare la configurazione di ufw digiteremo il seguente comando, dal quale potremo constatare che la connessione https è abilitata in quanto ora compare "Apache Full" e non più "Apache":</p>
<pre class="now"><code style="white-space: pre-wrap;">$ sudo ufw status
</code></pre>
<pre class="now"><code style="white-space: pre-wrap;">Output
Status: active</code></pre>
<pre class="now"><code style="white-space: pre-wrap;">To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
</code></pre>
<p>A questo punto saremo pronti per l'esecuzione di Certbot, in modo da recuperare ed installare i nostri certificati SSL.</p>
<h3>Ottenere un certificato SSL attraverso Certbot</h3>
<p>Su Linux Ubuntu e altre disto basate su Debian Certbot offre diverse modalità al fine di ottenere certificati SSL tramite script preconfigurati. Apache dispone di tali script i quali si occuperanno di riconfigurare il web server e reinizializzare la configurazione ogni volta che sarà necessario. Per utilizzare tale programma di configurazione su Linux Ubuntu digiteremo quanto segue:</p>
<pre class="now"><code style="white-space: pre-wrap;">sudo certbot --apache -d tuo-dominio.com -d www.tuo-dominio.com
</code></pre>
<p>Il parametro -d presente nel precedente comando ci consentirà di specificare per quali domini e sotto domini il certificato sarà valido.</p>
<p>Questo viene eseguito certbotcon il --apacheplug-in, usando -dper specificare i nomi per i quali desideri che il certificato sia valido.</p>
<p>Al primo utilizzo Certbot richiede di inserire un indirizzo e-mail e di accettare i termini del servizio. In seguito comunicherà con il server remoto di Let's Encrypt ed eseguirà una serie di verifiche volte ad accertare la legittimità della richiesta del certificato da parte del dominio per il quale si sta richiedendo il certificato.</p>
<p>Se l'operazione ha esito positivo Certbot richiede di impostare il protocollo HTTPS in base alle proprie esigenze:</p>
<pre class="now"><code style="white-space: pre-wrap;">Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
</code></pre>
<p>Selezionata la propria preferenza premendo ENTER la configurazione verrà aggiornata con le nuove impostazioni. Certbot segnalerà se il processo è andato a buon fine o meno e segnalerà dove sono stati memorizzati i certificati SSL:</p>
<pre class="now"><code style="white-space: pre-wrap;">Output
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_domain/fullchain.pem
...
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
</code></pre>
<p>Ciò conferma che i certificati sono stati correttamente installati. Ora sarà possibile collegarci al nostro sito Web utilizzando il protocollo criptato https://, protocollo che verrà segnalato anche dal browser attraverso la relativa icona a forma di lucchetto verde.</p>
<p>Possiamo testare il livello di protezione della connessione attraverso il test "SSL Labs Server" che ci segnalerà una connessione protetta di categoria A.</p>
<h3>Attivazione e verifica del rinnovo automatico di Certbot</h3>
<p>I certificati Let's Encrypt hanno una validità di solo novanta giorni e prima della scadenza possono essere rinnovati automaticamente attraverso Certbot.</p>
<p>Il rinnovo avviene attraverso uno script collocato nella directory /etc/cron.d. Questo script viene eseguito due volte al giorno e provvederà a rinnovare automaticamente i certificati entro trenta giorni dalla scadenza.</p>
<p>Per testare il processo di rinnovo è possibile eseguire il comando di test di fornito sempre da Certbot:</p>
<pre class="now"><code style="white-space: pre-wrap;">sudo certbot renew --dry-run
</code></pre>
<p>Se non vedi errori la configurazione è corretta e non ci dovrebbero essere problemi nel rinnovo automatico. Se il processo di rinnovo automatico fallisce Let's Encrypt invierà un messaggio all'indirizzo e-mail specificato, avvisandoci quando il certificato sta per scadere.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/installazione-wordpress-stack-lamp-linux-ubuntu/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sicurezza WordPress. L&#039;autenticazione HTTP.</title>
		<link>https://www.mrtux.it/sicurezza-wordpress-autenticazione-http</link>
					<comments>https://www.mrtux.it/sicurezza-wordpress-autenticazione-http#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 29 Oct 2019 13:48:25 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sicurezza]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sicurezza]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=662</guid>

					<description><![CDATA[La sicurezza WordPress può essere accresciuta esponenzialmente mediante la protezione della directory wp-admin e della dashboard attraverso un file .htaccess. Tale procedura molto spesso si rivela fondamentale per la sicurezza di un blog o di un sito web. Aggiungere un'ulteriore livello di sicurezza lato server è importante al fine di ridurre la vulnerabilità a cui [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>La sicurezza WordPress può essere accresciuta esponenzialmente mediante la protezione della directory wp-admin e della dashboard attraverso un file .htaccess. Tale procedura molto spesso si rivela fondamentale per la sicurezza di un blog o di un sito web.</p>
<p>Aggiungere un'ulteriore livello di sicurezza lato server è importante al fine di ridurre la vulnerabilità a cui è esposto il proprio sito. In tal modo le possibilità di accesso mediante brute-force-attack vengono ridotte in modo significativo.</p>
<p>In questo articolo spiegheremo come aggiungere manualmente questo ulteriore livello di sicurezza implementando l'autenticazione HTTP.</p>
<h2>Creare un file di password per WordPress</h2>
<p>Per proteggere con password l'area di amministrazione di WordPress sarà necessario creare un file .htpasswd di Apache. Il file .htpasswd è un file contenete stringhe di testo con un nome utente e una password che il server web utilizzerà per autenticare gli utenti. È possibile creare tale file utilizzando un <a href="https://www.htaccesstools.com/htpasswd-generator/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">generatore di file di password</a> Apache online oppure attraverso la linea di comando Linux:</p>
<pre class="now"><code style="white-space: pre-wrap;"># htpasswd -c  /path/to/.htpasswd nomeutente</code></pre>
<h2>Creare un file .htaccess per Apache</h2>
<p>Una volta creato un file .htpasswd bisognerà creare un file .htaccess che andrà caricato nella directory wp-admin dell'installazione di WordPress.</p>
<p>Se non è presente alcun file .htaccess nella directory wp-admin del tuo sito Web, devi crearne uno nuovo. Se esiste già un file .htaccess, crea una copia di backup e modifica quello esistente.</p>
<p>Dopo aver creato il nuovo file, aggiungi il seguente contenuto al file .htaccess:</p>
<pre class="now"><code style="white-space: pre-wrap;"># enable basic authentication
AuthType Basic
# this text is displayed in the login dialog
AuthName “Restricted Area”
# The absolute path of the Apache htpasswd file. You should edit this
AuthUserFile /path/to/.htpasswd
# Allows any user in the .htpasswd file to access the directory
require valid-user
</code></pre>
<p>Salvare il file e caricarlo nella directory wp-admin di WordPress. Una volta impostato, chiunque tenti di accedere a http: // [tuodominio.com] / wp-admin oppure cerca di accedere alla dashboard di WordPress dovrà autenticarsi con il <a href="https://httpd.apache.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">server Web Apache</a> prima di poter accedere alla dashboard di WordPress. Di seguito è riportato uno screenshot della finestra di dialogo di autenticazione HTTP.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-663 aligncenter" src="https://www.mrtux.it/wp-content/uploads/2019/10/autenticazione-wordpress-http.png" alt="autenticazione wordpress http" width="356" height="225" srcset="https://www.mrtux.it/wp-content/uploads/2019/10/autenticazione-wordpress-http.png 356w, https://www.mrtux.it/wp-content/uploads/2019/10/autenticazione-wordpress-http-300x190.png 300w, https://www.mrtux.it/wp-content/uploads/2019/10/autenticazione-wordpress-http-20x13.png 20w" sizes="auto, (max-width: 356px) 100vw, 356px" /></p>
<h2>Risoluzione dei problemi di autenticazione</h2>
<p>Se dopo l'implementazione dell'autenticazione si tenta di accedere alla directory wp-admin e si riceve un errore <a href="https://developer.mozilla.org/it/docs/Web/HTTP/Status/500" target="_blank" rel="noopener nofollow external" data-wpel-link="external">HTTP 500</a> (errore interno del server) il problema di solito è riconducibile ad un'errato percorso del file della password specificato nella direttiva AuthUserFile. Tale percorso deve necessariamente essere il percorso assoluto completo a partire dalla radice del server.</p>
<h2>Consentire le funzionalità Ajax sul front-end</h2>
<p>Alcuni plugin di WordPress utilizzano la funzionalità Ajax di WordPress. Ciò significa che tali plugin potrebbero aver bisogno di accedere al file admin-ajax.php che si trova nella directory wp-admin. Per consentire l'accesso anonimo a tale file che consente il funzionamento dei plugin di WordPress aggiungere quanto segue al file .htaccess:</p>


<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://www.mrtux.it/wp-content/uploads/2019/10/ajax-sicurezza-wordpress.png" alt="sicurezza wordpress ajax" class="wp-image-675" width="391" height="137" srcset="https://www.mrtux.it/wp-content/uploads/2019/10/ajax-sicurezza-wordpress.png 391w, https://www.mrtux.it/wp-content/uploads/2019/10/ajax-sicurezza-wordpress-300x105.png 300w, https://www.mrtux.it/wp-content/uploads/2019/10/ajax-sicurezza-wordpress-20x7.png 20w" sizes="auto, (max-width: 391px) 100vw, 391px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/sicurezza-wordpress-autenticazione-http/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Guida Rclone: criptare e salvare su Yandex Disk i propri backups</title>
		<link>https://www.mrtux.it/guida-rclone-criptare-salvare-su-yandex-disk-backups</link>
					<comments>https://www.mrtux.it/guida-rclone-criptare-salvare-su-yandex-disk-backups#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sat, 21 Sep 2019 20:04:42 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=81</guid>

					<description><![CDATA[Il salvataggio ed il ripristino dei propri backups criptati sui vari servizi cloud è un'operazione molto facile da effettuare se si utilizza un programma open source come Rclone. In questo articolo viene descritto come configurare Rclone in modo da sfruttare i 10 GB messi a disposizione gratuitamente da Yandex Disk. Il vantaggio principale di Yandex [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Il salvataggio ed il ripristino dei propri backups criptati sui vari servizi cloud è un'operazione molto facile da effettuare se si utilizza un programma open source come Rclone.</p>
<p>In questo articolo viene descritto come configurare Rclone in modo da sfruttare i 10 GB messi a disposizione gratuitamente da <a href="https://disk.yandex.com" rel="noopener nofollow external" target="_blank" data-wpel-link="external">Yandex Disk</a>.</p>
<p>Il vantaggio principale di Yandex Disk è dato sopratutto dal fatto che è uno dei servizi gratuiti più veloci in assoluto sia in fase di upload che di download.</p>
<p>Innanzitutto procediamo all'installazione di <a href="https://rclone.org/" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external">Rclone</a> su un server Linux VPS attraverso il seguente comando dalla linea di comando:</p>
<pre class="now">$ curl https://rclone.org/install.sh | sudo bash</pre>
<p>Subito dopo l'installazione procediamo con la relativa configurazione lanciando il seguente comando:</p>
<pre class="now">$ rclone config</pre>
<p>Selezionare l'operazione desiderata, in questo caso "n", vale a dire new remote:</p>
<pre class="now"><code style="white-space: pre-wrap;">e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q&gt; n
</code></pre>
<p>Diamo un nome al nostro nuovo remote e quindi scegliamo dalla lista il numero 26, ovvero "Yandex Disk".</p>
<pre class="now"><code style="white-space: pre-wrap;">26 / Yandex Disk
   \ "yandex"
</code></pre>
<p>Diamo come nome al nostro nuovo remote "yandex-disk". In seguito la procedura di configurazione prevede l'inserimento dei propri codici token e quindi alla fine il salvataggio della <a href="https://www.mrtux.it/assistenza-wordpress/" data-wpel-link="internal" target="_self" rel="noopener">configurazione</a> del nuovo disco remoto. File di configurazione che verrà salvato nella cartella .config dell'utente:</p>
<pre class="now"><code style="white-space: pre-wrap;">/home/utente/.config/rclone/rclone.conf</code></pre>
<p>In pratica è possibile configurare direttamente un nuovo remote chiamato "yandex-disk" riportando in tale file i seguenti parametri e sostituendo "access_token" e "refresh_token" con i token del proprio account Yandex Disk:</p>
<pre class="now"><code style="white-space: pre-wrap;">[yandex-disk]
type = yandex
token = {"access_token":"ABCDEFG0123456789","token_type":"OAuth","refresh_token":"1:A1B2ABCDEFG0123456789","expiry":"2020-05-08T13:55:01.100817352+02:00"}
</code></pre>
<p>Per criptare e decriptare i file che saranno inviati e ricevuti da Yandex Disk basta ripetere il passaggio sopra con nuovo "rclone config" e scegliendo di nuovo "n) New remote", diamo come nome al nostro nuovo remote "yandex-disk-enc" e in questo caso scegliendo il numero 9 "Encrypt/Decrypt a remote":</p>
<pre class="now"><code style="white-space: pre-wrap;">9 / Encrypt/Decrypt a remote
  \ "crypt"
</code></pre>
<p>Quindi inseriamo il percorso della cartella dove saranno collocati i file criptati preceduti dal nome del remote Yandex creato in precedenza: "yandex-disk:percorso/cartella". Continuando nella configurazione verranno rischiesti una password per il criptaggio e decriptaggio dei dati inviati e ricevuti e una seconda password di sicurezza. Alla fine della procedura nel file rclone.conf visto sopra avremo:</p>
<pre class="now"><code style="white-space: pre-wrap;">[yandex-disk-enc]
type = crypt
remote = yandex-disk:percorso/cartella
filename_encryption = standard
directory_name_encryption = true
password = password-criptata
password2 = password2-criptata
</code></pre>
<p>A questo punto possimo sincronizzare i nostri file di backup locali con la cartella remota su yandex-disk:percorso/cartella attraverso il seguente comando:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ rclone sync /home/nomeutente/backup yandex-disk-enc:
</code></pre>
<p>Quindi svuotiamo il cestino su Yandex liberando la memoria occupata dai file cancellati a seguito della sincronizzazione:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ rclone cleanup yandex-disk-enc: &gt;/dev/null 2&gt;&amp;1
</code></pre>
<p>Infine ricorrendo a cron possiamo sincronizzare ogni giorno alle ore 3:15 i nostri file locali con i file criptati presenti su Yandex Disk:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ crontab -e

15 3 * * * bash rclone sync /home/nomeutente/backup yandex-disk-enc: &gt;/dev/null 2&gt;&amp;1
15 3 * * * bash rclone cleanup yandex-disk-enc: &gt;/dev/null 2&gt;&amp;1
</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/guida-rclone-criptare-salvare-su-yandex-disk-backups/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Deploy heroku-style di un child theme WordPress su VPS via GIT</title>
		<link>https://www.mrtux.it/deploy-heroku-style-di-un-child-theme-wordpress-su-vps-via-git</link>
					<comments>https://www.mrtux.it/deploy-heroku-style-di-un-child-theme-wordpress-su-vps-via-git#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sat, 21 Sep 2019 19:56:53 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[backup wordpress]]></category>
		<category><![CDATA[deploy wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=77</guid>

					<description><![CDATA[Ecco come effettuare in pochi passaggi un deploy heroku-style via GIT su un server dedicato oppure VPS. Come primo passaggio è indispensabile poter fare il login sul server remoto senza dover inserire username e password. In gergo si deve avere la possibilità di connettersi via SSH attraverso lo scambio di una chiave. Quindi generiamo la [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ecco come effettuare in pochi passaggi un deploy <a href="https://www.heroku.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">heroku-style</a> via GIT su un server dedicato oppure VPS.</p>
<p>Come primo passaggio è indispensabile poter fare il login sul server remoto senza dover inserire username e password.</p>
<p>In gergo si deve avere la possibilità di connettersi via SSH attraverso lo scambio di una chiave.</p>
<p>Quindi generiamo la chiave e la carichiamo sul server remoto con i seguenti comandi, digitando la password quando richiesta:</p>
<pre class="now"><span style="white-space: pre-wrap;">utentelocale$ ssh-keygen
utentelocale$ ssh-copy-id utenteremoto@serverremoto.com</span></pre>
<p>Ci loggiamo sul server remoto e creiamo due repository git, uno per il deploy e l'altro nella cartella di destinazione sul server Web.</p>
<p><strong>SERVER REMOTO:</strong></p>
<p><strong>Repository #1</strong></p>
<pre class="now"><code style="white-space: pre-wrap;">$ mkdir /home/admin/deploy
$ cd /home/admin/deploy
$ mkdir oceanwp-child
$ cd oceanwp-child
$ git init --bare
</code></pre>
<p><strong>Repository #2</strong></p>
<pre class="now"><code style="white-space: pre-wrap;">$ cd /home/myweb/web/sitoweb.it/public_html/wp-content/themes
$ git clone file:///home/admin/deploy/oceanwp-child
</code></pre>
<p>Sul nostro server locale quindi creiamo un repository avente come origin il server remoto appena creato.</p>
<p><strong>SERVER LOCALE:</strong></p>
<pre class="now"><code style="white-space: pre-wrap;">$ mkdir ~/deploy
$ cd ~/deploy
$ mkdir oceanwp-child
$ cd oceanwp-child
$ git init
$ git remote add origin utenteremoto@serverremoto.com:/home/admin/deploy/oceanwp-child
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
$ git pull
$ git push origin master
</code></pre>
<p>I passaggi precedenti possono essere ripetuti su tutti i server locali che si desidera, dando la possibilità a più <a href="https://www.mrtux.it/chi-sono/" data-wpel-link="internal" target="_self" rel="noopener">sviluppatori</a> di poter collaborare allo stesso progetto.</p>
<p>A questo punto quello che manca è uno script bash che sia in grado di copiare l'ultima versione del codice, quella appena caricata su “origin master”, dal repository <a href="https://git-scm.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">GIT</a> sul server remoto alla cartella servita da Apache/Nginx dello stesso server.</p>
<p>In particolare bisognerà creare lo script post-receive all'interno della cartella hooks “hooks/post-receive” del repository "deploy" sul server remoto. Lo script nel nostro caso somiglierà a qualcosa di questo tipo:</p>
<p><strong>SERVER REMOTO:</strong></p>
<pre class="now"><code style="white-space: pre-wrap;">$ cd ~/deploy/oceanwp-child/hooks
$ nano post-receive
</code></pre>
<pre class="now"><code style="white-space: pre-wrap;">#!/bin/bash

#CONFIGURAZIONE
DESTINAZIONE="/home/myweb/web/sitoweb.it/public_html/wp-content/themes/oceanwp-child/"
read oldrev newrev refname
if [ $refname = "refs/heads/master" ]; then
echo "===== deploy del nuovo sito in corso ====="
unset GIT_DIR
cd $DESTINAZIONE
git pull origin master
echo "===== tutto fatto ====="
fi
</code></pre>
<pre class="now"><code style="white-space: pre-wrap;">$ chmod +x post-receive
</code></pre>
<p>Grazie a ciò lo script bash remoto ad ogni push effettuato localmente verso il server remoto ci segnalerà tra l'altro se l'aggiornamento è stato eseguito con successo o meno.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/deploy-heroku-style-di-un-child-theme-wordpress-su-vps-via-git/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installazione e configurazione di WordPress attraverso WP-CLI</title>
		<link>https://www.mrtux.it/installazione-e-configurazione-di-wordpress-attraverso-wp-cli</link>
					<comments>https://www.mrtux.it/installazione-e-configurazione-di-wordpress-attraverso-wp-cli#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sat, 21 Sep 2019 19:49:14 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=72</guid>

					<description><![CDATA[Utilizzando la linea di comando e WP-CLI è possibile installare e configurare WordPress nei minimi dettagli. E il tutto impiegando una frazione del tempo richiesto rispetto all'installazione tradizionale. Di fatto WP-CLI riproduce a livello di linea di comando le varie funzionalità che sono offerte nel pannello di controllo agli utenti con il ruolo di amministratore [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Utilizzando la linea di comando e WP-CLI è possibile installare e <a href="https://www.mrtux.it/assistenza-wordpress/" data-wpel-link="internal" target="_self" rel="noopener">configurare WordPress</a> nei minimi dettagli.</p>
<p>E il tutto impiegando una frazione del tempo richiesto rispetto all'<a href="https://codex.wordpress.org/it:Installare_WordPress" target="_blank" rel="noopener nofollow external" data-wpel-link="external">installazione tradizionale</a>.</p>
<p>Di fatto WP-CLI riproduce a livello di linea di comando le varie funzionalità che sono offerte nel pannello di controllo agli utenti con il ruolo di amministratore WordPress.</p>
<p>Ma oltre a tali funzioni consente operazioni aggiuntive non presenti nel pannello di controllo, tra cui, ad esempio, l'eliminazione dei record temporanei transient:</p>
<pre class="now" lang="bash">$ wp transient delete --all</pre>
<p>Per iniziare sarà necessario scaricare ed installare lo script wp-cli sul server che andrà ad ospitare WordPress:</p>
<pre class="now">$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar</pre>
<p>Quindi lo rendiamo eseguibile e lo spostiamo nella cartella dei programmi in modo che sia visibile globalmente su tutto il sistema:</p>
<pre class="now">$ chmod +x wp-cli.phar</pre>
<pre class="now">$ sudo mv wp-cli.phar /usr/local/bin/wp</pre>
<p>Ora che abbiamo installato wp-cli ci spostiamo nella directory nella quale installeremo WordPress:</p>
<pre class="now">$ cd /home/utente/miosito.it/public_html</pre>
<p>E scarichiamo in tale directory l'ultima versione di WordPress con la localizzazione della lingua in italiano:</p>
<pre class="now">$ wp core download --locale=it_IT</pre>
<p>Dopo aver creato il database configuriamo automaticamente il file wp-config.php con il seguente comando, in modo tale che WordPress è in grado di comunicare con il database:</p>
<pre class="now">$ wp core config --dbname=nome-database --dbuser=nome-utente-database --dbpass=password --dbhost=localhost</pre>
<p>E a questo punto possiamo popolare il database con il seguente comando:</p>
<pre class="now">$ wp core install --url="https://www.miositoweb.it" --title="Titolo sito web" --admin_user="nome-utente-wordpress" --admin_password="password-wordpress" --admin_email="miaemail@miosito.it"</pre>
<p>E con ciò il nuovo sito web wordpress è installato e possiamo fare il login sul pannello di controllo:</p>
<p>https://www.miositoweb.it/wp-login.php</p>
<p>Gli altri comandi WP-CLI che andremo ad usare più spesso sono i seguenti:</p>
<p>Lista plugin installati:</p>
<pre class="now">$ wp plugin list</pre>
<p>Lista plugin attivati e non attivati:</p>
<pre class="now">$ wp plugin status</pre>
<p>Aggiornamento automatico di tutti i plugin:</p>
<pre class="now">$ wp plugin update --all</pre>
<p>Installazione del plugin <a href="https://updraftplus.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Updraftplus</a>:</p>
<pre class="now">$ wp plugin install updraftplus</pre>
<p>Attivazione del plugin Updraftplus:</p>
<pre class="now">$ wp plugin activate updraftplus</pre>
<p>Disattivazione ed eliminazione del plugin Updraftplus:</p>
<pre class="now">$ wp plugin deactivate updraftplus</pre>
<pre class="now">$ wp plugin delete updraftplus</pre>
<p>Lista utenti:</p>
<pre class="now">$ wp user list</pre>
<p>Creazione nuovo utente con ruolo di amministratore:</p>
<pre class="now">$ wp user create nomeutente email@nuovoutente.it --user_pass=password --role=administrator</pre>
<p>Generazione di 10 posts di prova con contenuto casuale:</p>
<pre class="now">$ curl http://loripsum.net/api/4 | wp post generate --post_content --count=10</pre>
<p>Sostituzione di stringa testuale su tutti gli articoli e pagine:</p>
<pre class="now">$ wp search-replace 'http://www.vecchiodominio.it' 'https://www.nuovodominio.it'</pre>
<p>Per la lista completa dei comandi si rimanda alla pagina ufficiale di <a href="https://wp-cli.org/it/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/installazione-e-configurazione-di-wordpress-attraverso-wp-cli/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Backup, criptaggio e salvataggio su un server remoto di un sito WordPress</title>
		<link>https://www.mrtux.it/backup-criptaggio-e-salvataggio-su-un-server-remoto-di-un-sito-wordpress</link>
					<comments>https://www.mrtux.it/backup-criptaggio-e-salvataggio-su-un-server-remoto-di-un-sito-wordpress#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sat, 21 Sep 2019 16:30:20 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=59</guid>

					<description><![CDATA[In questo articolo esamineremo come effettuare il backup di WordPress usando solo la linea di comando, oppure con periodicità giornaliera attraverso cron. Una volta effettuato il backup si procederà al criptaggio e all'invio dei files su un server remoto, dedicato o VPS. Innanzitutto creiamo una password random lunghissima, con 33 caratteri alfanumerici e speciali. E [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In questo articolo esamineremo come effettuare il <a href="https://www.mrtux.it/assistenza-wordpress/" data-wpel-link="internal" target="_self" rel="noopener">backup di WordPress</a> usando solo la linea di comando, oppure con periodicità giornaliera attraverso cron.</p>
<p>Una volta effettuato il backup si procederà al criptaggio e all'invio dei files su un server remoto, dedicato o VPS.</p>
<p>Innanzitutto creiamo una password random lunghissima, con 33 caratteri alfanumerici e speciali. E la renderemo illeggibile agli altri utenti del sistema:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ randpwd=$(head /dev/urandom | tr -dc 'A-Za-z0-9!"#$%&amp;'\''()*+,-./:;&lt;=&gt;?@[\]^_`{|}~' | head -c 33); echo $randpwd &gt; ~/.ssh/.rand_keyfile; chmod 400 ~/.ssh/.rand_keyfile;</code></pre>
<p>Ovviamente sarà fondamentale salvare la password contenuta nel file .back_keyfile, magari criptando tale file a sua volta e mettendone una copia al sicuro. Infatti in caso di smarrimento o di accidentale rimozione sarà matematicamente impossibile poter decriptare i relativi files.</p>
<p>Procediamo con la compressione e il criptaggio del tarball del nostro sito web usando gpg attraverso l'<a href="https://it.wikipedia.org/wiki/Twofish" target="_blank" rel="noopener nofollow external" data-wpel-link="external">algoritmo Twofish</a>. Stessa procedura per il database, che però salveremo nel formato zip:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ cd ~/sitoweb.it/public_html; tar cf - * | xz -3 | gpg --symmetric --cipher-algo TWOFISH --digest-algo SHA512 --no-secmem-warning --yes --batch --passphrase-file ~/.ssh/.back_keyfile -o ~/backup-miosito-it-$(date +%d-%m-%Y).tar.gz.gpg
</code></pre>
<pre class="now"><code style="white-space: pre-wrap;">$ mysqldump -unomeutente -ppassword --default-character-set=utf8 -N nomedatabase | gzip | gpg --symmetric --cipher-algo TWOFISH --digest-algo SHA512 --no-secmem-warning --yes --batch --passphrase-file ~/.ssh/.back_keyfile -o ~/backup-database-miosito-it-$(date +%d-%m-%Y).zip.gpg
</code></pre>
<p>A questo punto possiamo salvare i due files compressi e criptati sul server remoto:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ scp ~/backup-miosito-it-11-09-2019.tar.gz.gpg utenteremoto@server.remoto.it:/home/utenteremoto/backup/
$ scp ~/backup-database-miosito-it-11-09-2019.zip utenteremoto@server.remoto.it:/home/utenteremoto/backup/
</code></pre>
<p>Per decriptare il tarball e lo zip file invece useremo i seguenti comandi.:</p>
<pre class="now"><code style="white-space: pre-wrap;">$ gpg --batch --passphrase-file ~/.ssh/.back_keyfile -d -o ~/backup-miosito-it-11-09-2019.tar.gz ~/backup-miosito-it-11-09-2019.tar.gz.gpg
$ gpg --batch --passphrase-file ~/.ssh/.back_keyfile -d -o ~/backup-database-miosito-it-11-09-2019.zip ~/backup-database-miosito-it-11-09-2019.zip.gpg
</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/backup-criptaggio-e-salvataggio-su-un-server-remoto-di-un-sito-wordpress/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installazione di VestaCP e di WordPress su server VPS</title>
		<link>https://www.mrtux.it/installazione-di-vestacp-e-di-wordpress-su-server-vps</link>
					<comments>https://www.mrtux.it/installazione-di-vestacp-e-di-wordpress-su-server-vps#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sat, 21 Sep 2019 13:43:03 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[vestacp]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=48</guid>

					<description><![CDATA[Tra i vari pannelli di controllo con licenza GNU-GPL uno dei più stabili ed utilizzati è indubbiamente VestaCP. In particolare quanto segue prevede l'installazione di VestaCP su un server VPS con installato Linux Ubuntu 18.04, ma la procedura è praticamente la stessa anche per le altre distribuzioni Linux oppure se si intende procedere all'installazione su [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Tra i vari pannelli di controllo con licenza GNU-GPL uno dei più stabili ed utilizzati è indubbiamente <a href="https://vestacp.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">VestaCP</a>. In particolare quanto segue prevede l'installazione di VestaCP su un server VPS con installato Linux Ubuntu 18.04, ma la procedura è praticamente la stessa anche per le altre distribuzioni Linux oppure se si intende procedere all'installazione su un server dedicato.</p>
<p>Dato che è nostra intenzione installare anche il server email attribuiremo al nostro server un sotto-dominio a partire dal pannello di controllo DNS del Registrar, oppure lo assoceremo attraverso servizi come Cloudflare che consentono di attribuire ad un sotto-dominio un determinato numero IP. Nel nostro caso il nome del sotto-dominio fittizio attribuito al server sarà mail.test.it</p>
<p>Configurato il sotto-dominio che punta all'IP del nostro server possiamo procedere all'installazione vera e propria una volta fatto il login sul server VPS. E' importante non aver installato nulla sul server in quanto si potrebbero generare conflitti durante l'installazione.</p>
<p>Nel nostro caso installeremo come web server sia Nginx che Apache che verranno configurati in modalità reverse proxy, la modalità che consente di ottenere quanto di meglio offerto dai due web server. Generiamo dunque il comando personalizzato che lanceremo dalla linea di comando andando sul generatore di tale comando <a href="https://vestacp.com/install/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">https://vestacp.com/install/</a>.</p>
<pre class="now"><code style="white-space: pre-wrap;"># Facciamo il login sul server VPS come utente root via SSH
ssh root@mail.test.it

# Fatto il login scarichiamo il file di installazione
curl -O http://vestacp.com/pub/vst-install.sh

# Lanciamo quindi il comando generato attraverso la relativa pagina di VestaCP del link sopra
bash vst-install.sh --nginx yes --apache yes --phpfpm no --named yes --remi yes --vsftpd yes --proftpd no --iptables yes --fail2ban yes --quota no --exim yes --dovecot yes --spamassassin yes --clamav yes --softaculous yes --mysql yes --postgresql no --hostname mail.test.it --email info@test.it --password test
</code></pre>
<p>Ad installazione ultimata, se non verranno segnalati problemi inserendo come Username admin e Password test, ovvero la password che abbiamo scelto, faremo il login sul pannello di controllo al seguente indirizzo:</p>
<p>https://mail.test.it:8083/login/</p>
<p>A questo punto dal pannello di controllo potremo aggiungere facilmente siti web, certificati <a href="https://letsencrypt.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">SSL Let's Encrypt</a> auto-rinnovabili, email, database etc.</p>
<p><img loading="lazy" decoding="async" width="1024" height="575" class="alignnone size-large wp-image-56" src="https://www.mrtux.it/wp-content/uploads/2019/09/vestacp-tutorial-1024x575.png" alt="vestacp-tutorial" srcset="https://www.mrtux.it/wp-content/uploads/2019/09/vestacp-tutorial-1024x575.png 1024w, https://www.mrtux.it/wp-content/uploads/2019/09/vestacp-tutorial-300x168.png 300w, https://www.mrtux.it/wp-content/uploads/2019/09/vestacp-tutorial-768x431.png 768w, https://www.mrtux.it/wp-content/uploads/2019/09/vestacp-tutorial-20x11.png 20w, https://www.mrtux.it/wp-content/uploads/2019/09/vestacp-tutorial.png 1142w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>Per <a title="Assistenza installazione WordPress" href="https://www.mrtux.it/assistenza-wordpress/" data-wpel-link="internal" target="_self" rel="noopener">installare rapidamente WordPress</a> basterà seguire il precedente <a href="https://www.mrtux.it/installazione-e-configurazione-di-wordpress-attraverso-wp-cli/" data-wpel-link="internal" target="_self" rel="noopener">tutorial su WP-CLI</a>. In questo caso facendo il login dalla linea di comando come utente admin e usando la password creata in precedenza. Ci porteremo quindi nella directory /home/myweb/web nella quale verranno collocati i file dei siti web che creeremo attraverso il pannello di controllo.</p>
<pre class="now"><code style="white-space: pre-wrap;">admin$ cd /home/myweb/web/test.it/public_html
admin$ wp core download --locale=it_IT
</code></pre>
<p>E configureremo il tutto attraverso i comandi descritti sull'articolo <a href="https://www.mrtux.it/installazione-e-configurazione-di-wordpress-attraverso-wp-cli/" data-wpel-link="internal" target="_self" rel="noopener">WordPress attraverso WP-CLI</a>.</p>
<p>Per quando riguarda invece la corretta configurazione del server email sarà indispensabile che:</p>
<ol>
<li>Le porte email del server siano accessibili e non bloccate dal gestore del servizio di hosting.</li>
<li>Sia stato impostato il "reverse DNS" o rDNS attraverso il pannello di controllo; oppure, se non disponibile, bisognerà aprire un ticket e richiederlo all'assistenza dell'hosting</li>
</ol>
<p>E infine impostare nel pannello DNS per ogni dominio, oppure su Cloudflare se si utilizza tale servizio come DNS, i seguenti campi TXT:</p>
<pre class="now"><code style="white-space: pre-wrap;">Tipo: TXT | Nome: _dmarc              | Contenuto: "v=DMARC1; p=none"                 | TTL: Auto
Tipo: TXT | Nome: _domainkey          | Contenuto: "t=y; o=~;"                        | TTL: Auto
Tipo: TXT | Nome:  mail._domainkey    | Contenuto: "v=DKIM1; k=rsa; p=sequenzachiave" | TTL: Auto
Tipo: TXT | Nome: nomedominio.it      | Contenuto: "v=spf1 a mx ip4:ip_server ~all"   | TTL: Auto
</code></pre>
<p>Per testare se il tutto è stato configurato correttamente invieremo un'email di prova a <a href="http://mail-tester.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">mail-tester.com</a> oppure attraverso un servizio di test online analogo.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/installazione-di-vestacp-e-di-wordpress-su-server-vps/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
