====== itaFrontOffice ====== ===== Sviluppo ===== ==== Deploy dei pacchetti su repository ==== Da verificare la prima volta: * disponibilità del comando "**ant**" * disponibilità del comando "**php**" * configurazione del //build.xml// (**build.properties**) --- Dalla root del progetto itaFrontOffice: - Lanciare il //build.xml// con target "2. Wordpress build (files)" tramite **ant**:\\ $ ant "2. Wordpress build (files)" - Lanciare lo script PHP //wordpress-deploy.php// dalla cartella "extra":\\ $ php extra/wordpress-deploy.php -i /path/della/build/wordpress //(è possibile saltare il punto 1 e lanciare lo script PHP senza parametro -i, in questo modo la build sarà effettuata dallo script stesso)// - Lo script ci chiederà ora la cartella per l'output dei pacchetti:\\ Inserisci la destinazione per i pacchetti di aggiornamentio (-o): //(il valore può essere passato al lancio del programma con parametro -o)// - Alla fine della procedura avremo il resoconto dell'operazione rispetto ai file trovati nella cartella.\\ Resoconto del deploy: [ ] albo_italsoft [ ] cds_italsoft [ ] oopp_italsoft [x] suap_italsoft +2.2.11 [ ] sue_italsoft [ ] itaFrontOffice [x] itafrontoffice-theme +1.1.28 //(i plugin spuntati sono quelli aggiornati alla versione indicata a fianco)// - È possibile ora trasferire i file .json/.zip generati nella cartella del repository (se non è già quella di destinazione) ===== Installazione ===== ==== Installazione Wordpress ==== Per prima cosa scaricare l'ultima versione disponibile dal [[https://it.wordpress.org/|sito ufficiale]].\\ Dopo aver scompattato l'archivio con i sorgenti nella cartella web di destinazione prescelta, assicurarsi di configurare il web server per poter accedere al sito con l'indirizzo desiderato.\\ È anche consigliato impostare momentaneamente i permessi della cartella di installazione a 777.\\ Successivamente è necessario creare il database dedicato (con codifica //utf8_general_ci// o //utf8mb4_general_ci//) ed un eventuale utente con permessi esclusivi al nuovo database.\\ A questo punto è possibile collegarsi al suddetto indirizzo per iniziare l'installazione guidata di Wordpress. {{ :installazione:installazione_itafrontoffice_1.png?direct&400 |}} {{ :installazione:installazione_itafrontoffice_2.png?direct&400 |}} Durante l'installazione è consigliato evitare di utilizzare il prefisso di default "wp_" per le tabelle.\\ Per ulteriori dettagli, consultare la [[https://codex.wordpress.org/it:Installare_WordPress|guida ufficiale]]. === Abilitazione multisite === > :!: Se si utilizza Wordpress in un web server con porta diversa da 80 o 443, per abilitare il multisite, è necessario modificare la riga seguente nel file "**wp-admin/includes/network.php**" aggiuggendo la porta utilizzata nell'array (es. ':4000'): if ( ( false !== $has_ports && ! in_array( $has_ports, array( ':80', ':443', ':4000' ) ) ) ) { Una volta effettuata l'installazione, andiamo a modificare il file "**wp-config.php**" ed aggiungiamo la seguente riga prima del commento ''/* Finito, interrompere le modifiche! Buon blogging. */'': define( 'WP_ALLOW_MULTISITE', true ); Accediamo ora al pannello di amministrazione di Wordpress ed effetuiamo la "//Configurazione della rete//" seguendo le istruzioni a video. {{ :installazione:installazione_itafrontoffice_3.png?direct&400 |}} {{ :installazione:installazione_itafrontoffice_4.png?direct&400 |}} {{ :installazione:installazione_itafrontoffice_5.png?direct&400 |}} Come indicato, sarà necessario di nuovo modificare il "**wp-config.php**" aggiungendo, sotto la riga inserita precedentemente, le seguenti righe: define('MULTISITE', true); define('SUBDOMAIN_INSTALL', false); define('DOMAIN_CURRENT_SITE', '192.168.191.1'); define('PATH_CURRENT_SITE', '/wp_itafrontoffice2/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1); > **Utilizzare i valori proposti nel setup di Wordpress, quelli qui rappresentati sono solo un esempio!** === Accorgimenti vari === * **Aumentare il limite di dimensioni per i file in upload da “//Gestione network > Impostazioni > Impostazioni del network, Dimensione massima dei file//”.** (es. a 10500 KB) * Eliminare i plugin presenti di default in Wordpress. Per farlo è necessario andare nella "//Gestione Network//". * Abilitare la registrazione degli utenti da “//Gestione network ⇒ Impostazioni ⇒ impostazioni rete ⇒ Consenti nuove registrazioni ⇒ Possono essere creati nuovi account utente.//”. {{ :installazione:installazione_itafrontoffice_6.png?direct&400 |}} * Disattivare i permalink (dall'amministrazione del sito) da "//Impostazioni ⇒ Permalink//". {{ :installazione:installazione_itafrontoffice_13.png?direct&400 |}} * Impostare l'homepage con una pagina statica da "//Impostazioni ⇒ Lettura//". È necessario prima creare una pagina "Home". * Togliere il motto da "//Impostazioni ⇒ Generali//". * Rimuovere i contenuti della sidebar da "//Aspetto ⇒ Widget//". * Rimuovere l'avatar del profilo deselezionando la spunta "Mostra avatar" da "//Impostazioni ⇒ Discussione//". ==== Installazione del tema ==== Dal repository, copiare il contenuto della cartella "wordpress/themes" in "**wp-content/themes**" all'interno dell'installazione Wordpress.\\ Fatto ciò, nella gestione Network, abilitare i temi dal menu "//Temi//" per tutti i sottositi, e, per ogni sottosito, abilitare il tema scelta tramite il pannello in "//Aspetto ⇒ Tema//". === itafrontoffice-theme === Per questo tema si hanno a dispozione 3 menu e 2 aree per i widget. È possibile impostarne i contenuti tramite le apposite sezioni presenti sotto il menu "//Aspetto//" in ogni sottosito.\\ Ulteriori personalizzazioni sono effettuabili tramite il menu "//Impostazioni FO//" del plugin principale itaFrontOffice (vedi [[itafrontoffice#itaFrontOffice|itaFrontOffice]]). > :!: Dalla versione **1.3.0** il menu si trova sotto "Aspetto ⇒ Tema FO". ==== Installazione dei plugin ==== === Plugin interni === Copiare dalla build i file in "plugins" sotto "**wp-content/plugins**" ed abilitare quelli necessari in gestione Network dal menu "//Plugin//".\\ **Il plugin itaFrontOffice è sempre necessario per il funzionamento di tutti gli altri plugin proprietari in quanto base del framework itaFrontOffice**.\\ Prima di attivare i plugin prepariamo i seguenti file di configurazione partendo dai relativi sample.\\ Per ora è possibile omettere i file di configurazione dei singoli enti e crearli in seguito tramite i menu specifici disponibili nel pannello di amministrazione di Wordpress. ^ Plugin ^ Configurazione ^ Sample ^ | itaFrontOffice | config.inc.php | config.inc.sample.php | | itaFrontOffice | config/connections.ini | config.sample/connections.ini | | itaFrontOffice | lib/java/itaJ4SignDSS/conf/ | lib/java/itaJ4SignDSS/conf.sample/ | | *_italsoft | config.inc.ENTE.php | config.inc.template.php | == itaFrontOffice == Il plugin principale del framework mette a disposizione il menu "//Impostazioni FO//" nella gestione Network e nei singoli siti.\\ Dalla gestione Network, alla pagina Generali, è possibile: * editare il file di configurazione "**config.inc.php**" del plugin * impostare l'indirizzo di fetching per gli update dei plugin interni * reimpostare i ruoli di Wordpress con un set predefinito (da migliorare) ed allinearli tra i vari sottositi * allineare gli utenti di un sottosito o di tutti i sottositi (partendo SEMPRE dal sito principale) * importare i dati predefiniti per il Cimy UEF (vedi [[itafrontoffice#cimy_user_extra_fields|Cimy User Extra Fields]]) {{ :installazione:installazione_itafrontoffice_7.png?direct&400 |}} Dalla pagina "//Campi per ruolo//" è invece possibile impostare quali campi aggiuntivi mettere a dispozione per i singoli ruoli.\\ Se disponibile, in questo menu saranno anche presenti le singole voci per la gestione dei file di configurazione degli altri plugin interni.\\ \\ Da "//Impostazioni FO//" dei singoli siti è possibile aggiungere alcuni dati relativi all'ente (e disponibili tramite gli shortcode suggeriti nella medesima pagina) insieme ad alcune impostazioni utili per il tema. === Plugin di terze parti === Obbligatori per il funzionamento: * Cimy User Extra Fields * Configure SMTP Altamente consigliati: * Theme My Login * Pronamic Cookies * Unconfirmed * TinyMCE Advanced [[https://it.wordpress.org/plugins/tinymce-advanced/|]] * Add From Server [[https://it.wordpress.org/plugins/add-from-server/|]] Utilità: * WP Migrate DB * MultiSite Clone Duplicator * Polylang [[https://it.wordpress.org/plugins/polylang/|]] == Cimy User Extra Fields == > Questo plugin è **OBBLIGATORIO** e necessita del multisite per il funzionamento. Copiare il plugin "cimy-user-extra-fields" e relativo file .php sotto la directory "//wp-content/mu-plugins//".\\ Dalla Gestione network, verificare la creazione delle tabella su "//Impostazioni ⇒ Cimy User Extra Fields//", nel paragrafo "Database".\\ Se non sono presenti, premere il tasto "**Aggiusta il problema**" all'inizio della pagina.\\ {{ :installazione:installazione_itafrontoffice_9.png?direct&400 |}} Per importare i dati solitamente utilizzati nelle installazioni, avviare la procedura di importazione in "//Impostazioni FO ⇒ Generali ⇒ Dati per Cimy//" premendo il pulsante "**Importa dati**". {{ :installazione:installazione_itafrontoffice_11.png?direct&400 |}} == Theme My Login == Copiare il plugin "theme-my-login" sotto "//wp-content/plugins//".\\ Attivarlo da "//Gestione network ⇒ Plugin ⇒ Theme My Login, Attiva sul Network//".\\ Dal pannello amministrativo del sito principale, andare su "//TML//" e modificare le seguenti impostazioni: * "Login Type" => "Username or E-mail" * "Modules" => spuntare "Enable Themed Profiles" {{ :installazione:installazione_itafrontoffice_12.png?direct&400 |}} Dal pannello amministrativo del sito principale, andare su "//TML ⇒ Themed Profiles//" e rimuovere la spunta sulla prima casella "Administrator". == Configure SMTP == Una volta installato, permette di configurare i parametri SMTP di invio email per ogni sito in "Impostazioni ⇒ SMTP". == Pronamic Cookies == Il plugin ci consente di configurare un messaggio visualizzato sul sito per far accettare all'utente l'utilizzo dei cookie. == Unconfirmed == Permette di visualizzare la lista degli utenti che hannno effettuato la registrazione ma non hanno ancora attivato l'account.\\ Accessibile dal "Gestione network ⇒ Utenti ⇒ Unconfirmed", è utile per reinviare le email di attivazione od attivare un account senza la conferma via email. == WP Migrate DB == Aiuta nell'esportazione del database sostituendo dei valori impostabili nel modo corretto (es. dati serializzati).\\ Utilizzato durante il trasferimento di un'installazione ad un indirizzo differente. == MultiSite Clone Duplicator == Utilizzato per la clonazione di un sito all'interno di un network. ==== Importazione pagine pre-impostate ==== Dal sito principale, installare l'importatore Wordpress su "//Strumenti ⇒ Importa, Wordpress > Installa ora//" e successivamente "Avvia l'importatore". {{ :installazione:installazione_itafrontoffice_14.png?direct&400 |}} ==== Rimozione .htaccess ==== Quando si va a creare un sottosito un file .htaccess viene creato sulla root di wordpress. Per una corretta visualizzazione del sottosito è necessario rimuoverlo. ==== Modalità manutenzione ==== È possibile modificare la pagina di manutenzione di default del Wordpress andando ad aggiungere il file "**wp-content/maintenance.php**".\\ Un modello del suddetto file è presente nel plugin itaFrontOffice in "**includes/resources**". Il plugin genera automaticamente un riferimento a tale file sotto "**wp-content**". Wordpress passa automaticamente in tale modalità durante gli aggiornamenti dei plugin e dei temi, ma se abbiamo bisogno di mettere il sito in manutenzione è possibille creare il file ".maintenance" nella root del sito con il seguente codice: > Il file **NON** deve avere l'estensione //.php//. > Wordpress ignorerà il file se la variabile __$upgrading__ contiene un timestamp più vecchio di 10 minuti. È possibile sfruttare questo automatismo per lasciare il sito in manutenzione fino ad una determinata ora (impostando il timestamp dell'ora desiderata - 600). Dopo i 10 minuti il sito tornerà online con un avviso di aggiornamento non riuscito nell'amministrazione di Wordpress: sarà sufficiente cancellare il file per eliminare il messaggio. ==== Aggiornamento di un'installazione precedente ==== - Creare un nuovo sito da zero seguendo questa guida, escludendo * dati del Cimy - Esportare le pagine del vecchio sito (solo il principale) ed importarle nel nuovo - Reimpostare i seguenti dati: * Impostazioni generali Wordpress * Menu * Widget * Parametri SMTP - Esportare gli schema del vecchio database ed importarli nel nuovo\\ \\ $ mysqldump --no-data --skip-add-drop-table -u username -p DATABASE > wordpress-schema.sql$ mysql --force -u username -p DATABASE < wordpress-schema.sql - Utilizzare lo script "//wordpress-db-export.php//" per esportare i dati dei vecchi sottositi ed importarli nel nuovo database\\ \\ # Esempio: vecchio wp https://servizi.comune.pesaro.pu.it/portale # nuovo wp http://80.23.100.184/wpPesaro $ php wordpress-db-export.php +--------------------------------------------------------------------------+ | / wordpress-db-export.php / | +--------------------------------------------------------------------------+ Inizio procedura di export... Percorso di Wordpress mancante, provo nella cartella corrente... Wordpress non trovato. Inserisci il percorso di Wordpress (-i): /var/www/html/wpG479 Carico il framework di Wordpress... Inizio procedura esportazione del DB 'wpG479@localhost'. Inserisci il prefisso delle tabelle di WP di destinazione: wp_ Inserisci il dominio del WP di destinazione: 80.23.100.184 Inserisci il percorso dopo il dominio del WP di destinazione: /wpPesaro Inizio esportazione tabelle. ... Esportazione completata.$ mysql -u username -p DATABASE < wordpress-db-export.sql - ??? ==== Sicurezza ==== === Auth Apache su wp-admin === AuthName "Wordpress Admin" AuthUserFile /srv/www/htdocs/wordpress/wp-admin/passwd/.htpasswd AuthGroupFile /dev/null AuthType basic require valid-user Satisfy Any Allow from all === Rewrite per limitare accesso agli script === # Inizio Rewrite 404 RewriteCond %{REQUEST_URI} !/(wp-login|wp-cron|wp-signup|wp-activate)\.php$ RewriteRule ^([_0-9a-zA-Z-]+)\.(html|php|txt) - [R=404,L] # Eccezioni specifiche su wp-content/wp-includes RewriteCond %{REQUEST_URI} !/wp-content/themes/itafrontoffice-theme/colors\.php RewriteRule ^wp-content/(.*)\.php$ - [R=404,L] RewriteCond %{REQUEST_URI} !/wp-includes/js/tinymce/wp-tinymce\.php RewriteRule ^wp-includes/(.*)\.php$ - [R=404,L] # Fine Rewrite 404 ===== Utente =====