O ProcessWire CMS 3.0 é um CMS (Content Management System) simples, flexível e poderoso, de código aberto e gratuito. O ProcessWire CMS 3.0 apresenta uma API de estilo jQuery fácil de usar, arquitetura de plug-in totalmente modular e um sistema de templates flexível e poderoso que oferece uma experiência de usuário igualmente satisfatória para designers, desenvolvedores e usuários finais.
Neste tutorial, instalaremos o ProcessWire CMS 3.0 em um Debian 9 LAMP VPS usando o servidor Apache, PHP 7.1 e um banco de dados MariaDB.
Pré-requisitos
	- Uma instância limpa do servidor Vultr Debian 9 com acesso SSH
Etapa 1: adicionar um usuário Sudo
Começaremos adicionando um novo sudousuário.
Primeiro, faça login no seu servidor como root:
ssh root@YOUR_VULTR_IP_ADDRESS
O sudocomando não é instalado por padrão na instância do servidor Vultr Debain 9, portanto, instalaremos primeiro sudo:
apt-get -y install sudo
Agora adicione um novo usuário chamado user1(ou seu nome de usuário preferido):
adduser user1
Quando solicitado, digite uma senha segura e memorável. Você também será solicitado a fornecer seu "Nome completo" e outros detalhes, mas você pode simplesmente deixá-los em branco pressionando Enter.
Agora verifique o /etc/sudoersarquivo para garantir que o sudoersgrupo esteja ativado:
visudo
Procure uma seção como esta:
%sudo        ALL=(ALL:ALL)       ALL
Essa linha nos diz que os usuários que são membros do sudogrupo podem usar o sudocomando para obter rootprivilégios. Por padrão, ele deve ser descomentado para que você possa simplesmente sair do arquivo.
Em seguida, precisamos adicionar user1ao sudogrupo:
usermod -aG sudo user1
Podemos verificar a user1participação no grupo e verificar se o usermodcomando funcionou com o groupscomando:
groups user1
Agora use o sucomando para alternar para a nova user1conta de usuário sudo :
su - user1
O prompt de comando será atualizado para indicar que você está conectado à user1conta. Você pode verificar isso com o whoamicomando:
whoami
Agora reinicie o sshdserviço para que você possa efetuar login sshcom a nova conta de usuário sudo não raiz que você acabou de criar:
sudo systemctl restart sshd
Saia da user1conta:
exit
Saia da rootconta (que desconectará sua sshsessão):
exit
Agora você pode acessar ssha instância do servidor do host local usando a nova user1conta de usuário sudo não raiz :
ssh user1@YOUR_VULTR_IP_ADDRESS
Se você deseja executar sudosem precisar digitar uma senha todas as vezes, abra o /etc/sudoersarquivo novamente, usando visudo:
sudo visudo
Edite a seção do sudogrupo para que fique assim:
%sudo   ALL=(ALL) NOPASSWD: ALL
Nota:  Desabilitar o requisito de senha para o usuário sudo não é uma prática recomendada, mas é incluído aqui, pois pode tornar a configuração do servidor muito mais conveniente e menos frustrante, especialmente durante sessões mais longas de administração de sistemas. Se você estiver preocupado com as implicações de segurança, sempre poderá reverter a alteração na configuração para o original após concluir suas tarefas de administração.
Sempre que você desejar fazer login na rootconta de usuário a partir da sudoconta, você pode usar um dos seguintes comandos:
sudo -i
sudo su -
Você pode sair da rootconta e retornar à sua sudoconta de usuário a qualquer momento, simplesmente digitando exit.
Etapa 2: Atualize o Sistema Debian 9
Antes de instalar qualquer pacote na instância do servidor Debian, primeiro atualizaremos o sistema. 
Verifique se você está conectado ao servidor usando um usuário sudo não raiz e execute os seguintes comandos:
sudo apt-get update
sudo apt-get -y upgrade
Etapa 3: Instale o Apache Web Server
Instale o servidor da web Apache:
sudo apt-get -y install apache2 
Use o systemctlcomando para iniciar e permitir que o Apache seja executado automaticamente no momento da inicialização:
sudo systemctl enable apache2
sudo systemctl start apache2
Verifique o arquivo de configuração do site padrão do Apache para garantir que a DocumentRootdiretiva aponte para o diretório correto:
sudo vi /etc/apache2/sites-enabled/000-default.conf 
A DocumentRootopção de configuração terá a seguinte aparência:
DocumentRoot "/var/www/html"
Agora precisamos ativar o mod_rewritemódulo Apache, para garantir que o arquivo de configuração do site para surdos Apache ainda esteja aberto e adicione as seguintes Directorydiretivas do Apache imediatamente antes da </VirtualHost>tag de fechamento , para que o final do arquivo de configuração fique assim:
    <Directory /var/www/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>
A diretiva mais importante mostrada acima é AllowOverride All.
Agora salve e saia do arquivo e ative o mod_rewritemódulo Apache:
sudo a2enmod rewrite
Reiniciaremos o Apache no final deste tutorial, mas reiniciar o Apache regularmente durante a instalação e configuração é certamente um bom hábito, então vamos fazê-lo agora:
sudo systemctl restart apache2
Etapa 4: Instale o PHP 7.0
Agora podemos instalar o PHP 7.0 junto com todos os módulos PHP necessários exigidos pelo ProcessWire CMS:
sudo apt-get -y install php php-gd php-mbstring php-common php-mysql php-imagick php-xml libapache2-mod-php php-curl php-zip
Etapa 5: Instalar o servidor MariaDB (MySQL)
O Debian 9 usa como padrão o servidor de banco de dados MariaDB, que é um substituto aprimorado, totalmente aberto e desenvolvido pela comunidade, para o servidor MySQL.
Instale o servidor de banco de dados MariaDB:
sudo apt-get -y install mariadb-server
Inicie e ative o servidor MariaDB para executar automaticamente no momento da inicialização:
sudo systemctl enable mariadb
sudo systemctl start mariadb    
Proteja a instalação do servidor MariaDB com:
sudo mysql_secure_installation
A rootsenha ficará em branco; basta pressionar Enter quando a rootsenha for solicitada .
Quando solicitado a criar um rootusuário MariaDB / MySQL , selecione "Y" (para sim) e insira uma rootsenha segura . Simplesmente responda "Y" a todas as outras perguntas de sim / não, pois as sugestões padrão são as opções mais seguras.
Etapa 6: Criar banco de dados para o ProcessWire CMS
Efetue login no shell do MariaDB como o rootusuário do MariaDB executando o seguinte comando:
sudo mariadb -u root -p
Para acessar o prompt de comando do MariaDB, basta digitar a rootsenha do MariaDB quando solicitado.
Execute as seguintes consultas para criar um banco de dados MariaDB e um usuário de banco de dados para o 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;
Você pode substituir o nome do banco de dados pw_dbe o nome de usuário pw_userpor algo mais ao seu gosto, se preferir. Além disso, certifique-se de substituir "UltraSecurePassword" por uma senha realmente segura.
Etapa 7: Instalar arquivos ProcessWire CMS
Altere seu diretório de trabalho atual para o diretório da web padrão:
cd /var/www/html/
Se você receber uma mensagem de erro dizendo algo parecido 'No such file or directory', tente o seguinte comando:
cd /var/www/ ; sudo mkdir html ; cd html
Seu diretório de trabalho atual será agora: /var/www/html/. Você pode verificar isso com o pwdcomando (print working directory):
pwd
Agora use wgetpara baixar o pacote de instalação do ProcessWire CMS:
sudo wget https://github.com/processwire/processwire/archive/master.zip
Observação:  você deve definitivamente verificar a versão mais recente visitando a página de download do ProcessWire CMS .
Liste o diretório atual para verificar se você fez o download do arquivo com sucesso:
ls -la
Vamos instalar rapidamente unzippara poder descompactar o arquivo:
sudo apt-get -y install unzip
Remover index.html:
sudo rm index.html
Agora descompacte o arquivo zip:
sudo unzip master.zip
Mova todos os arquivos de instalação para o diretório raiz da web:
sudo mv processwire-master/* /var/www/html
Altere a propriedade dos arquivos da web para evitar problemas com permissões:
sudo chown -R www-data:www-data * ./
Reinicie o Apache novamente:
sudo systemctl restart apache2
Etapa 8: Concluir a instalação do ProcessWire CMS
Agora é hora de visitar o endereço IP da instância do servidor em seu navegador ou, se você já definiu as configurações de DNS do Vultr (e deu tempo suficiente para se propagar), pode simplesmente visitar seu domínio.
Para acessar a página de instalação do ProcessWire CMS, digite o endereço IP da instância do Vultr na barra de endereços do navegador, seguido por index.php:
http://YOUR_VULTR_IP_ADDRESS/install.php
O instalador do ProcessWire CMS contém muitas opções, então, aqui estão algumas dicas para ajudá-lo:
	- 
	Na página de boas-vindas da instalação do ProcessWire CMS, clique no Get Startedbotão para iniciar o processo de instalação.
 
- 
	Agora selecione seu perfil de instalação preferido (ou site de demonstração) e clique em Continue.
 
- 
	Você verá uma Compatibility Checkpágina. Se você vir algum erro, isso provavelmente significa que você está perdendo alguns módulos PHP ou tem um problema de permissão; caso contrário, você pode simplesmente clicarContinue.
 
- 
	Digite os seguintes valores na MySQL Database Settingspágina:
 
DB Name:            pw_db
DB User:            pw_user
DB Pass:            UltraSecurePassword
DB Host:            localhost
DB Port:            3306
 
- 
	Você pode deixar as File Permissionconfigurações com seus valores padrão ou ajustá-las se entender as implicações.
 
- 
	Você pode inserir os nomes de host futuros do seu site na seção apropriada ou pode editar o site/config.phparquivo posteriormente, se preferir.
 
- 
	Clique em Continuepara configurar o banco de dados e instalar os arquivos do ProcessWire CMS.
 
- 
	Em seguida, selecione o seu preferido Admin Theme.
 
- 
	Você pode alterar o Admin URLse preferir ou simplesmente deixá-lo no valor padrão.
 
- 
	Digite o seu Admin Login Detailscomo mostrado abaixo:
 
User (a-z 0-9):     <admin username>
Password:           <admin password>
Password (again):   <same admin password>
Email Address:      <admin email address>
 
- 
	Depois de inserir todos os detalhes apropriados, você pode clicar Continuepara finalizar a instalação do ProcessWire.
 
- 
	Quando a instalação estiver concluída, basta clicar no Login to Adminbotão para fazer login na seção Admin.
 
Você pode ver um aviso dizendo algo como:
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');
Você pode corrigir esse erro editando o site/config.phparquivo:
sudo vi site/config.php
Anexe o valor apropriado ao final do arquivo:
setlocale(LC_ALL,'en_GB.utf8');
Se você não conseguir descobrir qual valor usar, poderá encontrar uma lista de valores apropriados para sua instância específica do servidor executando o localecomando:
locale -a
Não se esqueça de salvar e sair do site/config.phparquivo quando terminar de editar.
Por motivos de segurança, altere as permissões no site/config.phparquivo:
sudo chmod 400 site/config.php
Reinicie o Apache.
sudo systemctl restart apache2
Você está pronto para começar a adicionar seu conteúdo e configurar a aparência do seu site. Verifique a excelente documentação do ProcessWire CMS para obter mais informações sobre como criar e configurar seu site.