Vra

XAMPP maak die opstel van 'n plaaslike LAMP-stapel vir vensters 'n briesie.Dit is dus nogal teleurstellend dat dit so 'n nagmerrie is om htaccess-lêers te aktiveer.

My probleem:
Ek het 'n PHP-toepassing wat apache/php vereis om te soek na 'n /includes/-gids wat in die toepassing vervat is.Om dit te doen, moet htaccess-lêers in apache toegelaat word en die htaccess-lêer moet presies spesifiseer waar die include-gids is.

Probleem is, ek kan nie my apache-konfigurasie kry om hierdie htaccess-lêers te sien nie.Ek het groot probleme gehad om hierdie toepassing by uni te installeer en die admins daar te kry om te help met die opstelling.Dit behoort nie so moeilik te wees nie, maar om een ​​of ander rede kan ek net nie apache kry om lekker te speel nie.

Dit is my opstelling:

c:\xamp
c:\xampp\htdocs
c:\xampp\apache\conf\httpd.conf - waar ek die veranderinge hieronder aangebring het
c:\xampp\apache\bin\php.ini - waar veranderinge aan hierdie lêer die php-installasie beïnvloed
Dit is interessant om daarop te let dat c:\xampp\php\php.ini veranderinge niks beteken nie - dit is NIE die ini wat die php-installasie beïnvloed nie.

Die volgende reëls is byvoegings wat ek aan die httpd.conf-lêer gemaak het

#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>

Die volgende is die hele htaccess-lêer vervat in: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="  

Die include-gids bestaan ​​op die gespesifiseerde plek.

Wanneer ek toegang tot die toepassing probeer kry, kry ek die volgende fout:

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

Noodlottige fout:require() [function.require]:Mislukte opening vereis 'include.general.inc' (include_path='.;C:\xampp\php\pear andom') in C:\xampp\htdocs\application\menu\logon.php op reël 21

Die sluitpad c.. andom\ word gespesifiseer in die php.ini-lêer hierbo gelys.Die xampp-installasie laat nie 'n ander insluitpad toe soos gespesifiseer in die htaccess.txt-lêer nie.

Help asseblief!Ek raai daar is waarskynlik 'n fout met die httpd.conf OF die htaccess.txt-lêer.maar dit lyk nie of dit die htaccess-lêer lees nie.Ek het probeer om so deeglik as moontlik te wees, so vergewe die breedsprakigheid van die plasing.

Nou weet ek dat 'n oplossing kan wees om bloot die include_path by die php-lêer by te voeg, maar ek gaan nie toegang hê tot die php.ini-lêer op die plek wat ek beplan om my toepassing te ontplooi nie.Ek sal egter kan versoek dat die bediener admin htaccess-lêers toelaat.

Opdateer:het htacces.txt na .htaccess hernoem en die toepaslike riglyne in die httpd.conf-lêer gewysig en dit lyk of alles werk.Die toepassing het die naam van htaccess.txt en die gewysigde riglyne in die httpd voorgestel.Dit is natuurlik verkeerd (ten minste vir 'n xampp-stapel).Dankie vir die hulp.

Terloops, die gebruik van ini_set() is 'n baie vriendeliker manier as die toepassing na verskeie liggings ontplooi moet word, so dankie veral vir daardie wyser.

Was dit nuttig?

Oplossing

  1. Hoekom moet jy .htaccess hernoem na htaccess.txt
  2. Probeer die include_path stel deur gebruik te maak van stel_insluit_pad() en kyk of dit help (as 'n tussenoplossing)
  3. Verifieer watter php.ini om te gebruik deur a phpinfo()

Ander wenke

Jy kan die include_path op elke versoek verander deur ini_set() te gebruik.Dit sal vermy om htaccess enigsins te gebruik.

My htaccess werk goed onder XAMPP - hoewel sommige modules by verstek gedeaktiveer is - is jy seker dat die modules wat jy wil hê geaktiveer is?

Ek dink die soekwoord waarna jy soek is:

Laat Veroorsien Alles

My raaiskoot is dat jy binne xampp AllowOverride moet aktiveer (deur 'n .htaccess) in httpd.conf.Dit is 'n eenvoudige sekuriteitsmaatreël wat nuwelinge verhoed om 'n hackbare platform te installeer :P

Jy moet AllowOverride All in hoof http.conf-lêer aktiveer.Kyk binne XAMPP_DIR/apache/conf/http.conf)

Doen eenvoudig dit:

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)

dit werk

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top