Ran into the following error after updating to PHP 5.4:

warning: include_once(/home/user/public_html/h/mydomain.com): failed to open stream: No such file or directory in /home/user/public_html/h/mydomain.com/includes/unicode.inc on line 339.
warning: include_once(): Failed opening '' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/user/public_html/h/mydomain.com/includes/unicode.inc on line 339.

Disabling Nodewords basic meta tags gets rid of the error message, but it will reproduce upon re-enabling that sub-module.

Googling it came up with: https://www.drupal.org/node/1028730 which leads to the discussion that the "path is changed before Drupal shudown".

Wonder if the problem lies in line 876 of nodewords.module?

  if (empty($tags_info)) {
    // Allow third-party modules to alter the  meta tags list, or to add new
    // meta tags.
    foreach (module_implements('nodewords_tags_info') as $module) {
      if (module_hook($module, 'nodewords_api')) {
        $info = module_invoke($module, 'nodewords_api');
        $version = '0.0';

        if (isset($info)) {
          if (is_string($info)) {
            $version = $info;
          }
          elseif (is_array($info) && isset($info['version'])) {
            $version = $info['version'];

            if ($load && !empty($info['file'])) {
              $include_file = $info['file'];

              if (isset($info['path'])) {
                $include_file = $info['path'] . '/' . $include_file;
              }

              include_once $include_file;
            }
          }
        }

No idea where to go from here... :-/

Comments

lex0r’s picture

Drupal 6's contribs are not supposed to work on newer PHP versions. You should either downgrade PHP or make some patches to properly support PHP 5.4.x

YesCT’s picture

Issue tags: -php 5.4 issues +PHP 5.4

using the more common tag (so I can delete the less commonly used one)

DamienMcKenna’s picture

@philsward: Can you please install Devel and add a line that says dpm($include_file); just before the include_once line? Then please let me know if any of the paths are incorrect?

DamienMcKenna’s picture

Status: Active » Postponed (maintainer needs more info)

Putting this back to "Maintainer needs more information" because.. I need more info ;-)

philsward’s picture

Ok, not going to lie... I've slept since I created this and can't remember the exact site that was causing me issues. I have two sites I know for a fact I'm running D6 and nodewords 1.14 on PHP 5.4 and I can't get either reproduce the include error for the life of me.

One site had "Nodewords basic meta tags" disabled and the other had it enabled. Since I can't reproduce the error now, It's going to be hard to test your suggestion @DamienMcKenna :-/

I'm wondering if something was added or changed in an updated PHP 5.4.x release that may have suppressed it? Maybe something in 6.35? Both sites are on 6.35 which means they have been updated between now and March 2015.

I'm at a loss... Rare when things "just fix themselves" like this.