Installazione di WordPress su Windows Server IIS+ PHP Version 7.3.8 + Permalink

Per qualcuno può sembrare quasi “impossibile” installare WordPress 5.2.2 su un Windows Server, gestito da Internet Information Service con una versione di PHP 7.3.8 ma vi assicuro che è possibile farlo, con i permalink in modalità completamente funzionale.

Partiamo dalle basi, senza andare troppo lentamente. 
E’ necessario un Windows Server (o anche Windows Client) con Mysql Server installato.
Per la configurazione di Mysql vi rimando a siti specifici; nel nostro caso avremo bisogno del motore database funzionale per la creazione del DB per WordPress.
Aggiungere il ruolo IIS a Windows Server, guida QUI.
Una volta installato, aggiungere con “Web Platform installer” la funzionalità “url rewrite 2.1” che aggiungerà una nuova icona ad ogni sito web impostato in IIS.

Scaricare PHP per Windows dal sito web ufficiale e depositarlo in una cartella dedicata (es c:\php-7.3.8)
Io ho utilizzato la : php-7.3.8-nts-Win32-VC15-x64 ( https://windows.php.net/downloads/releases/). Potrebbe essere necessario installare le Visual C++ Redistributable Library, necessarie al funzionamento di PHP.

Nella cartella in cui abbiamo “scompattato” PHP (c:\php-7.3.8) rinominare il file php.ini-developer in php.ini ed apportare le seguenti modifiche:
– Abilitare la cartella delle Extansion : extension_dir = “ext”
– Abilitare le seguenti librerie:

extension=curl
extension=gd2
extension=mbstring
extension=mysqli
extension=openssl
extension=pdo_mysql
extension=pdo_sqlite
extension=sockets

Creare il Sito web su IIS ed abilitare PHP su handler Mapping.
Questa funzionalità, di impostazione come FASTcgi, richiede che i CGI siano installati nel ruolo IIS pertanto, se non lo sono, dovranno essere abilitati:

Se invece sono abilitati, procedere direttamente su Handler Mapping si IIS, impostando PHP in questo modo:

Nella sezione “Request Restrictions” impostare :

Questo dovrebbe permettere a PHP di funzionare. E’ possibile verificare con un file “Phpinfo”:

<?php
echo phpinfo();
?>

A questo punto WordPress potrebbe già funzionare, senza però la funzionalità dei permalink.
Se abbiamo un sito già impostato (importato) riceveremo l’errore : MapRequestHandler 0x80070002 (relativo appunto ai permalink non funzionali)
Dobbiamo impostare URL Rewrite per la corretta gestione dei permalink.
Riporto la mia modifica da fare al file web.config (presente nella cartella del sito web). Include anche l’impostazione di index.php come documento iniziale.

[php light="true"]
<configuration>
  <system.webServer>
    <rewrite>
       <rule name="SEO Rule"><match url="(.*)" ignoreCase="false"/><conditions logicalGrouping="MatchAll"><add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false"/><add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false"/><add input="{URL}" negate="true" pattern="^/index.php" ignoreCase="false"/><add input="{URL}" pattern="(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$"/></conditions><action type="Rewrite" url="index.php"/></rule>
    </rewrite>
    <defaultDocument>
      <files>
        <clear/>
        <add value="index.php"/>
      </files>
    </defaultDocument>
  </system.webServer>
</configuration>
[/php]

Se invece vogliamo anche una regola di protezione (dai base64_encode, ecc.) utilizzare questa variante:

[php light="true"]
<configuration>
  <system.webServer>
    <rewrite>
      <rules><rule name="Security Rule" stopProcessing="true"><match url="^(.*)$" ignoreCase="false"/><conditions logicalGrouping="MatchAny"><add input="{QUERY_STRING}" pattern="mosConfig_[a-zA-Z_]{1,21}(=|\%3D)" ignoreCase="false"/><add input="{QUERY_STRING}" pattern="base64_encode.*\(.*\)" ignoreCase="false"/><add input="{QUERY_STRING}" pattern="(\&lt;|%3C).*script.*(\&gt;|%3E)"/><add input="{QUERY_STRING}" pattern="GLOBALS(=|\[|\%[0-9A-Z]{0,2})" ignoreCase="false"/><add input="{QUERY_STRING}" pattern="_REQUEST(=|\[|\%[0-9A-Z]{0,2})" ignoreCase="false"/></conditions><action type="CustomResponse" url="index.php" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden"/></rule>
      <rule name="SEO Rule"><match url="(.*)" ignoreCase="false"/><conditions logicalGrouping="MatchAll"><add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false"/><add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false"/><add input="{URL}" negate="true" pattern="^/index.php" ignoreCase="false"/><add input="{URL}" pattern="(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$"/></conditions><action type="Rewrite" url="index.php"/></rule>
    </rewrite>
    <defaultDocument>
      <files>
        <clear/>
        <add value="index.php"/>
      </files>
    </defaultDocument>
  </system.webServer>
</configuration>
[/php]

Seguici su:

FacebookLinkedInLinkedInLinkedIn

Potrebbero Interessarti anche:

    Per maggiori informazioni, per suggerimenti e ottenere un preventivo gratuito per le tue esigenze, contatta la nostra Web Agency.
    Il nostro staff di professionisti sarà lieto di fornire tutte le informazioni ed i costi riguardanti il servizio.
    Attenzione : Webx.it non è un servizio di helpdesk “gratuito” a cui chiedere informazioni.

    WebMaster Firenze

    Fonti : WordPress, Assistenza WordPress, Sviluppatore WordPress, Web-Agency WordPress, Consulente WordPressSupporto tecnico, Assistenza WordPress, Assistenza e-commerce WordPress, Assistenza Sito WordPress, Assistenza WordPressFirenze, Assistenza WordPress Prato, WordPress IIS, IIS WordPress, WordPress su Windows Server, Php WordPress Windows, WordPress 5 Windows Server, WordPress permalink windows server

    Previous Post Previous Post
    Newer Post Newer Post
    Hai bisogno di Aiuto?
    Invia via WhatsApp