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>