Central de Ajuda

Guia da Central de Ajuda

O que é PHP e como desenvolver, configurar e publicar uma aplicação com segurança

PHP é uma linguagem de programação de código aberto, de uso geral e especialmente popular no desenvolvimento web. O código PHP é executado no servidor: ele pode validar dados, consultar bancos, iniciar sessões, enviar e-mails e gerar HTML ou JSON. O navegador recebe o resultado, não o código-fonte PHP. WordPress, WHMCS e muitos sistemas de gestão são construídos com essa tecnologia.

PHP, HTML, CSS e JavaScript: qual é a diferença?

TecnologiaPapel mais comumOnde executa
HTMLEstrutura e conteúdo da páginaNavegador
CSSAparência e layoutNavegador
JavaScriptInteratividade e também aplicações de servidorNavegador ou runtime
PHPRegras, integrações, sessões, banco e geração da respostaServidor

Uma página pode combinar as quatro tecnologias. O PHP monta a resposta no servidor, enquanto HTML, CSS e JavaScript formam a experiência entregue ao visitante.

Primeiro exemplo seguro

<?php
declare(strict_types=1);

$nome = $_GET['nome'] ?? 'visitante';
echo 'Olá, ' . htmlspecialchars($nome, ENT_QUOTES, 'UTF-8');

htmlspecialchars() transforma caracteres especiais antes de inserir um valor não confiável no HTML, reduzindo o risco de XSS nesse contexto. A proteção correta depende do destino: HTML, atributo, URL, JavaScript, SQL e shell exigem técnicas diferentes. Nunca copie entrada do usuário diretamente para uma consulta ou comando.

Estrutura mínima de um projeto

Em aplicações modernas, mantenha somente o diretório público acessível pela web. Código, dependências, arquivos de ambiente, logs e backups devem ficar fora do document root ou ser bloqueados pelo servidor. Frameworks normalmente usam um controlador frontal como public/index.php.

projeto/
??? public/
?   ??? index.php
??? src/
??? config/
??? storage/
??? vendor/
??? composer.json
??? composer.lock

Escolher a versão do PHP no cPanel

  1. Abra Software > MultiPHP Manager.
  2. Marque o domínio correto.
  3. Selecione uma versão suportada pela hospedagem e pela aplicação.
  4. Aplique e teste as páginas públicas, login, tarefas agendadas e integrações.
  5. Consulte o log de erros e reverta se houver incompatibilidade.

Não escolha uma versão apenas por ser a mais nova ou por um tutorial antigo recomendá-la. Confira os requisitos do sistema, plugins e bibliotecas e use uma versão que ainda receba correções de segurança. Em VPS, planeje atualização do runtime e das extensões como parte da manutenção do servidor.

Configurações importantes

O MultiPHP INI Editor pode ajustar diretivas permitidas por domínio. Entre as mais conhecidas estão memory_limit, upload_max_filesize, post_max_size, max_execution_time, date.timezone e exibição de erros. O upload efetivo depende de vários limites; post_max_size deve comportar a requisição completa.

Não exiba erros em produção. Use display_errors=Off, registre falhas em local protegido e entregue ao visitante uma mensagem genérica. Logs podem revelar caminhos, consultas e dados sensíveis.

Extensões e Composer

Extensões como mbstring, intl, curl, openssl, pdo_mysql, zip ou gd dependem da aplicação. No cPanel, as disponíveis são administradas pelo provedor. Em VPS, instale apenas pacotes da versão ativa e reinicie o serviço apropriado quando necessário.

Composer gerencia bibliotecas PHP. Versione composer.json e composer.lock, não edite vendor manualmente e faça a instalação de produção sem pacotes de desenvolvimento:

composer validate
composer install --no-dev --prefer-dist --optimize-autoloader

Execute Composer como o usuário da aplicação, nunca como root em um diretório publicado. Revise alertas de segurança e licenças das dependências antes de atualizar.

Banco de dados com PDO e parâmetros

<?php
$pdo = new PDO($dsn, $usuario, $senha, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);

$consulta = $pdo->prepare('SELECT id, nome FROM clientes WHERE email = ?');
$consulta->execute([$email]);
$cliente = $consulta->fetch(PDO::FETCH_ASSOC);

Prepared statements separam dados da instrução SQL e ajudam a prevenir injeção. A conta do banco deve ter somente os privilégios necessários. Credenciais não devem ficar em repositório, página pública ou mensagem de erro; use variáveis de ambiente ou o mecanismo de segredos da aplicação.

Formulários, sessões e arquivos

  • valide formato, tamanho e faixa no servidor, mesmo quando o navegador já valida;
  • use token CSRF em operações que alteram dados;
  • regenere o identificador de sessão após login e configure cookies Secure, HttpOnly e SameSite conforme o fluxo;
  • armazene senhas com password_hash() e confira com password_verify();
  • não confie no nome ou tipo informado pelo upload;
  • grave uploads fora do diretório executável, gere nomes aleatórios e limite tamanho;
  • para e-mail, use biblioteca mantida e SMTP autenticado em vez de montar cabeçalhos manualmente.

Desenvolvimento e produção

Use um ambiente local ou de homologação compatível, dados anonimizados e controle de versão. Não edite diretamente a única cópia em produção. Testes automatizados, análise estática e revisão de código reduzem regressões. Variáveis como URL, credenciais e chaves devem mudar por ambiente sem alterar o código.

Publicação recomendada

  1. Faça backup do código, banco e arquivos enviados.
  2. Teste a versão e as extensões em homologação.
  3. Envie uma release completa por Git ou processo controlado.
  4. Instale dependências pelo lockfile.
  5. Execute migrations revisadas e compatíveis com rollback.
  6. Aponte o document root para public quando a aplicação usar essa estrutura.
  7. Ajuste somente as permissões necessárias; evite 777.
  8. Limpe ou aqueça caches conforme a documentação do sistema.
  9. Teste HTTPS, autenticação, formulários, banco, e-mail e cron.
  10. Monitore erros e desempenho após a mudança.

Diagnóstico básico

php -v
php --ini
php -m
php -r "echo PHP_VERSION, PHP_EOL;"

Esses comandos mostram o PHP da linha de comando, que pode ser diferente daquele usado pelo site. Para uma página web, prefira as informações do painel ou um script temporário, protegido e removido logo após o teste. Nunca deixe phpinfo() público, pois ele expõe detalhes do ambiente.

SintomaPrimeiras verificações
Página em branco ou erro 500log, sintaxe, versão, extensão e permissões
Classe não encontradaautoloader, vendor, namespace e diferença de maiúsculas
Conexão recusadahost, porta, serviço, firewall e credencial sem expô-la
Upload falhalimites PHP, formulário, espaço, permissão e regra do servidor web
Funciona no terminal, não no siteSAPI, arquivo INI, usuário, ambiente e diretório de trabalho

Checklist de segurança contínua

  • mantenha PHP, framework, CMS e dependências em versões suportadas;
  • use HTTPS, cabeçalhos adequados, MFA no painel e senhas exclusivas;
  • restrinja escrita, banco e funções administrativas;
  • trate toda entrada como não confiável e escape na saída correta;
  • não armazene segredos no código nem em backup sem proteção;
  • monitore logs, integridade, consumo e alertas;
  • mantenha backup externo e teste a restauração.

Referências oficiais: introdução ao PHP, versões com suporte e documentação do Composer.

Continue no guia sobre como alterar a versão do PHP, veja como diagnosticar erro 500 ou conheça o serviço de desenvolvimento de sistemas web.

Recursos relacionados

Continue com materiais e serviços relacionados ao tema deste guia.

Este guia resolveu sua dúvida? Seu retorno ajuda a priorizar as próximas revisões.
Atendimento técnico

Não encontrou o resultado esperado?

Abra um chamado e envie a mensagem de erro completa, o domínio ou serviço afetado, o horário do teste e capturas de tela sem senhas.