Pergunta

XAMPP facilita a configuração de uma pilha LAMP local para janelas de uma brisa. Por isso é muito decepcionante que permite htaccess é um pesadelo.

Meu problema:
Eu tenho uma aplicação PHP que requer apache / php para procurar um / includes / diretório contido dentro do aplicativo. Para fazer isso, htaccess devem ser permitidos em apache eo arquivo htaccess deve especificar exatamente onde o inclui o diretório é.

O problema é que eu não posso começar minha configuração do apache para visualizar estes arquivos .htaccess. Eu tive grandes dificuldades instalar este aplicativo em uni e obter os admins lá para ajudar com a configuração. Isso não deve ser tão difícil, mas por algum motivo eu simplesmente não consegue obter apache para jogar bonito.

Esta é a minha configuração:

c: \ xampp
c: \ xampp \ htdocs
c: \ xampp \ apache \ conf \ httpd.conf - onde eu fiz as alterações listadas abaixo
c: \ xampp \ apache \ bin \ php.ini - onde alterações neste arquivo afetam o
instalação php É interessante notar que c: \ xampp \ php \ php.ini mudanças significam nada - esta não é a ini que afeta a instalação php.

As seguintes linhas são adições que eu fiz para o arquivo httpd.conf

#AccessFileName .htaccess
AccessFileName htaccess.txt
#
# The following lines prevent .htaccess and .htpasswd 
# files from being viewed by Web clients. 
#
#<Files ~ "^\.ht">
<Files ~ "^htaccess\.">
    Order allow,deny
    Deny from all
</Files>

<Directory "c:/xampp/htdocs">
#
# AllowOverride controls what directives may be placed in 
# .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All
#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all
</Directory>

A seguir está todo o arquivo .htaccess contido em: c: \ xampp \ htdocs \ application \ htaccess.txt

<Files ~ "\.inc$">
  Order deny,allow
  Deny from all
</Files>

php_value default_charset "UTF-8"
php_value include_path ".;c:\xampp\htdocs\application\includes"
php_value register_globals 0
php_value magic_quotes_gpc 0
php_value magic_quotes_runtime 0
php_value magic_quotes_sybase 0
php_value session.use_cookies 1
php_value session.use_only_cookies 0
php_value session.use_trans_sid 1
php_value session.gc_maxlifetime 3600
php_value arg_separator.output "&amp;"
php_value url_rewriter.tags "a=href,area=href,frame=src,input=src,fieldset="  

A inclui existe diretório do local especificado.

Quando tento acessar o aplicativo eu recebo o seguinte erro:

Warning: require(include.general.inc) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs\application\menu\logon.php on line 21

erro fatal: exigem () [function.require]: Falha abertura necessária 'include.general.inc' (include_path = '.; C: \ xampp \ php \ pêra \ aleatório') em C: \ xampp \ htdocs \ application \ Menu \ logon.php na linha 21

O caminho de inclusão c .. \ aleatória \ é especificado no arquivo php.ini listados acima. O xampp instalação falhar para permitir que outro caminho de inclusão conforme especificado no arquivo htaccess.txt.

ajuda por favor! Eu estou supondo que provavelmente há um erro com o httpd.conf ou o arquivo htaccess.txt .. mas não parece ser a leitura do arquivo .htaccess. Eu tentei ser o mais rigoroso possível, para perdoar a verbosidade do post.

Agora eu sei que uma solução poderia ser a de simplesmente adicionar o include_path para o arquivo php, mas eu não vou ter acesso ao arquivo php.ini no plano local I para implantar meu aplicativo. Vou, no entanto, ser capaz de pedir o administrador do servidor permite que os arquivos .htaccess.

Update: htacces.txt renomeado para .htaccess e ammended as diretivas apropriadas no arquivo httpd.conf e tudo parece funcionar. A aplicação sugeriu a nomeação de htaccess.txt e as directivas ammended no httpd. Estes são obviamente errado (pelo menos para uma pilha xampp). Obrigado pela ajuda.

A propósito, usando ini_set () é uma forma mais amigável muito se as necessidades de aplicativos para ser implantado em vários locais por isso obrigado especialmente para esse ponteiro.

Foi útil?

Solução

  1. Por que você precisa para mudar o nome .htaccess para htaccess.txt
  2. Tente configurar a include_path usando set_include_path () e ver se isso ajuda (como uma correção intermediária)
  3. Verifique qual php.ini para usar através de uma phpinfo ()

Outras dicas

Você pode alterar o include_path em cada solicitação usando ini_set (). Isso evitaria ter que usar htaccess em tudo.

O meu htaccess trabalha sob XAMPP bem - apesar de alguns módulos são desativados por padrão - você está certo de que os módulos que você quer estão habilitados?

Eu acho que o searchprase que você está procurando é:

AllowOverride All

Meu palpite é que dentro xampp É necessário habilitar o AllowOverride (através de um .htaccess) em httpd.conf. É uma medida de segurança simples que impede novatos de instalar uma plataforma hackable: P

Você precisa habilitar o AllowOverride All in arquivo httpd.conf principal. Olhe para dentro XAMPP DIR / apache / conf / http.conf)

Simplesmente Faça o seguinte:

open file ...\xampp\apache\conf\httpd.conf

find line "LoadModule rewrite_module modules/mod_rewrite.so"

if here is a # before this line remove it.(remove comment)

seu trabalho

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top