Skip to main content

[solved] require_once(), include_once() failed to open stream: No such file or directory

Pred skoraj letom sem opazil, da ima WordPress (ta blog) težave z določenimi temami in dodatki. Takrat se nisem posebej poglobil v problem, je pa nastal tale zapis: require_once: PHP, PEAR, WordPress, Apache,…? problem. Danes sem se problema ponovno lotil in našel rešitev.

Problem je bil v tem, da je funkcija require_once() narobe prebrala pot do želene datoteke. Primer je spodaj:

Warning: require_once(share-widget.php) [function.require-once]: failed to open stream: No such file or directory in ��� e/www/humerca.com/wordpress/wp-content/plugins/share-and-follow/share-and-follow.php on line 1989

Fatal error: require_once() [function.require]: Failed opening required ‘share-widget.php’ (include_path=’/usr/share/pear’) in ��� e/www/humerca.com/wordpress/wp-content/plugins/share-and-follow/share-and-follow.php on line 1989

Rešitev sem našel v tem, da se odstranil pecl paket APC.

# pecl uninstall APC

Ker to ni pomagalo sem  v /etc/php.d/apc.ini zakomentiral (spredaj dodaš ;) vrstico:

extension=apc.so

[REŠITEV] grubby fatal error: unable to find a suitable template

Minilo je kar nekaj časa, ko sem prvič zaznal problem in ker ni bilo večjih težav sem nanj pozabil. No, zadnjič pa sem se problema lotil resno. In v tem tednu sem se naučil kar nekaj stvari in na koncu celo našel rešitev problema. Do rešitve me je usmeril Hob, ki je pravilno sklepal, da se ob zagonu ne naložijo RAID gonilnik (hvala). Initrd image ni imel vpisanih spodnjih vrstic:

echo “Loading raid1 module”
modprobe -q raid1

Omenjeni problem sem zasledil v bazi Red Hat Bugzilla – Bug 349161: Missing entries in the init script of the initrd image makes the system unbootable on dmraid. Rešitev sem zasledil na Poisoner’s Weblog. In kako se reši problem? V bistvu dokaj preprosto. Najprej lahko preveriš ali nalaganje RAID gonilnika resnično ni vključeno v initrd image (initrd-2.6.26.6-79.fc9.i686.img je image mojega trenutnega kernela):

# cd /tmp
# mkdir initrd
# cd initrd
# gunzip -c < /boot/initrd-2.6.26.6-79.fc9.i686.img | cpio -idmv
# cat init

Pri izpisu iz datoteke poišči zgornji vrstici. Če jih ni, potem je velika verjetnost, da jih moraš vključiti. Takole:

# cd /boot
# mkinitrd -v –preload=raid1 /boot/initrd-2.6.26.6-79.fc9_RAID.i686.img 2.6.26.6-79.fc9.i686

Kjer je “initrd-2.6.26.6-79.fc9_RAID.i686.img” ime našega novega image-a in “2.6.26.6-79.fc9.i686” verzija nameščenega kernela. Tako se ustvari nova datoteka “initrd-2.6.26.6-79.fc9_RAID.i686.img”. Sedaj je potrebno samo še popraviti grub.conf:

stari grub.conf

default=0
timeout=5
splashimage=(hd1,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.26.6-79.fc9)
root (hd1,0)
kernel /boot/vmlinuz-2.6.26.6-79.fc9.i686 ro root=LABEL=/
initrd /boot/initrd-2.6.26.6-79.fc9.i686.img

novi grub.conf

default=0
timeout=5
splashimage=(md0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.26.6-79.fc9.i686)
root (hd1,0)
kernel /boot/vmlinuz-2.6.26.6-79.fc9.i686 ro root=/dev/md0
initrd /boot/initrd-2.6.26.6-79.fc9_RAID.i686.img

Ker je omenjeni problem (bug) še vedno aktiven, mi preostaneta samo dve stvari. Ob izdanem novem kernelu bom moral ponoviti postopek ali pa enostavno, pri avtomatični nadgradnji, izvzeti nadgradnje kernela.

Reblog this post [with Zemanta]