<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Stefano Marinelli's Blog (Articoli su caddy)</title><link>https://www.dragas.net/</link><description></description><atom:link href="https://www.dragas.net/categories/caddy.xml" rel="self" type="application/rss+xml"></atom:link><language>it</language><lastBuildDate>Fri, 13 Jan 2023 11:34:54 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>FreeBSD, Caddy e PHP - un connubio perfetto</title><link>https://www.dragas.net/posts/freebsd-caddy-php-un-connubio-perfetto/</link><dc:creator>Stefano Marinelli</dc:creator><description>&lt;p&gt;&lt;em&gt;NOTA: Il seguente post è la traduzione dell'equivalente in inglese &lt;a href="https://it-notes.dragas.net/2022/07/18/freebsd-caddy-and-php-a-perfect-match/"&gt;sul blog it-notes&lt;/a&gt;. L'originale sarà sempre più aggiornato.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Caddy è un ottimo server web. È più facile da configurare rispetto a nginx e gestisce le richieste/rinnovi dei certificati ssl, quindi non è necessario utilizzare certbot/cron. A volte si potrebbe preferire usare Caddy invece di Nginx/Apache/Lighttpd/etc.&lt;/p&gt;
&lt;p&gt;FreeBSD e Caddy funzionano molto bene insieme per siti web statici/reverse proxy, ma spesso abbiamo bisogno di servire siti web dinamici. Aggiungere PHP è abbastanza facile.&lt;/p&gt;
&lt;p&gt;Iniziamo con l'installare e abilitare Caddy:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;pkg install caddy  
service caddy enable
&lt;/pre&gt;
&lt;p&gt;Ora installiamo PHP - diciamo PHP 8.1 - e abilitiamo php-fpm:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;pkg install php81
service php-fpm enable
&lt;/pre&gt;
&lt;p&gt;Preferisco usare php-fpm tramite socket locali, se il server web e php-fpm sono in esecuzione sullo stesso host. Perciò modifichiamo alcune configurazioni modificando &lt;em&gt;/usr/local/etc/php-fpm.d/www.conf:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Cambiamo la configurazione da:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;_listen = 127.0.0.1:9000_
&lt;/pre&gt;
&lt;p&gt;a&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span class="n"&gt;_listen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;php81&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sock_&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Cambiamo ora il proprietario del socket, basta decommentare:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;listen.owner = www  
listen.group = www  
listen.mode = 0660
&lt;/pre&gt;
&lt;p&gt;Avviamo ora php-fpm:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;service php-fpm start
&lt;/pre&gt;
&lt;p&gt;Ora va modificato /usr/local/etc/caddy/Caddyfile. Basta aggiungere qualcosa del genere:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span class="n"&gt;my&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;website&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  
&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;www&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;website&lt;/span&gt;  
&lt;span class="n"&gt;php_fastcgi&lt;/span&gt; &lt;span class="n"&gt;unix&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;php81&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sock&lt;/span&gt;  
&lt;span class="n"&gt;file_server&lt;/span&gt;  
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Questo configurerà un virtualhost chiamato &lt;em&gt;my.website.com&lt;/em&gt; (e Caddy cercherà di ottenere un certificato per esso), con la sua radice su &lt;em&gt;/usr/local/www/website&lt;/em&gt; e processerà qualsiasi richiesta di file .php tramite php socket. La direttiva &lt;em&gt;file_server&lt;/em&gt; assicura che i file statici possano essere serviti dal percorso principale.&lt;/p&gt;
&lt;p&gt;Avviamo ora Caddy:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;service caddy start
&lt;/pre&gt;
&lt;p&gt;Questo è tutto. Naturalmente si tratta di una configurazione molto elementare, ma può essere usata come bozza per setup più avanzati. Per esempio, si può aggiungere qualcosa del tipo:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;    &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;disallowed&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xmlrpc&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;php&lt;/span&gt;
        &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;*.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;
        &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;wp&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;uploads&lt;/span&gt;&lt;span class="o"&gt;/*.&lt;/span&gt;&lt;span class="n"&gt;php&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;rewrite&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;disallowed&lt;/span&gt; &lt;span class="s1"&gt;'/index.php'&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;e potrete avere un'installazione di Wordpress funzionante (e abbastanza sicura).&lt;/p&gt;</description><category>caddy</category><category>freebsd</category><category>hosting</category><category>server</category><category>tecnici</category><category>tutorial</category><guid>https://www.dragas.net/posts/freebsd-caddy-php-un-connubio-perfetto/</guid><pubDate>Fri, 13 Jan 2023 11:30:19 GMT</pubDate></item></channel></rss>