Fatal error: require_once() efter flytt av moduler till nya mappar

Events happening in the community are now at Drupal community events on www.drupal.org.
kleve's picture

Hej

Har stött på ett problem i samband med att jag skulle flytta contrib-modulerna från modules-mappen till ny undermappar i modules-mappen. De nya mapparna har namnen "contrib" och "custom". Den nya strukturen ser alltså ut enligt följande:

modules
- contrib
- custom

Själva flytten utfördes enligt följande:
1. De nya undermapparna "contrib" och "custom" skapades.
2. Alla contrib-moduler avaktiverades.
3. Contrib-modulerna flyttades till respektive mapp.
4. Alla contrib-modulerna aktiverades igen.

När modulerna aktiverades igen uppstod problemen. Alla moduler flyttades över korrekt förutom filefield och imagefield. Ett av felmeddelandena jag fick var följande:

Fatal error: require_once() [function.require]: Failed opening required '/usr/local/drupal6/modules/imagefield/imagefield_file.inc' (include_path='.:/usr/share/php:/usr/share/pear') in /usr/local/drupal6/modules/imagefield/imagefield.module on line 9

Alla försök hittills att åtgärda detta har misslyckats. Har även försökt återställa till strukturen som den var innan jag började, dvs att alla moduler ligger under modules-mappen, men felen består.

Några förslag hur detta kan åtgärdas eller vad det beror på?

//Andreas

Comments

Det där kan bli lite

pontus_nilsson's picture

Det där kan bli lite krångligt. Mer info finns på denna sida. De flesta moduler borde fungera efter en flytt och efter du besökt sidan där alla moduler listats och sen sparat den sidan.

Vissa moduler kan sätta sin sökväg i variables? tabellen.

Om du avaktiverar sen avinstallerar modulen och sedan installerar den så ska det gå bra. Förutsatt att du inte har en massa konfiguration gjord.

Du kan söka i databasen efter förekomster av "/usr/local/drupal6/modules/imagefield/imagefield.module" och manuellt ersätta sökvägen. Tänk på att värdet kan vara serialiserat, då måste du ändra s:xx till det nya antalet tecken i strängen.

//Pontus Nilsson, Digitalist

Att avinstallera skulle kunna

kleve's picture

Att avinstallera skulle kunna fungera, dock har jag en hel massa inställningar sparade för dessa moduler och noder som använder dessa moduler. Jag tänker främst på filefield, där jag antar att alla fil-referenser (och eventuellt filererna) går förlorade om modulen avinstalleras?

//Andreas Nilsson

Det borde fungera om du

dixon_'s picture

Det borde fungera om du tömmer cachen efter att du flyttat modulen.

@Pontus Jag tror inte så många moduler sparar systemsökvägar i variabeltabellen, även om det kan förekomma.

Tömma cachen var en av

kleve's picture

Tömma cachen var en av sakerna som jag testade. Tyvärr spelade det ingen roll om den tömdes eller inte... För jag antar att du menar efter att modulerna flyttats men innan de aktiveras igen?

Fler förslag mottages gärna.

//Andreas Nilsson

Trasig ImageField?

zoo33's picture

Failed opening required '/usr/local/drupal6/modules/imagefield/imagefield_file.inc' ... in /usr/local/drupal6/modules/imagefield/imagefield.module

Jag tycker detta tyder på att det finns en installation av ImageField i modules/imagefield, och att den installationen saknar .inc-filen men innehåller .module-filen. Kan det vara så att de omflyttningar du gör nu sker i sites/x/modules – och att det ligger saker i modules och skräpar? Alltså: kolla att det bara finns en kopia av imagefield-mappen, och att den innehåller alla filer som ska vara där.

/ Hannes Lilljequist – SthlmConnection

Nej, det finns ingen kopia av

kleve's picture

Nej, det finns ingen kopia av imagefield-mappen. Alla nya moduler ligger i de nya mapparna och ingenting ligger i modules-mappen. I samband med felsökningen av detta problem upptäckte jag att om man lägger symlinks i modules-mappen (gamla mappen för modulerna) som pekar till modulerna som strular filefield och imagefield (i den nya mappen contrib) så försvinner felmeddelandena. Tas symlinks bort, visas felmeddelandena igen. Har även testat att flytta tillbaka modulerna till den ursprungliga mappen, dvs modules-mappen, och då blir det samma felmeddelande men då åt andra hållet. Alltså, att den försöker hitta filer i contrib-mappen. Med andra ord, en evig loop av felmeddelanden.

// Andreas Nilsson

(unnskyld min dårlige

wizonesolutions's picture

(unnskyld min dårlige svensk...jag lärade norska först, och även det är inte morsmålet mitt :))

Jag har sett att någon moduler har sine egne cache utenom cache-tabellen. Har du tilgang till databasen? Sjekk imagefield-tabellene (dom som begynner med imagefield_) för något som ser ut som det kunde vära en cache-tabell...og slett alle sådane radene. Och du kan göra det manuelt (vis du inte allerede gjorde det sådan) med cache_-tabellene också.

Ärligtalt så lösar dette problemet sig etter en stund för mig. Men kanske disse tipsene kommer til att hjälpa litt.

Lycka till.

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

Problemet verkar vara identifierat

kleve's picture

Efter en hel del testande verkar felet vara identifierat.

Genvägarna till modul-filerna filefield och imagefield var felaktiga i databastabellen "system", där den gamla mappen låg som genväg istället för den nya mappen. Löste det hela genom att manuellt ändra genvägen i databasen till den nya mappen, rensa cachen och sedan gå in på /admin/build/modules för att verifiera att genvägarna inte ändrades tillbaka till den gamla genvägen igen. Att notera är att om cachen inte rensades i samband med denna process, så skrevs de gamla genvägarna in i "system" tabellen igen.

// Andreas Nilsson

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week