0

My wordpress installation is at /var/www/html/

I have moved the wp-config.php file one level up to /var/www/

and deleted the original file. However, I am getting a 500 error.

Within the wp-config.php there is a line that read:

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

I have read that wordpress should automatically read the wp-config if it's only one directory up. I am also using Nginx. Not sure why there is a problem here.

The solution at this thread for specifying the path

Is moving wp-config outside the web root really beneficial?

didn't work. I have tried:

<?php

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

/** Location of your WordPress configuration. */
require_once(ABSPATH . '../var/www/wp-config.php');

UPDATE:

I was able to retrieve the following troubleshooting information:

2018/10/29 18:54:09 [error] 10017#10017: *171699 FastCGI sent in stderr:
 "PHP message: PHP Warning:  require_once(/var/www/wp-config.php): failed to
 open stream: Permission denied in /var/www/html/wp-config.php on line 8

PHP message: PHP Fatal error:  require_once(): Failed opening required
 '/var/www/html/../wp-config.php' (include_path='.:/usr/share/php') in
 /var/www/html/wp-config.php on line 8" while reading response header from upstream,

In this instance I defined line 8 as require_once(ABSPATH . '../wp-config.php');

JoaMika
  • 698
  • 6
  • 27
  • 58

1 Answers1

1

In this answer, I assume the following, going by your question:

  • Your WordPress site is at /var/www/html
  • Your WordPress sites's full config file is at /var/www/wp-config.php
  • There is a small file at /var/www/html/wp-config.php that (ideally) will load /var/www/wp-config.php
  • Your /var/www/wp-config.php contains all the necessary content to run your WordPress site (ie, the code from wp-config-sample.php, updated as appropriate with your DB information, etc).
  • There are no other WordPress installations in /var/www/*

Given all that, your /var/www/html/wp-config.php file should contain the following:

<?php

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

/** Location of your WordPress configuration. */
require_once(ABSPATH . '../wp-config.php');

or

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

/** Location of your WordPress configuration. */
require_once(ABSPATH . '/var/www/wp-config.php');

From your /var/www/html directory, the path ../var/www/wp-config.php is looking for /var/www/var/www/wp-config.php, which presumably doesn't exist.

Update

The error message: failed to open stream: Permission denied indicates that your webserver can't read the /var/www/wp-config.php file. It will at least need to read the file in order to open it.

I'd recommend asking your host to fix the permissions, or ask them how you can do it yourself. If you're self-hosting on a *nix VPS or something similar, you'll be looking for the chown and/or chmod commands.

Pat J
  • 12,539
  • 2
  • 29
  • 36