DevForge

PHP

Linguagem de script amplamente usada para web, com ecossistema maduro (Laravel, Symfony, WordPress).

⚡ Instalação automatizada

Linux / WSL
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/php/install.sh | bash -s 8.3
Windows PowerShell (Admin)
Set-ExecutionPolicy Bypass -Scope Process; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; iex "& { $(irm https://rafaelferreira2312.github.io/devforge/scripts/php/install.ps1) } 8.3"
macOS (Homebrew)
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/php/install.sh | bash -s 8.3

Os scripts fazem backup automático da sua configuração atual (php.ini) antes de instalar.

Requisitos mínimos

  • CPU: 2+ núcleos (x86_64 ou ARM64)
  • RAM: 4 GB (recomendado 8 GB para projetos grandes)
  • Armazenamento: 10 GB SSD
  • SO: Ubuntu 20.04+, Debian 11+, RHEL 8+, Windows 10/11, macOS 11+

Hardware recomendado (Dev)

  • Notebook: Dell XPS, MacBook Pro M1/M2, Lenovo ThinkPad
  • CPU: i5 / Ryzen 5 ou superior
  • RAM: 16 GB (32 GB para containers + IDE)
  • SSD NVMe 512 GB+

🛠️ Stack recomendada

Programas essenciais

  • Servidor web: Nginx / Apache
  • Banco de dados: MySQL 8 / MariaDB / PostgreSQL
  • Gerenciador de dependências: Composer
  • Cache: Redis / Memcached
  • Containers: Docker + Docker Compose

Extensões VSCode

  • PHP Intelephense
  • Laravel Extension Pack
  • Composer
  • PHP Debug (XDebug)
  • SQLTools (para banco)

Docker (opcional)

Use docker run -d -p 80:80 --name php-app php:8.3-apache para teste rápido.

🔧 Troubleshooting (diagnósticos reais)

❌ Erro: "mysqli extension missing"

Causa: extensão mysqli não instalada.
Solução: sudo apt install php8.3-mysql (ou versão correspondente) e reinicie o PHP-FPM/Apache.

⚠️ Aviso: "PHP Startup: Unable to load dynamic library"

Causa: extensão habilitada mas arquivo .so ausente.
Solução: verifique se a extensão foi instalada via apt list --installed | grep php e reative com phpenmod.

🐘 Composer out of memory

Solução temporária: COMPOSER_MEMORY_LIMIT=-1 composer update.

Diagnóstico automático:

php -v && composer --version && php -m | grep -E "mysql|curl|json|mbstring|gd|zip" && php -i | grep "Loaded Configuration File"

Este comando verifica: versão do PHP, Composer, extensões instaladas e arquivo php.ini ativo.

⚠️ IMPORTANTE - Como executar os scripts corretamente

Os scripts abaixo funcionam em Windows, Linux e macOS. Siga as instruções específicas do seu sistema:

WINDOWS (PowerShell)
# ERRO COMUM: "arquivo não assinado" ou "execução de scripts desabilitada" # SOLUÇÃO 1: Executar com bypass (recomendado) powershell -ExecutionPolicy Bypass -File "C:\caminho\script.ps1" # SOLUÇÃO 2: Baixar e executar direto (pode ter erro de codificação) powershell -ExecutionPolicy Bypass -Command "iex (irm https://.../script.ps1)" # SOLUÇÃO 3: Habilitar execução permanentemente (como Administrador) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Se houver erros de acentuação (caracteres estranhos): O script ainda funciona, apenas a saída visual pode ficar distorcida
LINUX / WSL (Bash)
# ERRO COMUM: "permission denied" ou "comando não encontrado" # SOLUÇÃO 1: Dar permissão de execução (obrigatório) chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Executar via curl (baixar e executar direto) curl -fsSL https://.../script.sh | bash # SOLUÇÃO 4: Se der erro de permissão, use sudo (cuidado!) sudo chmod +x script.sh && sudo ./script.sh # Se houver erros de permissão: Execute 'ls -la script.sh' para verificar permissões atuais
macOS (Terminal / Zsh)
# ERRO COMUM: "permission denied" ou "operation not permitted" # SOLUÇÃO 1: Dar permissão de execução chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Se der erro de "quarentena" (arquivo baixado da internet) xattr -d com.apple.quarantine script.sh # SOLUÇÃO 4: Executar via curl curl -fsSL https://.../script.sh | bash # Se erro persistir: Vá em Preferências do Sistema → Segurança e Privacidade → Permitir execução

Dicas importantes:
Windows: Se aparecerem caracteres estranhos (ex: "�" ou "ção"), ignore - o script funciona normalmente. Para evitar, baixe o script localmente e execute.
Linux/macOS: Sempre use chmod +x antes de executar scripts baixados.
WSL (Windows): Siga as instruções do Linux, mas certifique-se de que o script está dentro do sistema de arquivos do Linux (não no /mnt/c/).

📜 Scripts prontos

Os scripts realizam backup automático antes de modificar configurações. Versões verificadas nas principais distribuições.

❓ Perguntas frequentes

Como mudar a versão do PHP depois de instalada?

No Ubuntu/Debian use sudo update-alternatives --config php. No Windows, use o gerenciador de versões phpenv.

O script de instalação faz backup da minha configuração atual?

Sim, todos os scripts movem o php.ini original para /etc/php/<versão>/cli/php.ini.bak.

Posso usar o DevForge em produção?

Os scripts são otimizados para desenvolvimento. Para produção, use imagens Docker oficiais ou empacotamento específico.