Como especifico qual instalação do Apache eu quero que meu Mac use?

1

Todos os meus problemas resultaram da tentativa de obter o mcrypt para o PHP instalado. Ontem à noite eu dei e segui um tutorial de como fazer um apache2 totalmente novo e php5.3.3 install. Eu fiz isso usando macports

Infelizmente, isso não habilitou o mcrypt para mim ontem à noite, embora eu tenha ficado muito satisfeito por ter executado o 5.3.3:)

O problema é que eu acordei esta manhã para descobrir que minha versão do php está de volta para 5.3.1, o que só pode significar que o OS X foi revertido para o meu Apache e PHP originais.

Como posso dizer ao OS X para usar o software que eu instalei via macports?

(E então eu vou fazer uma nova pergunta sobre como habilitar o mcrypt)

n.b. Eu posso carregar a instalação do macports parando o compartilhamento da web atual no sistema prefs, então isso no terminal

 sudo /opt/local/apache2/bin/apachectl -k restart
    
por ed209 26.08.2010 / 11:44

5 respostas

5

Não é tanto que sua versão do Apache / PHP foi revertida - é apenas a versão errada carregada.

Se o Compartilhamento da Web do Mac OS X estiver ativado, ele ativará automaticamente a versão do Apache e o PHP da Apple fornecerá o uso do LaunchDaemon org.apache.httpd.plist in /System/Library/LaunchDaemons (isso substituirá a versão do MacPorts). Você desejará desabilitar isso desabilitando o Compartilhamento da Web no Painel de Preferências de Compartilhamento ou executando sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist .

Quando você instalou o Apache para MacPorts, ele instalou um LaunchDaemon em /Library/LaunchDaemons , que, se habilitado, inicializará automaticamente a versão MacPorts do Apache. Para ativá-lo, execute sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist e você estará fora das corridas.

Se você estiver executando apachectl para reiniciar, verifique se selecionou a versão correta. Você pode precisar alterar seu $ PATH para ter /opt/local/apache2/bin antes de /usr/sbin

Quanto a qual versão do PHP está sendo usada; na linha de comando isso dependerá do seu $ PATH enquanto que para o Apache é inteiramente na sua configuração de onde o módulo libphp5 está. ( /etc/apache2/ para a versão interna, /opt/local/apache2/conf para a versão MacPorts instalada)

Apple.SE

    
por 27.08.2010 / 01:31
2

Como Ayaz sugeriu, você precisa editar o problema. O caminho correto deve ser /System/Library/LaunchDaemons/org.apache.httpd.plist .

Para garantir que você execute o apachectl adequado, modifique a variável de ambiente PATH em seu script de inicialização do shell (por exemplo, ~/.bash_profile , ~/.zshrc ou qualquer outro) para que /opt/local/apache2/bin seja anterior a /usr/sbin . No bash a sintaxe para prefixar o macports apache dir é:

export PATH=/usr/local/apache2/bin:$PATH
    
por 26.08.2010 / 17:14
1

Outra correção é ligar o apachectl ao / usr / sbin / apachectl

$ su -
# mv /usr/sbin/apachectl /usr/sbin/apachectl.mac_version
# ln -s /opt/local/apache2/bin/apachectl /usr/sbin/apachectl
    
por 11.09.2014 / 21:14
0

Para corrigir seu problema com o Apache, você pode dar uma olhada em /Library/LaunchDaemons/org.apache.httpd.plist e editá-lo a gosto.

    
por 26.08.2010 / 13:39
0

Hmm ... Você está ciente do Personal Web Sharing que pode ativar nas Preferências do Sistema - > Compartilhando Você está tentando fazer com que essa caixa de seleção ative sua versão personalizada do Apache em vez da versão empacotada?

Eu não sei se isso é possível, mas eu não recomendaria isso. É uma idéia melhor apenas desativar a compilação básica e usar seu personalizado separadamente.

Você já tem a etapa 1, que é desativar o servidor padrão em Preferências do sistema. Para fazer com que a compilação personalizada seja carregada na inicialização, investigue o arquivo /Library/LaunchDaemons/org.apache.httpd.plist que você mencionou. Veja $ man launchctl para mais informações sobre como trabalhar com esses arquivos, e também este prático software chamado Lingon.

Com essas ferramentas (e talvez $ ps -ax | grep httpd) você deve ser capaz de garantir que a compilação do Apache em execução seja a instalação personalizada do MacPorts.

Ooh, isso me faz pensar em outra coisa: o apachectl não é o servidor, é apenas um utilitário que você usa para controlar o servidor, que é o httpd. Talvez o apachectl do MacPorts esteja iniciando o httpd? Ou talvez o httpd MacPorts esteja usando o PHP incluído ...

Pessoalmente, minha abordagem para isso seria apenas alterar a compilação do apache instalada, atualizando o PHP conforme necessário, mas espero que você possa usar um pouco disso para continuar com a solução de problemas.

    
por 26.08.2010 / 18:30