Introdução

Neste tutorial, você aprenderá a instalar o WordPress em uma instância recém-criada. Vou demonstrar a instalação em um servidor Ubuntu 14.04. Essas instruções também podem funcionar em versões mais antigas do Ubuntu e do Debian.

Então vamos começar.

Etapa 1: atualizar os pacotes existentes

apt-get update && apt-get upgrade

Etapa dois: instalar o Nginx

O Nginx é um servidor da Web leve e de alto desempenho projetado com o objetivo de fornecer grandes quantidades de conteúdo estático com o uso eficiente dos recursos do sistema. Em contraste com o Apache, o Nginx usa um modelo orientado por evento assíncrono que fornece desempenho mais previsível sob carga.

Vamos adicionar um repositório de terceiros para instalar a versão mais recente do Nginx (1.6.1).

sudo apt-get install python-software-properties
add-apt-repository -y ppa:rtcamp/nginx
sudo apt-get update 
sudo apt-get install nginx
service nginx start

Agora, vamos testar se o servidor está funcionando.

http://YOUR-VPS-IP

Deve levá-lo para a página de destino padrão do Nginx.

Terceiro Passo: Instale o PHP 5.5

O PHP é uma linguagem de script de uso geral de código aberto amplamente utilizada que é especialmente adequada para o desenvolvimento da Web e pode ser incorporada ao HTML.

Vamos instalar a última versão do PHP em nosso servidor.

sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get install php5-common php5-mysqlnd php5-xmlrpc php5-curl php5-gd php5-cli php5-fpm php-pear php5-dev php5-imap php5-mcrypt

Se você quiser verificar sua versão do PHP, execute o seguinte comando:

php -v

Você verá algo assim.

PHP 5.5.16-1+deb.sury.org~trusty+1 (cli) (built: Aug 25 2014 10:24:59)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
withZendOPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

Agora, faremos uma pequena alteração de configuração para tornar nossa configuração mais segura. Abra o arquivo de configuração principal do php5-fpm com privilégios de root:

sudo nano /etc/php5/fpm/php.ini

Pressione Ctrl + W e procure por cgi.fix_pathinfo=. Descomente-o (delete;) e mude de 1 para 0. Após as alterações, a linha deve ficar assim:

cgi.fix_pathinfo=0

Salve ( Ctrl + O ) e feche o arquivo ( Ctrl + X ).

Agora, precisamos apenas reiniciar nosso processador PHP digitando:

sudo service php5-fpm restart

Passo Quatro: Instale o MySQL

Para armazenar e gerenciar bancos de dados, precisamos instalar o MySQL. Você pode instalá-lo facilmente digitando o seguinte no console:

sudo apt-get install mysql-server

Durante o processo de instalação, você será solicitado a definir uma senha root para o MySQL. Uma vez que você tenha definido a senha do root, nós teremos que dizer ao MySQL para gerar a estrutura do diretório onde irá armazenar os bancos de dados.

sudo mysql_install_db

Vamos terminá-lo executando um script de segurança que modificará algumas inseguranças padrão.

sudo mysql_secure_installation

Basta digitar a senha de root do MySQL e digitar nse você não quiser alterá-la. Depois disso, digite ypara cada pergunta.


Definir fuso horário (condicional)

Por padrão, o fuso horário do seu servidor é UTC. Se você estiver vivendo em um fuso horário diferente, poderá alterá-lo digitando o seguinte comando:

sudo dpkg-reconfigure tzdata

Neste ponto, seu servidor LEMP está ativo e em execução.

Etapa 5: Configurando o Nginx para servir o WordPress

Vamos começar nossa instalação do WordPress criando um bloco de servidor Nginx para o nosso site.

sudo nano /etc/nginx/sites-available/wordpress

Cole o seguinte código lá:

server {
        listen 80;

        root /var/www/wordpress;
        index index.php index.html index.htm;

        server_name domain.com;

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/html;
        } 
location / {
                # try_files $uri $uri/ =404;
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }


        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

location = /favicon.ico {
        access_log off;
        log_not_found off;
        expires max;
}
location = /robots.txt {
        access_log off;
        log_not_found off;
}

# Cache Static Files For As Long As Possible
location ~*
\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$
{
        access_log off;
        log_not_found off;
        expires max;
}
# Security Settings For Better Privacy Deny Hidden Files
location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
}
# Return 403 Forbidden For readme.(txt|html) or license.(txt|html)
if ($request_uri ~* "^.+(readme|license)\.(txt|html)$") {
    return 403;
}
# Disallow PHP In Upload Folder
location /wp-content/uploads/ {
        location ~ \.php$ {
                deny all;
        }
}
}

Este é um arquivo de configuração bem ajustado do WordPress com suporte a permalinks. Salve ( Ctrl + O ) e feche o arquivo ( Ctrl + X ). Vamos habilitar o bloco do servidor por meio de links simbólicos:

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress

Em seguida, vamos excluir o bloco do servidor padrão Nginx.

sudo rm /etc/nginx/sites-enabled/default

Agora, vamos ajustar o arquivo de configuração principal do Nginx:

sudo nano /etc/nginx/nginx.conf

Certifique-se de que o número de processos de trabalho seja igual ao número de núcleos em sua instância.

user www-data;
worker_processes 1;
pid /run/nginx.pid;

Adicione o epoll de uso; para o bloco de eventos.

events {
worker_connections 4096;
multi_accept on;
use epoll;
}

Adicione a diretiva client_max_body_size e server_tokens off. Defina keepalive_timeout para 30 segundos.

        ##
        # Basic Settings
        ##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
types_hash_max_size 2048;
server_tokens off;
client_max_body_size  100m;


        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

Certifique-se de que todo o bloco de configurações do Gzip tenha esta aparência:

        ##
        # Gzip Settings
        ##

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

Salve ( Ctrl + O ) e feche o arquivo ( Ctrl + X ). Em seguida, reinicie o servidor:

sudo service nginx restart

Etapa 6: Configurar o PHP

Se você quiser fazer upload de arquivos com mais de 2 MB para o seu site WordPress, você precisa aumentar as variáveis ​​de tamanho de upload do PHP no arquivo php.ini .

sudo nano /etc/php5/fpm/php.ini

Agora, pressione Ctrl + W e pesquise por ” upload_max_filesize ” e defina-o como 100 m .

upload_max_filesize=100M

Faça o mesmo com post_max_size . post_max_size precisa ter o mesmo tamanho ou ser maior que upload_max_filesize .

post_max_size=100M

Reinicie o PHP.

sudo service php5-fpm restart

Passo Sete: Configurando o banco de dados MySQL

Nesta etapa, criaremos o usuário e as tabelas do banco de dados. Vá em frente e faça o login no shell do MySQL:

mysql -u root -p

Faça o login usando sua senha de root do MySQL. Vamos precisar criar um banco de dados do WordPress, junto com um usuário no banco de dados. Primeiro, vamos fazer o banco de dados (fique à vontade para dar o nome que quiser):

CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)

Depois disso, precisamos criar um novo usuário. Por favor, substitua o banco de dados, nome e senha com o que você preferir:

CREATE USER wordpressuser@localhost;
Query OK, 0 rows affected (0.00 sec)

Defina uma senha para seu novo usuário:

SET PASSWORD FOR wordpressuser@localhost= PASSWORD("password");
Query OK, 0 rows affected (0.00 sec)

Conclua concedendo todos os privilégios ao novo usuário. Sem esse comando, o instalador do WordPress não poderá ser iniciado:

GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

Então atualize o MySQL:

FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Saia do shell do MySQL:

exit

Passo Oito: Instalando os arquivos do WordPress

Estamos quase terminando Vamos continuar instalando o WordPress.

Primeiro, navegue até o diretório raiz do site:

mkdir /var/www/
cd /var/www/

Agora, baixe a última versão do WordPress:

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

Extraia do arquivo:

tar -xzvf latest.tar.gz

Dê as permissões /var/www/wordpresspara o www-datausuário. Ele permitirá futuras atualizações automáticas de plugins do WordPress e edição de arquivos com SFTP.

sudo chown -R www-data:www-data wordpress/
sudo usermod -a -G www-data www-data

Você está feito! Seu novo site WordPress está pronto agora. Basta navegar para o seu site e finalizar a instalação.