O PHP7 está disponível no Ubuntu 16.04 LTS Xenial Xerus e você não precisa usar PPA de terceiros para instalar o PHP7 no Ubuntu 16.04. Neste tutorial, vamos ver como instalar o Nginx, MariaDB e PHP7-FPM (LEMP stack) no Ubuntu 16.04 LTS Xenial Xerus.
Atualizando Ubuntu 16.04 LTS
Antes de instalar qualquer software, é sempre uma boa ideia atualizar o repositório e pacotes de software. Se estiver instalando em um servidor real, você pode usar o SSH, se estiver usando o Ubuntu 16.04 digite os comandos abaixo.
sudo apt update
sudo apt upgrade
Instalando o Nginx Web Server
Nginx é um servidor web de alto desempenho. Ele também pode ser usado como um Proxy reverso. Digite o comando abaixo para instalar o Nginx Web server:
sudo apt install nginx
Depois de instalado, podemos ativar o Nginx para iniciar automaticamente quando o Ubuntu for inicializado executando o seguinte comando:
sudo systemctl enable nginx
Em seguida, inicie o Nginx com este comando:
sudo systemctl start nginx
Agora verifique seu status:
systemctl status nginx
Exemplo de saída:
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tues 2017-05-16 08:21:05 EDT; 2s ago
Main PID: 298 (nginx)
CGroup: /system.slice/nginx.service
??298 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
??299 nginx: worker process
Você pode usar o seguinte comando para buscar o endereço IP público do servidor Ubuntu 16.04:
sudo apt install curl
curl http://icanhazip.com
sudo chown www-data /usr/share/nginx/html -R
Instalando o MariaDB no Ubuntu
MariaDB é um excelente alternativa ao MySQL. Ele é desenvolvido por ex-membros da equipe do MySQL que se preocupam com a possibilidade de que a Oracle possa transformar o MySQL em um produto de código fechado. Muitas distribuições Linux (Arch Linux, Fedora etc), empresas e organizações (Google, Wikipedia) migraram para MariaDB. Então vamos instalar o MariaDB em vez do MySQL.
sudo apt install mariadb-server mariadb-client
Depois de instalado, o servidor MariaDB deve ser iniciado automaticamente. Use systemctl para verificar seu status:
systemctl status mysql
Exemplo de saída:
Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)
Active: active (running) since Tues 2017-05-16 08:21:05 EDT; 2s ago
Docs: man:systemd-sysv-generator(8)
Se não estiver em execução, inicie-o com este comando:
sudo systemctl start mysql
Execute o comando abaixo para fazer com que o MariaDB inicie automaticamente quando o Ubuntu 16.04 for reinicializado:
sudo systemctl enable mysql
Agora execute o script de segurança pós-instalação:
sudo mysql_secure_installation
Instalando o PHP7 no Ubuntu
Digite o seguinte comando para instalar o PHP7 e as extensões do PHP7:
sudo apt install php7.0-fpm php7.0-mbstring php7.0-xml php7.0-mysql php7.0-common php7.0-gd php7.0-json php7.0-cli php7.0-curl
As extensões PHP são comumente necessárias para sistemas de gerenciamento de conteúdo (CMS) como o WordPress. Por exemplo, se a sua instalação não tiver php7.0-xml, algumas das suas páginas do site do WordPress podem estar em branco e você pode encontrar um erro no registro de erros do Nginx, como:
Agora vamos iniciar o php7.0-fpm, para isso, execute o comando abaixo:
sudo systemctl start php7.0-fpm
Vamos agora verificar status:
systemctl status php7.0-fpm
Exemplo de saída:
Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor pre
set: enabled)
Active: active (running) since Tues 2017-05-16 08:21:05 EDT; 2s ago
Criando um arquivo de bloqueio de servidor padrão do Nginx
sudo rm /etc/nginx/sites-enabled/default
Em seguida, crie um novo arquivo padrão no diretório /etc/nginx/conf.d/:
sudo nano /etc/nginx/conf.d/default.conf
Cole o seguinte texto para o arquivo. Substitua o IP 12.13.14.15 pelo o seu IP do servidor real:
server {
listen 80;
listen [::]:80;
server_name 12.13.14.15;
root /usr/share/nginx/html/;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
location ~ /\.ht {
deny all;
}
}
Salve e feche o arquivo. Em seguida, teste a configuração do nginx e recarregue-a:
sudo nginx -t
sudo systemctl reload nginx
Testando o PHP 7
Para testar a versão cli do PHP7, basta digitar este comando:
php --version
Exemplo de saída:
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2017, by Zend Technologies
Para testar o PHP-FPM, primeiro crie um arquivo test.php no diretório raiz da Web:
sudo nano /usr/share/nginx/html/test.php
Cole o seguinte código PHP no arquivo:
<?php phpinfo(); ?>