· Linux 8 Comentários
Quando necessitamos de criar sites/conteúdos Web, temos de possuir um ambiente de desenvolvimento que tenha suporte para as tecnologias nas quais vamos desenvolver os nossos sites.
No Pplware já apresentamos alguns servidores/plataformas Web mas o nosso tutorial de hoje tem como objetivo ensinar a instalar o Nginx com suporte para PHP 7 e MySQL 5.7. Vamos a isso?
O Nginx é um servidor HTTP (Web) gratuito, open-source e com alta performance. O Nginx foi desenvolvido pelo programador russo Igor Sysoev em 2005 e tinha como principal objetivo ser um servidor estável, simples de configurar e que necessitasse de poucos recursos ao nível de hardware.
Vamos considerar que a máquina onde vamos instalar o servidor web tem o IP: 192.168.1.90
Para começar vamos abrir o terminal e uma vez que vamos necessitar de privilégios de root (várias vezes) vamos executar o seguinte comando:
su
apt-get -y install mysql-server mysql-client
Durante a instalação devem indicar uma password de acesso ao MySQL.
Devem ainda garantir ainda a melhor segurança do serviço. Para tal executem o seguinte comando:
/usr/bin/mysql_secure_installation
Durante a configuração, devem seguir os seguintes passos:
Primeiro devem desinstalar por completo o apache2
service apache2 stop update-rc.d -f apache2 remove apt-get remove apache2
Instalar o Nginx no Ubuntu é muito simples. Para tal basta inserir no terminal o seguinte comando:
apt-get install nginx
Para iniciar o nginx devem executar o seguinte comando:
service nginx start
Nota: No Ubuntu, a directoria por omissão para colocar os sites é/var/www/html.
Para que o PHP7 funcione correctamente no Ubuntu é necessário instalar o PHP-FPM (PHP-FPM (FastCGI Process Manager) que é uma alternativa ao PHP FastCGI. Para instalar o php7-fpm basta executar o seguinte comando:
apt-get -y install php7.0-fpm
Configuração
Vamos agora proceder a algumas configurações a nível de vlhosts. Para isso vamos abrir o vhost por omissão que se encontra em /etc/nginx/sites-available/default e definir as seguintes alterações:
[…]
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don’t use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
#
location ~ /.ht {
deny all;
}
}
[…]
Depois de realizadas as configurações devemos recarregá-las executando para isso o comando:
service nginx reload
Devem ainda aceder ao ficheiro /etc/php/7.0/fpm/php.ini e definir cgi.fix_pathinfo=0;
Depois da alterações fazemos reload ao PHP-FPM
service php7.0-fpm reload
Para testar vamor criar um ficheiro info.php
nano /var/www/html/info.php
e colocar o seguinte código:
<!–?php phpinfo(); ?–>
Em seguida abrimos o browser e inserimos o endereço http://localhost/info.php. O resultado deverá ser idêntico ao que aparece na imagem seguinte:
Para que o PHP tenho suporte para MySQL devem executar o seguinte comando:
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext
Para finalizar voltem a fazer reload ao PHP-FPM
service php7.0-fpm reload
Acedendo a http://localhost/info.php já devem ver que agora o servidor nginx já tem suporte para MySQL. E está feito. Como tiveram a oportunidade de ver a instalação/configuração do servidor Nginx requer algum trabalho (assim como outros servidores Web), mas no final o trabalho vale bem a pena já que o Nginx demonstrou uma boa performance e estabilidade. Ficamos a aguardar o vosso feedback.
Este artigo tem mais de um ano
Acompanhe o Pplware no Google Notícias
Proponha uma correção, faça uma sugestão
Autor: Pedro Pinto
9 Out, 2023
15 Out, 2023
21 Mai, 2023
Olá, Qual a grande diferença entre Apache e NGINX?
Não existe grande diferença, na verdade são muito idênticos, talvez em conteúdo estático o nginx seja mais forte, mas não muito.
O nginx tem alguns recursos interessantes como media streaming e reverse proxying para protocolos não HTTP.
O apache tem de bom o ficheiro de configuração .htaccess que é bastante conveniente para abilitar/desabilitar features como por exemplo failover (404).
Quando queres obter um alto rendimento em sites com muitos acessos podes usar uma combinação de ambos sendo que o papel de load balancing fica a cargo do nginx. Mas em regra geral ficas bem servido com qualquer um dos dois.
É sempre uma boa politica num tutorial mandarem as pessoas saltarem para um terminal root em vez de usarem um sudo xD
ironic
Não é preocupante neste caso.
Não entendi o motivo de ser necessário remover completamente o Apache. Ambos podem trabalhar juntos sim. Já vi abordagens onde um serve conteúdo estático e outro dinâmico.
descomentar
para
Para quem tem o PHP 5 já instalado pode seguir estas instruções
https://askubuntu.com/questions/705880/how-to-install-php-7
Também tem instruções para o phpMyAdmin
O NGINX é muito bom mas apenas uso o Apache porque tem o .htaccess que me dá imenso jeito. Há algo parecido para o nginx?
Pplware já agora só para completar deveriam ensinar a instalar e configurar o phpmyadmin hehe
O seu endereço de email não será publicado.
You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*
Também se pode inscrever sem comentar.
PUB
PUB