Instalar o CodeIgniter 3.1 com PHP 8.x: guia de manutenção
Configure um projeto CodeIgniter 3 existente no PHP 8.x com um fork mantido e confira a implantação.
O CodeIgniter 3 continua útil para aplicações existentes, mas a versão original 3.1.13 precede versões recentes do PHP. No PHP 8.2 e posteriores, código legado pode produzir avisos de descontinuação e erros de tipo. Planeje uma migração testada em vez de trocar trechos do framework indiscriminadamente.
Requisitos
Use uma versão de PHP suportada pelo fork escolhido, Apache ou Nginx e as bases de dados e extensões exigidas pela aplicação. Para MySQL, habilite mysqli. Verifique separadamente versões e módulos PHP da web e da CLI; eles podem diferir.
php -v
php -m
Obter o código
O arquivo da tag 3.1.13 fornece uma cópia histórica. Para manter uma aplicação em PHP atual, examine o fork CodeIgniter 3 da pocketarc e seus lançamentos. Ele procura preservar o funcionamento do CI3 com suporte a novas versões do PHP. Confira mudanças, licença e seu próprio código.
wget https://github.com/bcit-ci/CodeIgniter/archive/refs/tags/3.1.13.zip
unzip 3.1.13.zip
mv CodeIgniter-3.1.13 my-project
cd my-project
Configurar a aplicação
Defina base_url em application/config/config.php e a conexão em application/config/database.php. Mantenha segredos fora do repositório. Use configuração própria para produção e uma conta de banco com apenas os privilégios necessários.
$config['base_url'] = 'https://example.com/';$db['default'] = array(
'hostname' => 'localhost',
'username' => 'db_user',
'password' => 'YOUR_SECRET',
'database' => 'db_name',
'dbdriver' => 'mysqli'
);
Compatibilidade com PHP 8
Avisos sobre null ou tipos não contáveis exigem investigação no ponto de chamada. Substituir sem critério strlen($str) por strlen((string)$str), ou count($data) por count((array)$data), pode mudar o comportamento e ocultar erros. Prefira um fork mantido e testado; corrija intencionalmente código e bibliotecas do projeto.
Permissões
Apenas application/cache e application/logs precisam de escrita quando essas funções são usadas. Dê acesso ao servidor web nesses diretórios, sem permitir que ele altere toda a árvore do projeto ou aplicar permissões recursivas excessivas.
sudo chown -R www-data:www-data application/cache application/logs
sudo chmod -R u+rwX,g+rX application/cache application/logs
Exemplo Nginx
Se a raiz web for a pasta do projeto, bloqueie acesso direto a application, system, arquivos ocultos e scripts PHP arbitrários. Direcione pedidos a index.php e adapte o socket PHP-FPM. Inclua HTTPS, registros e proteção adicional antes da produção.
server {
listen 80;
server_name example.com;
root /var/www/my-project;
index index.php;
location / { try_files $uri $uri/ /index.php?$query_string; }
location ~ ^/(application|system)/ { deny all; }
location ~ /\. { deny all; }
location ~ \.php$ { return 404; }
location = /index.php {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
Verificar e implantar
Teste rotas, banco de dados e logs na versão alvo do PHP. Use o modo de desenvolvimento apenas em testes locais; em produção, não exiba erros publicamente. Faça backup da aplicação e do banco antes de trocar arquivos do framework.
define('ENVIRONMENT', 'production');
Documentação
Fork mantido: https://github.com/pocketarc/codeigniter ; instalação original 3.1.13: https://codeigniter.com/userguide3/installation/index.html. Para projeto novo, considere CodeIgniter 4.
Partilhar
Qual é a sua reação?
Gosto
0
Não gosto
0
Adoro
0
Divertido
0
Irritado
0
Triste
0
Uau
0