Come installare ProcessWire CMS 3.0 su un Fedora 26 LAMP VPS

ProcessWire CMS 3.0 è un sistema di gestione dei contenuti (CMS) semplice, flessibile e potente, gratuito e open source. ProcessWire CMS 3.0 presenta un'API di tipo jQuery di facile utilizzo, un'architettura plug-in completamente modulare e un sistema di template flessibile e potente che offre un'esperienza utente altrettanto soddisfacente per progettisti, sviluppatori e utenti finali.

In questo tutorial installeremo ProcessWire CMS 3.0 su un Fedora 26 LAMP VPS usando il web server Apache, PHP 7.1 e un database MariaDB.

Prerequisiti

  • Un'istanza del server Vultr Fedora 26 pulita con accesso SSH

Passaggio 1: aggiungere un utente Sudo

Inizieremo aggiungendo un nuovo sudoutente.

Innanzitutto, accedi al tuo server come root:

ssh root@YOUR_VULTR_IP_ADDRESS

Aggiungi un nuovo utente chiamato user1(o il tuo nome utente preferito):

useradd user1

Successivamente, imposta la password per l' user1utente:

passwd user1

Quando richiesto, inserire una password sicura e memorabile.

Ora controlla il /etc/sudoersfile per assicurarti che il sudoersgruppo sia abilitato:

visudo

Cerca una sezione come questa:

%wheel        ALL=(ALL)       ALL

E assicurati che sia senza commenti. Questa riga ci dice che gli utenti membri del wheelgruppo possono usare il sudocomando per ottenere i rootprivilegi.

Dopo aver modificato il file, è possibile salvare ed uscire premendo Esce quindi entrando :wqper "scrivere" e "chiudere" il file.

Quindi dobbiamo aggiungere user1al wheelgruppo:

usermod -aG wheel user1

Possiamo verificare l' user1appartenenza al gruppo e verificare che il usermodcomando abbia funzionato con il groupscomando:

groups user1

Ora usa il sucomando per passare al nuovo user1account utente sudo :

su - user1

Il prompt dei comandi verrà aggiornato per indicare che si è ora connessi user1all'account. Puoi verificarlo con il whoamicomando:

whoami

Ora riavvia il sshdservizio in modo da poter accedere tramite sshil nuovo account utente sudo non root che hai appena creato:

sudo systemctl restart sshd

Esci user1dall'account:

exit

Esci rootdall'account (che disconnetterà la sshsessione)

exit

Ora puoi sshaccedere all'istanza del server dal tuo host locale usando il nuovo user1account utente sudo non root :

ssh user1@YOUR_VULTR_IP_ADDRESS

Se si desidera eseguire sudosenza dover digitare una password ogni volta, quindi riaprire il /etc/sudoersfile utilizzando visudo:

sudo visudo

Modifica la sezione per il wheelgruppo in modo che assomigli a questo:

%wheel        ALL=(ALL)       NOPASSWD: ALL

Nota: la disabilitazione del requisito password per l'utente sudo non è una pratica consigliata, ma è inclusa qui in quanto può rendere la configurazione del server molto più conveniente e meno frustrante, specialmente durante sessioni di amministrazione di sistemi più lunghe. Se sei preoccupato per le implicazioni di sicurezza, puoi sempre ripristinare la modifica della configurazione all'originale dopo aver completato le attività di amministrazione.

Ogni volta che si desidera accedere rootall'account sudoutente dall'account utente, è possibile utilizzare uno dei seguenti comandi:

sudo -i
sudo su -

Puoi uscire rootdall'account e tornare al tuo sudoaccount utente in qualsiasi momento semplicemente digitando exit.

Step 2: Aggiorna Fedora 26 System

Prima di installare i pacchetti sull'istanza del server Fedora, aggiorneremo il sistema.

Assicurarsi di aver effettuato l'accesso al server utilizzando un utente sudo non root ed eseguire il comando seguente:

sudo dnf -y update

Passaggio 3: installare Apache Web Server

Installa il web server Apache:

sudo dnf -y install httpd

Utilizzare il systemctlcomando per avviare e abilitare l'esecuzione automatica di Apache all'avvio:

sudo systemctl enable httpd
sudo systemctl start httpd

Controlla il tuo file di configurazione di Apache per assicurarti che la DocumentRootdirettiva punti alla directory corretta:

sudo vi /etc/httpd/conf/httpd.conf

L' DocumentRootopzione di configurazione sarà simile a questa:

DocumentRoot "/var/www/html"

Ora, assicuriamoci che il mod_rewritemodulo Apache sia caricato. Possiamo farlo cercando il termine " mod_rewrite" nel file di configurazione dei moduli base di Apache .

Apri il file:

sudo vi /etc/httpd/conf.modules.d/00-base.conf

Cerca il termine mod_rewrite.

Se il mod_rewritemodulo Apache è caricato, troverai una linea di configurazione simile a questa:

LoadModule rewrite_module modules/mod_rewrite.so

Se la riga sopra inizia con un punto e virgola, sarà necessario rimuovere il punto e virgola per decommentare la linea e caricare il modulo. Questo, ovviamente, si applica anche a qualsiasi altro modulo Apache richiesto.

Ora dobbiamo modificare il file di configurazione predefinito di Apache in modo che mod_rewritefunzioni correttamente con ProcessWire CMS.

Apri il file:

sudo vi /etc/httpd/conf/httpd.conf

Quindi trova la sezione che inizia con <Directory "/var/www/html">e cambia AllowOverride nonein AllowOverride All. Il risultato finale (con tutti i commenti rimossi) sarà simile a questo:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Ora salva e chiudi il file di configurazione di Apache.

Riavvieremo Apache alla fine di questo tutorial, ma riavviare Apache regolarmente durante l'installazione e la configurazione è sicuramente una buona abitudine, quindi facciamolo ora:

sudo systemctl restart httpd

Passaggio 4: aprire le porte del Web Firewall

Ora abbiamo bisogno di aprire i valori predefiniti HTTPe le HTTPSporte poiché saranno bloccati firewalldper impostazione predefinita.

Apri le porte del firewall:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp

Ricarica il firewall per applicare le modifiche:

sudo firewall-cmd --reload

Vedrai la parola successvisualizzata nel tuo terminale dopo ogni comando di configurazione del firewall riuscito.

Possiamo verificare rapidamente che la HTTPporta Apache sia aperta visitando l'indirizzo IP o il dominio dell'istanza del server in un browser:

http://YOUR_VULTR_IP_ADDRESS/

Vedrai la pagina Web predefinita di Apache nel tuo browser.

Passaggio 5: disabilitare SELinux

SELinux sta per "Security Enhanced Linux". È un miglioramento della sicurezza di Linux che consente a utenti e amministratori un maggiore controllo sul controllo degli accessi. È abilitato di default in Fedora 26, ma sicuramente non è essenziale per la sicurezza del server poiché molte distribuzioni di server Linux non vengono installate o abilitate di default.

Per evitare problemi di autorizzazione dei file con ProcessWire CMS più avanti, disabiliteremo SELinux, per ora. Quindi apri il file di configurazione SELinux con il tuo editor di terminali preferito:

sudo vi /etc/selinux/config

E cambia SELINUX=enforcingin SELINUX=disabled, quindi salva il file.

Per applicare la modifica della configurazione, SELinux richiede un riavvio del server, quindi puoi riavviare il server utilizzando il pannello di controllo Vultr oppure puoi semplicemente usare il shutdowncomando per spegnere e riavviare in modo pulito il server:

sudo shutdown -r now

Al riavvio del server, la sessione SSH verrà disconnessa e potresti visualizzare un messaggio che ti 'broken pipe'informa o ti informa 'Connection closed by remote host'. Non c'è nulla di cui preoccuparsi, attendi semplicemente 20 secondi circa e poi di nuovo SSH (con il tuo nome utente e dominio):

ssh user1@YOUR_DOMAIN

Oppure (con il tuo nome utente e indirizzo IP):

ssh user1@YOUR_VULTR_IP_ADDRESS

Dopo aver effettuato nuovamente l'accesso, è necessario verificare lo stato di SELinux con il sestatuscomando per assicurarsi che sia disabilitato correttamente:

sudo sestatus

Vedrai un messaggio che dice SELinux status: disabled. Se vedi un messaggio che dice SELinux status: enabled(o qualcosa di simile) dovrai ripetere i passaggi precedenti e assicurarti di riavviare correttamente il tuo server.

Passaggio 6: installa PHP 7.1

Ora possiamo installare PHP 7.1 insieme a tutti i moduli PHP necessari richiesti da ProcessWire CMS.

sudo dnf -y install php php-mysqlnd php-mbstring php-gd php-common php-pdo php-pecl-imagick php-xml php-zip

Passaggio 7: installare il server MariaDB (MySQL)

Per impostazione predefinita, Fedora 26 utilizza il server di database MariaDB, che è un sostituto drop-in avanzato, completamente open source, sviluppato dalla comunità, per il server MySQL.

Installa il server di database MariaDB:

sudo dnf -y install mariadb-server

Avvia e abilita l'esecuzione automatica del server MariaDB all'avvio:

sudo systemctl enable mariadb
sudo systemctl start mariadb    

Proteggi l'installazione del tuo server MariaDB:

sudo mysql_secure_installation

La rootpassword sarà vuota, quindi premi Invio quando ti viene richiesta la rootpassword.

Quando viene richiesto di creare un utente MariaDB / MySQL root, selezionare "Y" (per Sì) e quindi immettere una rootpassword sicura . Rispondi semplicemente a "Y" a tutte le altre domande sì / no poiché i suggerimenti predefiniti sono le opzioni più sicure.

Passaggio 8: creare un database per CMS ProcessWire

Accedere alla shell MariaDB come rootutente MariaDB eseguendo il comando seguente:

sudo mysql -u root -p

Per accedere al prompt dei comandi di MariaDB, inserire semplicemente la rootpassword di MariaDB quando richiesto.

Eseguire le seguenti query per creare un database MariaDB e un utente del database per ProcessWire CMS:

CREATE DATABASE pw_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'pw_user'@'localhost' IDENTIFIED BY 'UltraSecurePassword';
GRANT ALL PRIVILEGES ON pw_db.* TO 'pw_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Se preferisci, puoi sostituire il nome del database pw_dbe il nome utente pw_usercon qualcosa in più di tuo gradimento. Inoltre, assicurati di sostituire "UltraSecurePassword" con una password effettivamente sicura.

Passaggio 9: installare i file CMS ProcessWire

Cambia la tua directory di lavoro corrente nella directory web predefinita:

cd /var/www/html/

Se ricevi un messaggio di errore che dice qualcosa del genere, 'No such file or directory'prova il seguente comando:

cd /var/www/ ; sudo mkdir html ; cd html

La vostra directory di lavoro corrente sarà ora: /var/www/html/. Puoi verificarlo con il pwdcomando (print working directory):

pwd

Ora usa wgetper scaricare il pacchetto di installazione CMS ProcessWire:

sudo wget https://github.com/processwire/processwire/archive/master.zip

Nota: è necessario verificare la versione più recente visitando la pagina di download di CMS ProcessWire .

Elenca la directory corrente per verificare di aver scaricato correttamente il file:

ls -la

Installiamo rapidamente in unzipmodo da poter decomprimere il file:

sudo dnf -y install unzip

Ora decomprimi l'archivio zip:

sudo unzip master.zip

Spostare tutti i file di installazione nella directory principale Web:

sudo mv processwire-master/* /var/www/html

Modifica la proprietà dei file Web per evitare problemi con le autorizzazioni:

sudo chown -R apache:apache * ./

Riavvia nuovamente Apache:

sudo systemctl restart httpd

Passaggio 10: completare l'installazione di CMS ProcessWire

Ora è il momento di visitare l'indirizzo IP dell'istanza del tuo server nel tuo browser, o se hai già configurato le tue impostazioni DNS Vultr (e gli hai concesso abbastanza tempo per propagarsi) puoi semplicemente visitare il tuo dominio.

Per accedere alla pagina di installazione di CMS ProcessWire, inserire l'indirizzo IP dell'istanza Vultr nella barra degli indirizzi del browser, seguito da index.php:

http://YOUR_VULTR_IP_ADDRESS/install.php

Il programma di installazione CMS di ProcessWire contiene molte opzioni, quindi ecco alcuni suggerimenti per aiutarti:

  1. Nella pagina di benvenuto dell'installazione CMS di ProcessWire, fare clic sul Get Startedpulsante per avviare il processo di installazione.

  2. Ora seleziona il tuo profilo di installazione preferito (o sito demo) e fai clic Continue.

  3. Vedrai una Compatibility Checkpagina. Se vedi degli errori, probabilmente significa che ti mancano alcuni moduli PHP o hai un problema con le autorizzazioni, altrimenti puoi semplicemente fare clic Continue.

  4. Immettere i seguenti valori nella MySQL Database Settingspagina:

    DB Name:            pw_db
    DB User:            pw_user
    DB Pass:            UltraSecurePassword
    DB Host:            localhost
    DB Port:            3306
    
  5. È possibile lasciare le File Permissionimpostazioni sui valori predefiniti oppure modificarle se si comprendono le implicazioni.

  6. Puoi inserire i nomi host futuri del tuo sito nella sezione appropriata oppure, site/config.phpse preferisci , puoi modificare il file in un secondo momento.

  7. Fare clic su Continueper configurare il database e installare i file CMS ProcessWire.

  8. Quindi, seleziona il tuo preferito Admin Theme.

  9. Admin URLSe lo preferisci, puoi cambiarlo o semplicemente lasciarlo al valore predefinito.

  10. Inserisci il tuo Admin Login Detailscome mostrato di seguito:

    User (a-z 0-9):     <admin username>
    Password:           <admin password>
    Password (again):   <same admin password>
    Email Address:      <admin email address>
    
  11. Dopo aver inserito tutti i dettagli appropriati, è possibile fare clic Continueper finalizzare l'installazione di ProcessWire.

  12. Una volta completata l'installazione, fai semplicemente clic sul Login to Adminpulsante per accedere alla sezione Amministratore.

È possibile che venga visualizzato un avviso che dice qualcosa del tipo:

Warning: your server locale is undefined and may cause issues. Please add this to /site/config.php file (adjust en_US.UTF-8†as needed): setlocale(LC_ALL,'en_US.UTF-8');

È possibile correggere questo errore modificando il site/config.phpfile:

sudo vi site/config.php

Aggiungi il valore appropriato alla fine del file:

setlocale(LC_ALL,'en_GB.utf8');

Se non riesci a capire quale valore utilizzare, puoi trovare un elenco di valori appropriati per la tua specifica istanza del server eseguendo il localecomando:

locale -a

Non dimenticare di salvare ed uscire dal site/config.phpfile al termine della modifica.

Per motivi di sicurezza, assicurati di modificare le autorizzazioni sul site/config.phpfile:

sudo chmod 400 site/config.php

Riavvia Apache.

sudo systemctl restart httpd

Sei pronto per iniziare ad aggiungere i tuoi contenuti e configurare l'aspetto del tuo sito. Assicurati di consultare l'eccellente documentazione di ProcessWire CMS per ulteriori informazioni su come costruire e configurare il tuo sito.



Leave a Comment

Installazione di Fuel CMS su Ubuntu 16.04 LTS

Installazione di Fuel CMS su Ubuntu 16.04 LTS

Usi un sistema diverso? Fuel CMS è un sistema di gestione dei contenuti basato su CodeIgniter. Il suo codice sorgente è ospitato su GitHub. Questa guida ti mostrerà come t

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare

Come installare Subrion 4.1 CMS su un Fedora 26 LAMP VPS

Come installare Subrion 4.1 CMS su un Fedora 26 LAMP VPS

Usi un sistema diverso? Subrion 4.1 CMS è un sistema di gestione dei contenuti (CMS) open source potente e flessibile che offre un contenuto intuitivo e chiaro

Come installare Couch CMS 2.0 su un Fedora 26 LAMP VPS

Come installare Couch CMS 2.0 su un Fedora 26 LAMP VPS

Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare

Come installare WonderCMS su Fedora 29

Come installare WonderCMS su Fedora 29

Usi un sistema diverso? WonderCMS è un file CMS open source, veloce e di piccole dimensioni scritto in PHP. Il codice sorgente di WonderCMS è ospitato su Github. Questa guida sarà

Come installare Neos CMS su Debian 9

Come installare Neos CMS su Debian 9

Usi un sistema diverso? Neos è una piattaforma di applicazioni di contenuto con un CMS e un framework applicativo al suo interno. Questa guida ti mostrerà come installare

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori

Come installare BigTree CMS 4.2 su un VPS CentOS 7 LAMP

Come installare BigTree CMS 4.2 su un VPS CentOS 7 LAMP

Usi un sistema diverso? BigTree CMS 4.2 è un sistema di gestione dei contenuti (CMS) rapido e leggero, gratuito e open source di livello aziendale con

Come installare Craft CMS su CentOS 7

Come installare Craft CMS su CentOS 7

Usi un sistema diverso? Craft CMS è un CMS open source scritto in PHP. Il codice sorgente di Craft CMS è ospitato su GitHub. Questa guida ti mostrerà come installare

Come installare ImpressPages CMS 5.0 su un VPS Debian 9 LAMP

Come installare ImpressPages CMS 5.0 su un VPS Debian 9 LAMP

Usi un sistema diverso? ImpressPages CMS 5.0 è un sistema di gestione dei contenuti (CMS) semplice ed efficace, gratuito e open source, intuitivo, basato su MVC

Installazione di Bolt CMS su CentOS 7

Installazione di Bolt CMS su CentOS 7

Bolt è un CMS open source scritto in PHP. Il codice sorgente di Bolts è ospitato su GitHub. Questa guida ti mostrerà come installare Bolt CMS su un nuovo CentOS 7 Vult

Come installare Automad CMS su CentOS 7

Come installare Automad CMS su CentOS 7

Usi un sistema diverso? Automad è un sistema di gestione dei contenuti (CMS) basato su file open source e un motore di template scritto in PHP. Il codice sorgente di Automad i

Come installare Directus 6.4 CMS su un FPS VPS di FreeBSD 11

Come installare Directus 6.4 CMS su un FPS VPS di FreeBSD 11

Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori

Come installare ProcessWire CMS 3.0 su un Ubuntu 16.04 LAMP VPS

Come installare ProcessWire CMS 3.0 su un Ubuntu 16.04 LAMP VPS

Usi un sistema diverso? ProcessWire CMS 3.0 è un sistema di gestione dei contenuti (CMS) semplice, flessibile e potente, gratuito e open source. ProcessWire CMS 3.

Come installare TYPO3 CMS su CentOS 7

Come installare TYPO3 CMS su CentOS 7

Usi un sistema diverso? TYPO3 è un sistema di gestione dei contenuti aziendali gratuito e open source. È scritto in PHP e utilizza MySQL per archiviare i suoi dati. TYPO

Come installare CMS sullo sfondo su un VPS Ubuntu 16.04 LAMP

Come installare CMS sullo sfondo su un VPS Ubuntu 16.04 LAMP

Usi un sistema diverso? Backdrop CMS 1.8.0 è un sistema di gestione dei contenuti (CMS) semplice e flessibile, ottimizzato per dispositivi mobili, gratuito e open source che ci consente

Come installare Anchor CMS su un VPS CentOS 7 LAMP

Come installare Anchor CMS su un VPS CentOS 7 LAMP

Usi un sistema diverso? Anchor CMS è un motore di blog Content Management System (CMS) super semplice ed estremamente leggero, gratuito e open source

Installazione di Anchor CMS su CentOS 7

Installazione di Anchor CMS su CentOS 7

Usi un sistema diverso? Anchor è un blog CMS open source leggero scritto in PHP. Il codice sorgente delle ancore è ospitato su GitHub. Questa guida ti mostrerà ho

Installazione di Microweber su Ubuntu 16.04

Installazione di Microweber su Ubuntu 16.04

Usi un sistema diverso? Microweber è un drag and drop open source CMS e negozio online. Il codice sorgente di Microweber è ospitato su GitHub. Questa guida ti mostrerà

Come installare Thelia 2.3 su CentOS 7

Come installare Thelia 2.3 su CentOS 7

Usi un sistema diverso? Thelia è uno strumento open source per la creazione di siti Web di e-business e la gestione di contenuti online, scritto in PHP. Codice sorgente Thelia i

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.