DEV Community

Cover image for Instalando LEMP no Deepin 25: Nginx, MySQL, PHP 8.5 e Composer
Jean Dias
Jean Dias

Posted on

Instalando LEMP no Deepin 25: Nginx, MySQL, PHP 8.5 e Composer

O LEMP é uma das stacks mais utilizadas para aplicações web em Linux. O nome representa:

  • Linux
  • Engine X — Nginx
  • MySQL
  • PHP

Neste artigo vamos configurar um ambiente LEMP moderno no Deepin 25, incluindo PHP-FPM, extensões normalmente utilizadas por frameworks como Laravel e Symfony, Composer e uma configuração básica do Nginx.

Stack utilizada

A configuração recomendada neste guia é:

Deepin:   25.x
Nginx:    1.30.x Stable
PHP:      8.5
PHP-FPM:  8.5
MySQL:    8.4 LTS
Composer: 2.x
Enter fullscreen mode Exit fullscreen mode

Em outubro de 2026, o PHP 8.5 continua sob suporte ativo e recebe correções regulares. O PHP 8.6 ainda não é uma versão estável para produção.

O Nginx possui duas linhas principais de distribuição: stable e mainline. Para servidores convencionais, utilizaremos a linha stable. A versão estável atual é da série 1.30.x.

Para banco de dados, utilizaremos o MySQL 8.4 LTS, uma escolha conservadora e adequada para aplicações PHP que precisam de estabilidade e ampla compatibilidade. O repositório oficial do MySQL continua disponibilizando a série 8.4 LTS.


1. Atualizar o Deepin

Antes de instalar os serviços, atualize a lista de pacotes e os pacotes já instalados:

sudo apt update
sudo apt upgrade -y
Enter fullscreen mode Exit fullscreen mode

Também podemos instalar algumas ferramentas que serão utilizadas durante a configuração:

sudo apt install -y \
    curl \
    wget \
    ca-certificates \
    gnupg \
    lsb-release \
    unzip
Enter fullscreen mode Exit fullscreen mode

Verifique a versão do sistema:

cat /etc/os-release
Enter fullscreen mode Exit fullscreen mode

No Deepin 25 você encontrará o repositório da série crimson.

O Deepin 25 utiliza oficialmente seu próprio repositório:

deb https://community-packages.deepin.com/deepin/beige/ crimson main commercial community
Enter fullscreen mode Exit fullscreen mode

Não substitua os repositórios do Deepin por repositórios Debian ou Ubuntu indiscriminadamente. Isso pode causar conflitos de dependências.


2. Instalar o Nginx

Começaremos instalando o servidor web:

sudo apt install -y nginx
Enter fullscreen mode Exit fullscreen mode

Inicie o serviço:

sudo systemctl start nginx
Enter fullscreen mode Exit fullscreen mode

Configure para iniciar automaticamente junto com o sistema:

sudo systemctl enable nginx
Enter fullscreen mode Exit fullscreen mode

Confira o status:

sudo systemctl status nginx
Enter fullscreen mode Exit fullscreen mode

A saída deve indicar:

Active: active (running)
Enter fullscreen mode Exit fullscreen mode

Verifique também a versão instalada:

nginx -v
Enter fullscreen mode Exit fullscreen mode

Você pode testar diretamente no navegador:

http://localhost
Enter fullscreen mode Exit fullscreen mode

Ou através do endereço IP da máquina.

Para descobrir o IP:

hostname -I
Enter fullscreen mode Exit fullscreen mode

3. Testar a configuração do Nginx

Uma regra importante ao administrar o Nginx é testar a configuração antes de reiniciar ou recarregar o serviço:

sudo nginx -t
Enter fullscreen mode Exit fullscreen mode

O resultado esperado é semelhante a:

syntax is ok
test is successful
Enter fullscreen mode Exit fullscreen mode

Depois disso podemos recarregar:

sudo systemctl reload nginx
Enter fullscreen mode Exit fullscreen mode

Isso é preferível a reiniciar o serviço sempre que modificarmos somente arquivos de configuração.


4. Instalar o PHP

O PHP 8.5 foi lançado em novembro de 2025 e possui suporte ativo até 31 de dezembro de 2027 e atualizações de segurança até 31 de dezembro de 2029.

Antes de prosseguir, verifique quais versões estão disponíveis no Deepin:

apt-cache policy php
apt-cache search php8 | grep fpm
Enter fullscreen mode Exit fullscreen mode

Se o repositório do sistema disponibilizar PHP 8.5, instale:

sudo apt install -y \
    php8.5 \
    php8.5-cli \
    php8.5-fpm \
    php8.5-common \
    php8.5-mysql \
    php8.5-curl \
    php8.5-mbstring \
    php8.5-xml \
    php8.5-zip \
    php8.5-gd \
    php8.5-bcmath \
    php8.5-intl \
    php8.5-opcache
Enter fullscreen mode Exit fullscreen mode

Essas extensões cobrem grande parte das necessidades de aplicações PHP modernas, incluindo Laravel e Symfony.

Importante: não recomendo adicionar automaticamente o repositório packages.sury.org apontando para bookworm, trixie ou outro codename Debian apenas para obter uma versão mais nova do PHP. O Deepin 25 utiliza crimson e misturar repositórios de distribuições diferentes pode causar conflitos de bibliotecas.


5. Verificar o PHP

Confira a versão:

php -v
Enter fullscreen mode Exit fullscreen mode

A saída deve ser semelhante a:

PHP 8.5.x (cli)
Enter fullscreen mode Exit fullscreen mode

Veja os módulos carregados:

php -m
Enter fullscreen mode Exit fullscreen mode

Também podemos verificar especificamente algumas extensões:

php -m | grep -E 'curl|mbstring|mysqli|pdo_mysql|xml|zip|gd|intl'
Enter fullscreen mode Exit fullscreen mode

6. Configurar o PHP-FPM

Verifique o serviço:

sudo systemctl status php8.5-fpm
Enter fullscreen mode Exit fullscreen mode

Caso ainda não esteja iniciado:

sudo systemctl enable --now php8.5-fpm
Enter fullscreen mode Exit fullscreen mode

O PHP-FPM normalmente cria um socket semelhante a:

/run/php/php8.5-fpm.sock
Enter fullscreen mode Exit fullscreen mode

Podemos confirmar:

ls -la /run/php/
Enter fullscreen mode Exit fullscreen mode

O socket será utilizado posteriormente pelo Nginx.


7. Configurar o PHP para desenvolvimento

O arquivo principal do PHP utilizado pelo FPM normalmente fica em:

/etc/php/8.5/fpm/php.ini
Enter fullscreen mode Exit fullscreen mode

Faça um backup antes de modificá-lo:

sudo cp \
    /etc/php/8.5/fpm/php.ini \
    /etc/php/8.5/fpm/php.ini.backup
Enter fullscreen mode Exit fullscreen mode

Edite:

sudo nano /etc/php/8.5/fpm/php.ini
Enter fullscreen mode Exit fullscreen mode

Para uma máquina de desenvolvimento, algumas configurações úteis são:

memory_limit = 512M

upload_max_filesize = 64M
post_max_size = 64M

max_execution_time = 120

date.timezone = America/Sao_Paulo
Enter fullscreen mode Exit fullscreen mode

Em desenvolvimento:

display_errors = On
display_startup_errors = On
error_reporting = E_ALL
Enter fullscreen mode Exit fullscreen mode

Em produção, prefira:

display_errors = Off
display_startup_errors = Off
log_errors = On
Enter fullscreen mode Exit fullscreen mode

Depois de alterar:

sudo systemctl restart php8.5-fpm
Enter fullscreen mode Exit fullscreen mode

8. Instalar o Composer

Atualmente o Composer está na série 2.x; em outubro de 2026, a versão estável publicada é da série 2.10.

Baixe o instalador:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Enter fullscreen mode Exit fullscreen mode

Baixe dinamicamente a assinatura oficial:

EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
Enter fullscreen mode Exit fullscreen mode

Calcule o hash do arquivo:

ACTUAL_CHECKSUM="$(php -r 'echo hash_file("sha384", "composer-setup.php");')"
Enter fullscreen mode Exit fullscreen mode

Valide:

if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
    >&2 echo 'ERROR: Invalid Composer installer checksum'
    rm composer-setup.php
    exit 1
fi
Enter fullscreen mode Exit fullscreen mode

Instale globalmente:

sudo php composer-setup.php \
    --install-dir=/usr/local/bin \
    --filename=composer
Enter fullscreen mode Exit fullscreen mode

Remova o instalador:

rm composer-setup.php
Enter fullscreen mode Exit fullscreen mode

Confira:

composer --version
Enter fullscreen mode Exit fullscreen mode

9. Instalar o MySQL

Para novos servidores, uma escolha bastante segura é o MySQL 8.4 LTS.

Antes de instalar, verifique o pacote disponível:

apt-cache policy mysql-server
Enter fullscreen mode Exit fullscreen mode

Se o Deepin disponibilizar diretamente o MySQL:

sudo apt install -y mysql-server mysql-client
Enter fullscreen mode Exit fullscreen mode

Depois da instalação:

sudo systemctl enable --now mysql
Enter fullscreen mode Exit fullscreen mode

Verifique:

sudo systemctl status mysql
Enter fullscreen mode Exit fullscreen mode

E consulte a versão:

mysql --version
Enter fullscreen mode Exit fullscreen mode

10. MySQL 8.4 LTS através do repositório oficial

Se você precisa especificamente do MySQL 8.4 LTS e a versão não estiver disponível no repositório do Deepin, o MySQL disponibiliza seu próprio repositório APT.

A Oracle disponibiliza atualmente um pacote mysql-apt-config responsável por configurar as versões oferecidas pelo repositório.

Contudo, existe uma consideração importante:

O MySQL declara suporte oficial para Debian e Ubuntu. O Deepin é uma distribuição Debian-like, mas não aparece explicitamente entre as plataformas suportadas pelo repositório APT do MySQL.

Por isso, em uma máquina de produção, prefira o pacote validado pelo Deepin ou teste cuidadosamente a compatibilidade antes de adicionar o repositório da Oracle.


11. Executar o mysql_secure_installation

Após instalar o MySQL, execute:

sudo mysql_secure_installation
Enter fullscreen mode Exit fullscreen mode

A ferramenta permite configurar itens como:

  • política de senha;
  • usuários anônimos;
  • acesso remoto ao usuário root;
  • banco de dados test;
  • privilégios.

As perguntas apresentadas podem variar dependendo da versão instalada.


12. Acessar o MySQL

Em sistemas Debian-like, o usuário root do MySQL pode utilizar autenticação através do próprio sistema operacional.

Nesse caso:

sudo mysql
Enter fullscreen mode Exit fullscreen mode

13. Criar um usuário MySQL para desenvolvimento

Em vez de utilizar root nas aplicações, crie um usuário específico.

Entre no MySQL:

sudo mysql
Enter fullscreen mode Exit fullscreen mode

Crie o banco:

CREATE DATABASE app
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;
Enter fullscreen mode Exit fullscreen mode

Crie o usuário:

CREATE USER 'app'@'localhost'
IDENTIFIED BY 'uma-senha-forte';
Enter fullscreen mode Exit fullscreen mode

Dê acesso somente ao banco necessário:

GRANT ALL PRIVILEGES
ON app.*
TO 'app'@'localhost';
Enter fullscreen mode Exit fullscreen mode

Finalize:

FLUSH PRIVILEGES;
Enter fullscreen mode Exit fullscreen mode

Saia:

EXIT;
Enter fullscreen mode Exit fullscreen mode

Teste:

mysql -u app -p
Enter fullscreen mode Exit fullscreen mode

14. Criar o primeiro Virtual Host

Vamos criar um projeto em:

/var/www/app
Enter fullscreen mode Exit fullscreen mode

Crie o diretório:

sudo mkdir -p /var/www/app/public
Enter fullscreen mode Exit fullscreen mode

Altere o proprietário:

sudo chown -R $USER:$USER /var/www/app
Enter fullscreen mode Exit fullscreen mode

Crie um arquivo PHP de teste:

nano /var/www/app/public/index.php
Enter fullscreen mode Exit fullscreen mode

Adicione:

<?php

phpinfo();
Enter fullscreen mode Exit fullscreen mode

15. Configurar Nginx + PHP-FPM

Dependendo do pacote do Nginx presente no Deepin, você poderá ter uma estrutura semelhante a:

/etc/nginx/sites-available
/etc/nginx/sites-enabled
Enter fullscreen mode Exit fullscreen mode

Crie:

sudo nano /etc/nginx/sites-available/app
Enter fullscreen mode Exit fullscreen mode

Adicione:

server {
    listen 80;
    listen [::]:80;

    server_name app.test;

    root /var/www/app/public;

    index index.php index.html;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;

        fastcgi_pass unix:/run/php/php8.5-fpm.sock;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $document_root;
    }

    location ~ /\.ht {
        deny all;
    }
}
Enter fullscreen mode Exit fullscreen mode

Ative:

sudo ln -s \
    /etc/nginx/sites-available/app \
    /etc/nginx/sites-enabled/app
Enter fullscreen mode Exit fullscreen mode

Teste:

sudo nginx -t
Enter fullscreen mode Exit fullscreen mode

Se estiver correto:

sudo systemctl reload nginx
Enter fullscreen mode Exit fullscreen mode

16. Configurar domínio local

Edite:

sudo nano /etc/hosts
Enter fullscreen mode Exit fullscreen mode

Adicione:

127.0.0.1 app.test
Enter fullscreen mode Exit fullscreen mode

Agora abra:

http://app.test
Enter fullscreen mode Exit fullscreen mode

A página do phpinfo() deverá aparecer.


17. Remover o phpinfo()

Não mantenha phpinfo() disponível em um servidor real.

Ele revela diversas informações do ambiente, como:

  • versão do PHP;
  • módulos instalados;
  • caminhos internos;
  • configurações do servidor;
  • variáveis de ambiente.

Depois do teste:

rm /var/www/app/public/index.php
Enter fullscreen mode Exit fullscreen mode

18. Testar MySQL através do PHP

Crie novamente:

nano /var/www/app/public/index.php
Enter fullscreen mode Exit fullscreen mode

Use:

<?php

$pdo = new PDO(
    'mysql:host=localhost;dbname=app;charset=utf8mb4',
    'app',
    'uma-senha-forte',
);

echo 'LEMP funcionando corretamente.';
Enter fullscreen mode Exit fullscreen mode

Abra:

http://app.test
Enter fullscreen mode Exit fullscreen mode

Se tudo estiver configurado corretamente:

LEMP funcionando corretamente.
Enter fullscreen mode Exit fullscreen mode

Isso confirma o funcionamento de:

Nginx
  ↓
PHP-FPM
  ↓
PHP
  ↓
PDO
  ↓
MySQL
Enter fullscreen mode Exit fullscreen mode

19. Verificar todos os serviços

Nginx:

systemctl status nginx
Enter fullscreen mode Exit fullscreen mode

PHP-FPM:

systemctl status php8.5-fpm
Enter fullscreen mode Exit fullscreen mode

MySQL:

systemctl status mysql
Enter fullscreen mode Exit fullscreen mode

Também podemos verificar de uma vez:

systemctl is-active nginx php8.5-fpm mysql
Enter fullscreen mode Exit fullscreen mode

O esperado é:

active
active
active
Enter fullscreen mode Exit fullscreen mode

20. Conferir as versões instaladas

Execute:

nginx -v
Enter fullscreen mode Exit fullscreen mode
php -v
Enter fullscreen mode Exit fullscreen mode
mysql --version
Enter fullscreen mode Exit fullscreen mode
composer --version
Enter fullscreen mode Exit fullscreen mode

Também podemos executar:

printf "\nNginx:\n"
nginx -v

printf "\nPHP:\n"
php -v

printf "\nMySQL:\n"
mysql --version

printf "\nComposer:\n"
composer --version
Enter fullscreen mode Exit fullscreen mode

21. Estrutura final

Depois de concluir a instalação teremos aproximadamente:

Deepin Linux
│
├── Nginx
│   └── :80 / :443
│
├── PHP 8.5
│   └── PHP-FPM
│       └── /run/php/php8.5-fpm.sock
│
├── MySQL
│   └── :3306
│
└── Composer
    └── /usr/local/bin/composer
Enter fullscreen mode Exit fullscreen mode

Para uma requisição PHP:

Browser
   │
   ▼
Nginx
   │
   ▼
PHP-FPM
   │
   ▼
PHP 8.5
   │
   ▼
MySQL
Enter fullscreen mode Exit fullscreen mode

22. Comandos resumidos

Para referência, os principais comandos da configuração são:

sudo apt update
sudo apt upgrade -y

sudo apt install -y \
    curl \
    wget \
    ca-certificates \
    gnupg \
    lsb-release \
    unzip

sudo apt install -y nginx

sudo systemctl enable --now nginx
Enter fullscreen mode Exit fullscreen mode

PHP, caso PHP 8.5 esteja disponível nos repositórios configurados:

sudo apt install -y \
    php8.5 \
    php8.5-cli \
    php8.5-fpm \
    php8.5-common \
    php8.5-mysql \
    php8.5-curl \
    php8.5-mbstring \
    php8.5-xml \
    php8.5-zip \
    php8.5-gd \
    php8.5-bcmath \
    php8.5-intl \
    php8.5-opcache

sudo systemctl enable --now php8.5-fpm
Enter fullscreen mode Exit fullscreen mode

MySQL:

sudo apt install -y mysql-server mysql-client

sudo systemctl enable --now mysql

sudo mysql_secure_installation
Enter fullscreen mode Exit fullscreen mode

Composer:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
ACTUAL_CHECKSUM="$(php -r 'echo hash_file("sha384", "composer-setup.php");')"

if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
    >&2 echo 'ERROR: Invalid Composer installer checksum'
    rm composer-setup.php
    exit 1
fi

sudo php composer-setup.php \
    --install-dir=/usr/local/bin \
    --filename=composer

rm composer-setup.php
Enter fullscreen mode Exit fullscreen mode

Finalmente:

nginx -v
php -v
mysql --version
composer --version
Enter fullscreen mode Exit fullscreen mode

Com isso temos um ambiente LEMP moderno no Deepin pronto para receber aplicações PHP.

Top comments (1)

Collapse
 
kevinpruett023_kevinpruet profile image
Lee •

Good Post!
I wanna discuss about collaboration with you.
How about you?