Ok, isso provavelmente é só eu não saber o suficiente sobre o php, mas aqui está.
Estou no Ubuntu Hardy. Eu tenho uma versão compilada personalizada do PHP que eu compilei com esses parâmetros.
./configure
--enable-soap
--with-zlib
--with-mysql
--with-apxs2=[correct path]
--with-config-file-path=[correct path]
--with-mysqli
--with-curlwrappers
--with-curl
--with-mcrypt
Eu usei o comando pecl install pecl_http
para instalar a extensão http.so. Está no diretório do módulo correto para o meu php.ini. Meu php.ini está carregando e eu posso mudar as coisas dentro do ini e efetuar o php. Eu incluí a linha extension=http.so
no meu php.ini.
Isso funcionou bem. Até que eu adicionei essas opções de compilação, a fim de adicionar imap
--with-openssl
--with-kerberos
--with-imap
--with-imap-ssl
O que falhou porque eu precisei da biblioteca c-client que eu fixei por apt-get install libc-client-dev
Depois que php compila bem e eu tenho suporte a imap, woo.
CONTUDO, agora todas as minhas chamadas para HttpRequest, que fazem parte da extensão pecl_http em http.so, resultam em erros Fatal error: Class 'HttpRequest' not found
. Acho que o módulo http.so não está mais sendo carregado por um motivo ou outro, mas não consigo encontrar nenhum erro que mostre o motivo.
Você pode dizer "Já tentou desfazer a nova configuração do imap?" Para o qual vou responder. Sim, eu tenho. Eu diretamente desfiz todas as minhas alterações de configuração e desinstalei a biblioteca c-client e ainda não consigo fazê-lo funcionar. Achei estranho ... não fiz alterações que resultassem nesse problema. Depois de olhar que eu também descobri que não só a extensão http não está mais sendo carregada, mas todas as minhas extensões carregadas via php.ini não estão mais sendo carregadas.
Alguém pode pelo menos me dar mais algumas etapas de depuração? Até agora eu tentei ativar todos os erros, incluindo erros de inicialização no meu php.ini que funciona para outros erros, mas eu não estou vendo nenhum erro de inicialização na linha de comando ou via apache. E mais uma vez o php.ini parece estar sendo analisado, dado que, se eu executar o php_info (), recebo as configurações que estão no arquivo php.ini.
Editar parece que apenas algumas das configurações do php.ini estão sendo ouvidas. Existe uma maneira de testar meu php.ini?
Editar Editar Parece que estou errado novamente e o php.ini não está sendo carregado por mais tempo. No entanto, se eu executar o php_info (), obtenho que ele está procurando o meu php.ini no local correto.
Editar Editar Editar Minha configuração está no local do caminho do arquivo de configuração abaixo, mas diz que nenhum arquivo de configuração foi carregado. WTF Permission issue? No momento, ele é 644, então todos devem ser capazes de lê-lo, se não o escreverem. Eu tentei criar 777 e isso não funcionou.
Configuration File (php.ini) Path /etc/php.ini
Loaded Configuration File (none)
Editar Editar Editar Editar Ao carregar o ini na linha de comando usando o comando -c, eu posso executar meus arquivos e usar -m mostra que meus módulos carregam
Então, nada está errado com o php.ini
Editar Editar Editar Editar Editar Eu tive que apontou para mim que o meu ini diretório config deve ser um caminho para encontrar o arquivo php.ini em não o arquivo em si. Para este fim eu tentei configurações / etc, / etc /, e deixar o php definir o diretório padrão, em seguida, movendo o meu arquivo ini para esse diretório. Todos falham: (
Editar Editar Editar Editar Editar Editar Mais informações, linha de comando executado de php - ini e ls de dir aponta nas configurações do php. Também execute com a opção -c na linha de comando onde a execução é bem-sucedida e não quando não incluo -c
j@j:/usr/local/lib$ php -ini | grep Configuration
Configuration File (php.ini) Path => /usr/local/lib
Loaded Configuration File => (none)
Configuration
j@j:/usr/local/lib$ ls /usr/local/lib
php php.ini python2.5 site_ruby
j@j:/usr/local/lib$ php -c /usr/local/lib/php.ini /var/www/toolbelt/test.php
j@j:/usr/local/lib$ php /var/www/toolbelt/test.php
Fatal error: Class 'HttpRequest' not found in /var/www/toolbelt/test.php on line 7
jonathan@jonathan:/usr/local/lib$
Editar Editar Editar Editar Editar Editar Editar Mais informações. Utilizando o método strace mostrado abaixo, eu testei para ver se havia alguma tentativa de abrir o arquivo ini feito no carregamento do php. Não houve
j@j:/usr/local/lib$ sudo strace -e trace=open php -ini 2>&1 |grep php.ini
Configuration File (php.ini) Path => /usr/local/lib
j@j:/usr/local/lib$ sudo strace -e trace=open php -ini 2>&1 |grep /usr/local/lib
Configuration File (php.ini) Path => /usr/local/lib
extension_dir => /usr/local/lib/php/extensions/no-debug-non-zts-20060613 => /usr/local/lib/php/extensions/no-debug-non-zts-20060613
include_path => .:/usr/local/lib/php => .:/usr/local/lib/php