Problemet
Etter inn Global konfigurasjon området på Administrator "back-end"-området og deretter klikke på enten den "Lagre" eller "Bruk"-knappen for å lagre gjeldende valg av områdekonfigurasjon, vises følgende feilmelding: "det har oppstått en feil! Kan ikke åpne configuration.php arkiv å skrive! ", muligens ledsaget av:" JFTP::write: Ugyldig svar "Hvis du arbeider i FTP aktivert modus.
Grunn for denne feilen
Oppdateringen konfigurasjonsskript i Joomla har vært i stand til å endre innholdet av filen "configuration.php" for å gjengi eventuelle endringer du har gjort siden Global konfigurasjon. Joomla har enten vært kan ikke skrive til filen og/eller ute av stand til å gjøre filen skrivbar (i.e. R/W). Siden Joomla 1.5.x forsøker å gjøre "configuration.php" skrivbar før du lagrer konfigurasjonen, er sistnevnte mer vanligvis tilfelle. Den vanligste grunnen til dette er at filen "configuration.php" er eid av en annen logisk bruker til det som prøver å gjøre endringen. Hvis du prøver å endre Global konfigurasjon med FTP aktivert, bli vil sistnevnte vanligvis påloggings-IDen din FTP; det vil være en web server prosess-ID (ofte benevnt idet noe som "apache" eller "www-data") med FTP deaktivert. (Du kan vanligvis sjekke på fildetaljer eierskap ved å logge inn på nettstedet ditt med et FTP-program. Alternativt kan du bruke eXtplorer-se nedenfor). Dessverre, du vil bli låst ut av endring til riktig modus for å oppdatere den globale konfigurasjonen som aktivering og deaktivering av FTP-modus (og dermed endre logiske identiteten forsøker å endre konfigurasjonen) bestemmes av Global konfigurasjonsdataene holdt i denne filen.
Foreslåtte løsninger
Merk: er det ikke tilstrekkelig å bare gjøre det "configuration.php" filen skrivbar for alle brukere. Som da du skal kunne oppdatere den globale konfigurasjonen bare én gang, etter hvilke Joomla 1.5.x vil gjøre filen skrivebeskyttet for alle brukere, og dermed gjeninnføre problemet.
- Endre eierskapet av filen "configuration.php" å matche enten FTP påloggings-ID hvis du bruker "FTP aktivert" for området, eller prosessidentiteten for web-server hvis du bruker "FTP deaktivert".
Merk: Dette er ikke noe du kan gjøre i Joomla.
Hvis du har total kontroll over serveren (f.eks den lokale serveren eller den virtuelle serveren), bør du kunne gjøre dette ved hjelp av et egnet verktøy (for eksempel "chown" for en Linux-server). På en delt server, bør du kontakte kundestøtten for din organisasjon eller Internett-leverandøren, forklare problemet og be dem endre eierskapet for filen riktig. - Installere eXtplorer komponenten (skaffes fra Joomla utvidelser Directory- extensions.joomla.org)-hvis den ikke allerede er på plass. Dette vil tillate deg å vise og redigere filer i både "fil"-modus (ved hjelp av web server prosessidentiteten-bruker) eller "ftp"-modus ved hjelp av ditt FTP login brukeridentiteten. Selv om du vil sannsynligvis ikke kunne endre fileierskap med dette verktøyet, kan du bruke en av modiene gjøre "configuration.php" skrivbar for alle brukere. Dette vil gjøre det mulig å endre den globale konfigurasjonen en gang-eller mer hvis du inkluderer i som en endring til FTP-modus slik at det samsvarer med eierskapet av filen "configuration.php" (men se merknaden nedenfor).
Merk: endre FTP-modus vil påvirke eierskap brukes til filer som er lastet opp til området under den nye innstillingen (f.eks når du installerer utvidelser). - Se spesifikt fastsette denne personen oppdaget på siden diskusjon av dette dokumentet. Jeg har funnet at dette fungerer med min installasjon av v. 1.5.23.
- Få web-serveren til å kjøre PHP som CGI eller FastCGI. Dette sikrer at PHP-koden kjøres ved hjelp av samme bruker-ID som brukes når du laster opp i Joomla-kode ved hjelp av FTP. Dermed er det ingen konflikt som IDen til PHP prosessen endrer "configuration.php" filen er det samme som filens eier. Hvis du ikke vet hvordan å sette en CGI- eller rask CGI, kontakter du serveradministratoren eller hosting-leverandør for råd.
Bakgrunn
Ovenfor er en forenklet forklaring, men følgende kan være av interesse og verdi til alle, og også hjelpe ekspertbrukere formulere sin egen løsning på dette problemet.
- Filen "configuration.php" genereres automatisk i webområdets rotmappe (fra "configuration.php-dist") under området installasjonen og inkorporerer i det områdespesifikke informasjonen gitt under installasjonen. Endringer som er gjort i Global konfigurasjon området i områdets administrative "back-end" er skrevet til "configuration.php" når enten den "Lagre" eller "Bruk"-knappen brukes.
- Når Joomla forsøker å oppdatere "configuration.php" filen det første forsøk på å gjøre det mulig å skrive, og etter oppdatering filen gjør det unwriteable (dvs. skrivebeskyttet) som et sikkerhetstiltak.
- Filer på webserveren som er vert Joomla nettsted vil bli eid av en av flere enheter, avhengig av hvordan de ble plassert eller opprettet på serveren. Generelt vil filer på et Joomla nettsted bli eid av enten over to bruker-IDer:
- Filer du laster opp via FTP eller installert med FTP-modus er aktiv vil generelt tildeles eierskapet til en bruker-ID svarer til din FTP påloggings-ID for dette nettstedet,
- Filer som er installert fra innenfor Joomla og med FTP-modus er inaktive vil generelt være tildelt eierskap av "phantom" bruker-ID som brukes til å kjøre de viktigste web-serverprosesser samt Joomla skriptene (ofte benevnt idet noe som "apache" eller "www-data").