O Scoop é um sistema de gerenciamento de pacotes para Windows similar ao APT para Linux e BREW para MacOS onde a manutenção do processo de instalação/remoção de aplicativos é feito diretamente no prompt de comando com poucos ou apenas um único comando.
CodeIgniter é um framework PHP para desenvolvimento de aplicativos WEB.
Com o scoop é possível instalar o Apache Web Server junto com uma versão específica do PHP para configurar um ambiente de desenvolvimento.
A instalação do Scoop pode ser feita seguindo essa documentação: https://scoop-docs.vercel.app/
Importante habilitar os buckets php, extras e versions no scoop:
scoop bucket add extras
scoop bucket add php
scoop bucket add versions
Após a instalação os seguintes comandos são utilizados para instalar Apache/PHP:
scoop install apache php7.4
scoop install sudo
iex (new-object net.webclient).downloadstring('https://gist.githubusercontent.com/nilkesede/c98a275b80b6d373131df82eaba96c63/raw/apache-php-init.ps1')
sudo httpd -k install -n Apache2.4
sudo net start apache
A configuração do PHP através do arquivo php.ini deve ser feita dentro da pasta persist\php7.4 do scoop para que as modificações permaneçam inalteradas após atualizações do PHP.
Por padrão, o apache não configurou o caminho do php.ini para a pasta persist, então, troque a linha
PHPIniDir "D:\Aplicativos\Scoop\apps\php7.4\current"
por
PHPIniDir "D:\Aplicativos\Scoop\persist\php7.4"
no httpd.conf de acordo com o caminho na sua máquina.
Dicas:
- é necessário reiniciar o Windows para receber as alterações feitas no PATH do sistema durante o processo
- qualquer alteração em httpd.conf ou php.ini, o serviço do apache deve ser reiniciado
- para ver algum erro de configuração no php, use o phpinfo e também o comando php -v no prompt
- inclua o caminho do php corrente no path do sistema (necessário para a carga das extensões). ex: D:\Aplicativos\Scoop\apps\php7.4\current
- carregue a extensão intl (necessária para o CodeIgniter)
Apache
Em httpd.conf da pasta persist, habilite o módulo rewrite e remove o comentário da linha
Include conf/extra/httpd-vhosts.conf
para habilitar a leitura dos hosts virtuais em httpd-hosts.conf da pasta persist.
Adicionar a linha abaixo no http.conf dentro de <IfModule dir_module>
DirectoryIndex index.php
Exemplo de vhost para um projeto:
<VirtualHost *:80> ServerAdmin rdconsolo@gmail.com ErrorLog "D:\Projetos\logs\error_log" CustomLog "D:\Projetos\logs\access_log" common Alias "/project-root" "D:\Projetos\project-root\public" <Directory "D:\Projetos\project-root"> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted RewriteEngine On RewriteBase /project-root/index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </Directory> </VirtualHost>