Home / Dicas e Tutoriais / Instalando o WordPress no Ubuntu 14.04

Instalando o WordPress no Ubuntu 14.04

O WordPress é o CMS mais popular (sistema de gerenciamento de conteúdo) na internet. Ele permite que você facilmente crie blogs e sites flexíveis em cima de um backend MySQL com o processamento PHP. WordPress tem sido incrivelmente adotado e é uma ótima opção para colocar para funcionar rapidamente um site.

Neste guia, vamos nos concentrar em obter uma instância WordPress configurado com um servidor web Apache no Ubuntu 14.04, sem o auxílio do programa PhpMyAdmin. Para Instalar o WordPress com PhpMyAdmin dêem uma olhada neste ARTIGO.

Pré Requisito:
Antes de começar certifique-se que o seu Web Server já está instalado e funcionando.
Para isso dê uma olhada neste ARTIGO: instalando-um-servidor-web-passo-a-passo-com-o-lamp-no-ubuntu-14-04

Passo 1 Criar uma base de dados no MySQL e usuário para WordPress

O primeiro passo que vamos dar é preparatório. O WordPress utiliza um banco de dados relacional para gerenciar e armazenar um site e informações do usuário.

Nós já temos MySQL instalado, que pode fornecer essa funcionalidade, mas precisamos fazer um banco de dados e um usuário para o WordPress para trabalhar.

Para começar, faça o login no MySQL com seu login de root, com o seguinte comando:

mysql -u root -p

Será solicitada a senha que você definiu para a conta root do MySQL quando você instalou o software. Em seguida, será dado um prompt de comando MySQL.

Em primeiro lugar, podemos criar um banco de dados separado que o WordPress pode controlar. Você pode chamá-lo de qualquer coisa que você gostaria, mas vou estar chamando-o wordpress porque é descritivo e simples. Digite este comando para criar o banco de dados:

CREATE DATABASE wordpress;

Toda linha de comando do MySQL deve terminar com um ponto e vírgula (;), por isso verifique se este está presente se você estiver executando em todas as edições.

Em seguida, vamos criar uma conta de usuário do MySQL em separado que usaremos exclusivamente para operar na nossa base de dados nova. Criação de bases de dados de uma função e contas é uma boa idéia do ponto de vista de gerenciamento e segurança.

Vou chamar a nova conta que eu estou fazendo de “wordpressuser” e atribuir-lhe uma senha de “senha”. Você deve criar o usuário e senha que quiser ao invés de usar estes que estou usando neste exemplo. Este é o comando que você precisa para criar o usuário:

CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';

Neste ponto, você tem um banco de dados e uma conta de usuário, cada uma feita especificamente para o WordPress. No entanto, esses dois componentes não têm nenhuma relação ainda. O usuário não tem acesso ao banco de dados.

Vamos corrigir isso através da concessão de nosso acesso à conta do usuário para o nosso banco de dados com o seguinte comando:

GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;

Agora, o usuário tem acesso ao banco de dados. Precisamos atualizar os privilégios, para que a instância atual do MySQL saiba sobre as recentes mudanças de privilégio que fizemos:

FLUSH PRIVILEGES;

Está tudo pronto agora. Podemos sair do prompt do MySQL, digitando:

exit

phpMyAdmin – (Opcional)

O phpMyAdmin é um programa que pode auxiliar a realizar o passo acima de forma gráfica em uma console Web. Em nosso artigo de instalação do WordPress não é obrigatóriamente necessário o uso do phpMyAdmin para realizar as tarefas deste passo 1, mas caso você queira utilizá-lo comece com a instalação dele através do seguinte comando:

sudo apt-get install phpmyadmin

Escolha a opção apache (pressionando “Enter”)

phpmyadmin

Esclha sua senha de root do MySQL para o phpMyAdmin acessá-lo

phpmyadmin2

Agora acesse o endereço do seu servidor no navegador para acessar a console do phpMyAdmin.
Seu_endereço_IP/phpmyadmin

phpmyadmin3

phpmyadmin4

Pronto, por aqui você poderá gerenciar os usuários, privilégios e Bases do MySQL também.

Siga os passos abaixo para criar banco de dados e do usuário com o mesmo nome que expliquei em modo de linha de comando.

Passo 1 – Clique em Usuários, em seguida, clique em Adicionar usuário.
Passo 2 – Digite seu nome de usuário desejado (usamos o wordpressuser no passo 1). Verifique se o host está definido como local a partir da lista e a caixa de texto para baixo mudará para localhost e digite uma senha e confirme-a na caixa deRe-type”. Verifique se o campo de texto de senha Use também está selecionado.
Passo 3 – Verifique a caixa que diz Criar banco de dados, e conceda todos os privilégios.

phpmyadmin-create-user
É exatamente a mesma coisa que fizemos com os comandos, antes desta parte Opcional, só que de forma gráfica.

 

Passo 2 — Download WordPress

Em seguida, vamos fazer o download dos arquivos do WordPress a partir do site do projeto.

Felizmente, a equipe WordPresslinka” sempre a versão estável mais recente do seu software para a mesma URL, para que possamos obter a versão mais atualizada do WordPress, digitando o seguinte:

cd ~
wget http://wordpress.org/latest.tar.gz

Isto irá baixar um arquivo compactado que contém o conteúdo dos arquivos do WordPress para o nosso diretório home.

Podemos extrair os arquivos para recriar o diretório WordPress precisamos digitando:

tar xzvf latest.tar.gz

Isto irá criar um diretório chamado wordpress em seu diretório home.

Enquanto estamos baixando coisas, devemos também obter mais alguns pacotes que precisamos. Podemos obter estes diretamente dos repositórios padrão do Ubuntu depois nós atualizamos nosso índice pacote local:

sudo apt-get update
sudo apt-get install php5-gd libssh2-php

Isso permitirá você trabalhar com imagens e também vai permitir a instalação de plugins e atualização do seu site usando suas credenciais de login do SSH.

Passo 3 Configurar o WordPress

A maior parte da configuração que iremos fazer será através de uma interface web mais tarde. No entanto, precisamos fazer algum trabalho na linha de comando antes que possamos ter tudo instalado e funcionando.

Comece entrando no diretório WordPress que você acabou de descompactado:

cd ~/wordpress
Um arquivo de configuração de exemplo que corresponde principalmente a configuração que precisa, está incluído por padrão. No entanto, é preciso copiá-lo para o local do arquivo de configuração padrão para que o WordPress reconheça o arquivo. Faça isso agora, digitando:
cp wp-config-sample.php wp-config.php

Agora que nós temos um arquivo de configuração para trabalhar, vamos abri-lo em um editor de texto:
No exemplo abaixo, estou usando o “nano”, mas você poderá usar o “vi” ou o “gedit”.

nano wp-config.php

Como eu disse antes, este arquivo é quase inteiramente adequado para as nossas necessidades. As únicas modificações que precisamos fazer é com os parâmetros que sustentam o nosso banco de dados informações.

Teremos de encontrar as configurações para DB_NAME, DB_USER e DB_PASSWORD a fim de que o WordPress se conecte e autentique no banco de dados que criamos corretamente.

Preencha os valores destes parâmetros com as informações para o banco de dados criado. Deve se parecer como este:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

Estes são os únicos valores que você precisa mudar.

Quando terminar, salve e feche o arquivo.

Se estiver usando o “nano” como eu, feche com “Ctrl+X” e salve quando solicitado digitando “y”.

Passo 4 Copiar arquivos para a raiz 

Agora que temos o nosso aplicativo configurado, é preciso copiá-lo para o diretório raiz do Apache, onde pode ser acessado para os visitantes do nosso site.

Uma das maneira mais fácil e confiável de transferência de arquivos do diretório para o diretório é com o comando rsync. Isso preserva as permissões e tem boas características de integridade de dados.

A localização na raiz onde os sites devem ser hospedados é em /var/www/html/.
Nós podemos transferir nossos arquivos WordPress , digitando:

sudo rsync -avP ~/wordpress/ /var/www/html/

Isso irá copiar com segurança todo o conteúdo do diretório wordpress que você descompactou para o caminho de hospedagem na raiz.
Devemos agora entrar na pasta da raiz para mudar algumas permissões finais.

cd /var/www/html

Você precisará alterar a propriedade de nossos arquivos para maior segurança.

Queremos dar posse (ownership) ao usuário comum e não ao usuário root que você planeja usar para interagir com o seu site. Este pode ser o seu usuário que está logado se quiser, mas alguns podem sugerir que você crie um usuário adicional para este processo. Cabe a você decidir o que prefere.

Para este guia, vamos usar a mesma conta que usei quando realizei a configuração inicial do servidor. Esta é a conta que eu estou realizando todas as ações deste guia a qual chamei de “lab”.

O que fiz quando instalei o servidor foi dar privilégios a conta “lab” que criei.

Para adicionar a este usuário estes privilégios, você precisará usar o comando visudo
Isto irá abrir um arquivo de configuração.
Role para baixo e você irá encontrar a sessão de privilégios de usuário. Vai se parecer com isso:

# User privilege specification
root    ALL=(ALL:ALL) ALL

Isto pode parecer complicado, mas não precisamos nos preocupar com isso. Tudo o que nós precisamos fazer é adicionar uma linha abaixo substituindo o nome do meu usuário “lab” pelo o usuário que você criou:

# User privilege specification
root    ALL=(ALL:ALL) ALL
lab     ALL=(ALL:ALL) ALL

Depois disto feito, basta pressionar CTRL-X para sair e “Y” para salvar esta configuração, e depois “ENTER” para confirmar.


O dono de grupo, www-data, vamos dar ao nosso processo de servidor web, que é www-data. Isto irá permitir que o Apache interaja com o conteúdo, conforme necessário.

Podemos atribuir rapidamente esses valores de propriedade, digitando:

sudo chown -R lab:www-data *

Lembrando que a conta que estou usando é a lab, mas você pode utilizar sua conta no lugar dessa.
Isso irá configurar
as propriedades de dono (ownership) que estamos usando.

Enquanto estamos lidando com propriedade e as permissões, devemos também olhar para atribuição de propriedade correta em nosso diretório uploads. Isso nos permitirá fazer upload de imagens e outros conteúdos para o nosso site. Atualmente, as permissões são muito restritivas.

Primeiro, vamos criar manualmente o diretório uploads abaixo do diretório wp-content em nossa raiz do documento. Este será o diretório pai do nosso conteúdo:

mkdir /var/www/html/wp-content/uploads

Nós temos um diretório agora para abrigar os arquivos enviados, no entanto as permissões ainda são muito restritivas. Precisamos permitir que o próprio servidor web para grave nesse diretório. Podemos fazer isso através da atribuição de propriedade de grupo desse diretório para o nosso servidor web, como este:

sudo chown -R :www-data /var/www/html/wp-content/uploads

Isso permitirá que o servidor web crie arquivos e diretórios sob este diretório, o que nos permitirá fazer upload de conteúdo para o servidor.

Passo 5 — Instalação Completa através da Interface Web

Agora que você tem seus arquivos no lugar certo e seu software está configurado, você pode concluir a instalação através da interface web. No navegador da Web, navegue até o nome de domínio do servidor ou o endereço IP público:

http://nome_do_server_ou_IP

Você verá a página de configuração inicial onde você irá criar uma conta inicial de administrador:

initial_config

 

Preencha as informações para o site e a conta administrativa que você deseja fazer. Quando terminar, clique no botão “Install WordPress” na parte inferior. WordPress irá confirmar a instalação e, em seguida, irá pedir que faça login com a conta que você acabou de criar:

confirm_installAperte o botão “Log In” na parte inferior e, em seguida, preencha as informações da conta:

login

Você será direcionado à interface do WordPress:

admin_interface

Passo 6 (Opcional) — Configure “Pretty” Permalinks para o WordPress

Por padrão, o WordPress cria URLs dinamicamente, algo parecido com isto:

http://server_domain_name_or_IP/?p=1

Este link acima não é exatamente o resultado mais útil para os visitantes do site ou motores de busca, como o Google, por isso a maioria dos usuários quer modificar isso. WordPress tem a capacidade de criar permalinks “pretty” que irá limpar a URL em um formato maishuman-friendly”.

Existem algumas coisas que precisamos fazer para chegar a este trabalho com Apache no Ubuntu 14.04.

Modificando o Apache para Permitir Regravação de URL

Primeiramente, precisamos modificar o o aquivo virtual host do Apache para o WordPress, para permitir regravação do “.htaccess”. Você poderá fazer isso editando o arquivo virtual host.

Por padrão, o arquivo é o “000-default.conf”, mas seu arquivo pode ser diferente se você criou outro arquivo de configuração diferente. Para editá-lo digite o seguinte comando:

sudo nano /etc/apache2/sites-available/000-default.conf

Dentro desse arquivo, queremos criar algumas coisas. Devemos definir o “ServerName” e criar uma seção diretório onde nós permitiremos as substituições de permalinks. Abaixo da linha “DocumentRoot”, adicione as linhas conforme exemplo abaixo:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ServerName server_domain_name_or_IP
    <Directory /var/www/html/>
        AllowOverride All
    </Directory>
    . . .

Quando tiver terminado, salve e feche o arquivo.

Agora, o próximo passo, nós precisaremos habilitar o módulo de regravação, o qual te permitira modificar as URLs. Você poderá fazer isso digitando:

sudo a2enmod rewrite

E então reinicie o Apache:

sudo service apache2 restart

 

Criar um arquivo “.htaccess”

Agora que o Apache está configurado para permitir regravação através dos arquivos “.htaccess”, nós precisaremos criar um arquivo atual.

Você precisa criar este arquivo na raiz através deste comando:

touch /var/www/html/.htaccess

Este será criado com seu nome de usuário e grupo de usuários. Precisamos do servidor web para ser o proprietário do grupo, porém, para isso, devemos ajustar a propriedade, digitando:

sudo chown :www-data /var/www/html/.htaccess

Agora nós temos a correta propriedade (ownership) deste arquivo.

Poderemos ter que ajustar as permissões no entanto. Isso depende de como você prefere trabalhar. WordPress irá reescrever as regras necessárias para você. Se ele tem permissões de gravação para esse arquivo, ele pode implementar as regras automaticamente. Se isso não acontecer, você terá que editar manualmente esse arquivo para adicionar as regras corretas.

Qual a configuração que você escolher depende de quanto você valoriza a conveniência sobre segurança. Permitir que o servidor web grave o acesso a este arquivo será certamente mais conveniente, mas alguns dizem que é um risco de segurança desnecessário.

Se você quiser que o WordPress atualize automaticamente este arquivo com regras de reescrita, você pode garantir que ele tenha as permissões corretas para fazê-lo digitando:

chmod 664 /var/www/html/.htaccess

Se você quiser atualizar esse arquivo manualmente por causa de um ganho de segurança pequeno, você pode permitir que o servidor web apenas privilégios de leitura, escrevendo:

chmod 644 /var/www/html/.htaccess

 

Mude as Configurações de Permalink no WordPress

Quando terminar de fazer as alterações do lado do servidor, você pode facilmente ajustar as configurações permalink através da interface de administração do WordPress.

No lado esquerdo, no menu Configurações, você pode selecionar Permalinks:

perma_settings

Você pode escolher qualquer uma das configurações pré-configuradas para organizar URLs, ou você pode criar o seu próprio.

perma_options

Quando você tiver feito sua seleção, clique em “Salvar alterações” para gerar as regras de reescrita.

Se você permitiu que o servidor web acesso de gravação para o arquivo htaccess, você verá uma mensagem como esta:

 

perma_update

Se você não permitir que o servidor web acesso de gravação para o arquivo htaccess, você será direcionado a reescrever as regras que você precisa para adicionar ao arquivo manualmente.

Copie as linhas que o WordPress dá a você e, em seguida, edite o arquivo em seu servidor:

nano /var/www/html/.htaccess

Isto deverá lhe dar a mesma funcionalidade.

 

Conclusão

Agora você deve ter uma instância WordPress instalada e funcionando em seu Ubuntu 14.04 LTS. 

 

Abraços.

 

Fontes: WordPress, digitalocean

 

 

 

About Cleuber

Cleuber Silva Hashimoto. Administrador

25 comments

  1. Segui todos os seus passos.. porém ao acessar o servidor via browser, digitando localhost, aparece a seguinte mensagem:

    Forbidden

    You don’t have permission to access / on this server.

    Apache/2.4.7 (Ubuntu) Server at localhost Port 80

    • Fiz a instalação que passei no artigo passo a passo aqui e comigo está tudo ok.
      Talvez contigo alguma coisa faltou, provavelmente permissão.
      Reveja o final do passo 3 e o passo 4, que trata de permissões.
      Depois reinicie o Apache com o comando:
      sudo service apache2 restart
      Depois disso tente novamente acessar o site digitando seu IP no navegador.
      Valeu.

  2. Valeu ai, ajudou de mais

  3. Cleuber,

    Creio que muitas pessoas passam pelo seu site, usufruem dos seus posts, mas por um motivo ou outro acabam não comentando.

    Pra fazer diferente, estou postando meus agradecimentos pelo seu post, cara. Me ajudou MUITO. Aluguei um vps, coloquei o Ubuntu 14.04LTS e comecei na linha de comando, do zero. Em menos de 2hs de leitura, execução de comandos e configurações, estou com o LAMP e meu wordpress instalado no meu vps, rodando lindamente. Sei que vc usou a fonte digitalocean, mas percebo o trabalho que teve para testar o tutorial, traduzir e colocar no seu blog. Encontrei apenas dois pequenos erros nas saídas dos comandos, mas creio que por falta de experiência da minha parte. Rapidamente corrigi a situação.

    O que mais me impressionou foi o capricho que vc teve de organizar todos os comandos para que os mesmos não gerassem erros devido um espaço a mais ou a menos, letras erradas ou algo do tipo. TODOS os comandos foram inseridos e retornaram corretamente seus resultados, exceto, claro, os dois pontos que citei acima que pode ser, como eu disse, falta de experiência da minha parte.

    A organização e leitura leve é fenomenal.

    Mais uma vez meu muito obrigado!!!

    • Obrigado Wesley!
      Acho que você é a primeira pessoa que elogia o post pelos detalhes. Realmente um artigo desta importância, eu tive que pesquisar em diversos sites, fazer laboratório e se funcionasse bem, então postar com cuidado. Se tratando de posts que são tutoriais, procuro sempre postar coisas que realizo em meu sistema operacional, com prints que tiro de minha própria tela e com minha descrição, ou tradução…kkk, nada de apenas Ctrl+C e Ctrl+V, e tradução direta pelo “google translator” (que geralmente fica horrível, e percebo em alguns outros sites).
      Mas é isso aí, obrigado mesmo! Se puder, curta minha página do Facebook e repasse aos amigos!
      Valeu!

  4. No passo 4 tem a criação do usuario lab.
    Como foi feito essa criação? Essa parte eu nao consegui aplicar.

    • Oi Gedean. O passo 4 trata de copiar arquivos e dar permissões ao usuário lab, que no caso é o meu usuário, você deve realizar o procedimento aplicando-o ao seu usuário.
      Não precisa criar o usuário lab para ficar igual ao meu, mas caso queira, o comando é “sudo adduser lab”, Se você estiver usando o Ubuntu desktop, poderá fazer isso nas Configurações do Sistema/Contas de Usuário.

  5. Ótimo post, além de bem feito é muito útil! Parabéns e sucesso!!!

  6. cara fiz tudo isso que você mencionou, ai quando tento acessar localhost/wordpress aparece uma mensagem :
    Erro ao estabelecer uma conexão com o Banco de Dados
    OUTRO FATOR ESTRANHO:
    instalei o LAMP
    quando acesso o localhost/phpmyadmin, la aparece no status/todas variaveis de status:
    Aborted connectsDocumentação 6 O número de tentativas de conexão sem sucesso ao servidor MySQL
    se puder me ajudar?

    • Quando você criou o banco de dados, você deve ter criado um login e senha de conexão. Esse erro de conexão com o banco denota que as credenciais que você está usando para tentar acessá-lo não são as mesmas que você cadastrou na instalação do banco.
      Sugiro que você recomece o tutorial, anotando os dados de criação de user e senha do banco e depois use-os. É simples assim, não tem como dar errado.

      Abraço.

  7. Muito bom tutorial, parabéns! li tudo do começo ao fim e desisti, é complicado demais!
    vou esquecer o WordPress.

    • Valeu Geraldo.
      Bom, a instalação pode ser um pouco complicada, mas uma vez instalado, não precisará se preocupar.
      Agora, recomendo muito a criação de sites usando o WordPress, porém usando um serviço web já disponível, como o da GoDaddy por exemplo, onde você apenas começará a criar seu site.
      Este tipo de instalação do tutorial é interessante principalmente para criar site e portais de serviços que serão acessados internamente na lan de empresas ou em casa.
      Abraço.

  8. Post simplesmente maravilhoso! Ajudou demais aqui. Vlw demais!

  9. Boa noite, segui os passsos e consegui instalar o WordPress, obrigado. Me ajudou muito, mais ainda tenho que fazer alguns reparos e por isso estou seguindo por etapa.

    Mas no WordPress que instalei não esta em português e procurei em Settings>Sites Language e só tem a opção EUA.

    Como solucionar a Tradução do WordPress? Desde já agradeço pelas informações… abraços!

  10. Olá!

    Normalmente na internet sou um usuário “egoista/atarefado”, aquele que entra em um tutorial, aplica o aprendido e vai fazer outra coisa. Não tenho o costume de comentar, mas desta vez abri uma exceção. Esta visível o esforço e o tempo que gastou para preparar este, e mesmo que tenha algum ganho em receber visitas, a sua dedicação é louvável! Está de parabéns e te desejo muito sucesso, apesar de perceber pela dedicação aqui demonstrada, que seu sucesso virá naturalmente!

    Tens a minha admiração!

    Almir

    • Opa, obrigado Almir!
      Realmente eu fiz este site para compartilhar as coisas que eu vivo na TI, e também para minha própria consulta posterior quando esqueço algo (risos). Então quando preciso instalar certo tipo de sistema ou qualquer outra coisa, pego prints e faço um registro de todos os passos para que depois eu possa compartilhar com vocês (e comigo mesmo…risos). Quando preciso aprender algo que preciso fazer, sempre faço um estudo minucioso na internet em busca dos melhores sites e tutoriais existentes (a maioria em inglês que traduzo), para compilar o melhor que existe, realizo os procedimentos em laboratório com máquinas virtuais, e posto algo que funcione mesmo. Realmente leva mais tempo registrando e descrevendo os passos do que apenas instalando/configurando…kkk.
      Obrigado pelo reconhecimento e pelas palavras de apoio!

      Abraço

      Cleuber

  11. Cleuber, esse totorial é show de bola, não encherei de linguiça meu comentário, apenas: MUITO OBRIGADO!

  12. Michael Felipe

    Fiquei com dúvida na parte do usuário “lab”. Este é o usuário do banco de dados? Ou é o usuário do sistema operacional? Pode me esclarecer essa parte? Obrigado.

  13. Olá. Gostaria de checar se esse tutorial é apenas para hospedagem local. Sou bem nova no uso do linux e do wordpress e só me atentei pra isso no final do processo. Até o que consegui encontrar de info, parece que hospedar localmente só é indicado pra testes. Procede? Meu projeto é pequeno, não viso muitoa acessos, mas por ser leiga tenho a impressão que estaria me expondo em questões de segurança. O que mudaria se fosse pra instalar num serviço de hospedagem pago?

    Eu também fiquei parada na questão do usuário “lab” Achei aqui nos comentários a solução. Gostaria de sugerir a inclusão de que se trata do usuário Ubuntu no tutorial.

    Obrigada por nos orientar, tutorial bem organizado.

    • Quando você contrata uma hospedagem de site, vc já pode optar se sua hospedagem vai ser WordPress, Joomla, IIS, e etc. Para cada tipo o provedor sobe um serviço do tipo escolhido em seu ambiente de datacenter virtualizado. Agora se você quiser contratar um servidor Linux dedicado, daí o server vem com a distribuição Linux escolhida, e você poderá instalar o WordPress por si mesmo, e poderá usar esses mesmos passos para instalar o WordPress e subir seus sites. Claro que esse segundo modelo é mais caro. Já sobre o usuário lab, está explicitado que se trata de um usuário do sistema operacional na forma do uso do comando “visudo” já que o mesmo é usado para alterar privilégios em usuários do sistema.

      Abraço.

Leave a Reply

x

Check Also

Elementary OS 6 Odin Lançado – Confira as Novidades

Desenvolver um sistema operacional não é ...