But I'm running XAMPP for Linux. Does this mean it's impossible for me to use semaphore functions?
Não, você só precisa obter uma versão do XAMPP que tenha a extensão disponível. Alternativamente, você pode compilar o PHP sozinho.
I'd also like to know exactly why one has to recompile all of PHP instead of, say, tweaking a php.ini setting or adding a new module.
Porque os fontes dos módulos fazem parte das fontes do PHP. Você então compila tudo no binário do PHP e não em um arquivo de biblioteca compartilhada. É apenas o design do módulo. Para refinar seu arquivo php.ini, você precisaria de um arquivo de biblioteca externo, veja o diretório PHP ext
.