Can’t activate Full WAF on Runcloud Hybrid Stack
-
Hi,
I installed Ninjafirewall but can’t activate Full WAF mode. Please help me.
After installing Full WAF mode, nothing happens. Only the “you need to wait 5 minutes because of caching“ message at the top displays. I waited now 24hours & reloaded php. The problem must be somewhere else.
I use Runcloud as SAAS Management panel with a Digital Ocean Ubuntu Server.
The web app is a hybrid stack. Nginx as reverse proxy in Front of Apache (with .htaccess). Server Api is: FPM/FastCGII chose the recommended install options: – Apache + CGI/ Fast CGI or PHPFPM
– .user.iniI read this already:
https://blog.nintechnet.com/troubleshoot-ninjafirewall-installation-problems& Tried to change the conf file like stated in this thread: https://www.ads-software.com/support/topic/full-waf-mode-with-runcloud-io
But it still don’t works. I’m no expert and don’t know whats the matter.
Is there a solution to activate Full WAF mode with Runcloud ? (Chances are high that I would buy 2 licenses, if it works)
Kind Regards,
Fabian Wagner
-
Try the troubleshooter script: https://nintechnet.com/share/wp-check.txt
-Rename it to wp-check.php.
-Upload it into your WordPress root folder.
-Go to https://YOUR WEBSITE/wp-check.php.
-Delete it afterwards.Then, paste the results here or upload a screenshot somewhere.
Thanks for the answer.
Here we go:
bplist00?_WebMainResource? _WebResourceMIMEType_WebResourceTextEncodingName^WebResourceURL_WebResourceFrameName_WebResourceDataZtext/plainUUTF-8_)https://nintechnet.com/share/wp-check.txtPO.?
<?php
/*
+=====================================================================+
| wp-check.php (c) NinTechNet – https://nintechnet.com/ |
+=====================================================================+
*/
$version = ‘1.9.1’;
/*
+=====================================================================+
| NinjaFirewall’s (WP/WP+ Edition) troubleshooter script |
+=====================================================================+
| 1. Rename this file to “wp-check.php”. |
| 2. Upload it into your WordPress root folder. |
| 3. Go to https://YOUR WEBSITE/wp-check.php |
| 4. Delete it afterwards. |
+=====================================================================+
*/
if (version_compare(PHP_VERSION, ‘5.4’, ‘<‘) ) {
if (! session_id() ) {
session_start();
}
} else {
if (session_status() !== PHP_SESSION_ACTIVE) {
session_start();
}
}
error_reporting(0);
ini_set(‘display_errors’, 0);?><html>
<head>
<meta http-equiv=’Content-Type’ content=’text/html; charset=utf-8′ />
<style>.tdb{background: none repeat scroll 0% 0% #F1F1F1}</style>
</head>
<body style=”font-family: ‘Open Sans’,sans-serif;”>
<h3>NinjaFirewall (WP edition) troubleshooter</h3>
<table width=”100%” border=”0″ cellpadding=”4″ cellspacing=”0″>
<tr class=”tdb”>
<th width=”30%”>HTTP server</th>
<td>:</td>
<td>
<?php
if (! empty( $_SERVER[‘SERVER_SOFTWARE’] ) ) {
echo $_SERVER[‘SERVER_SOFTWARE’];
} else {
echo ‘<font color=”orange”>unknown</font>’;
}
?>
</td>
</tr>
<tr>
<th width=”30%”>PHP version</th>
<td>:</td>
<td>
<?php
if ( defined(‘PHP_VERSION’) ) {
if ( version_compare( PHP_VERSION, ‘5.5’, ‘<‘ ) ) {
echo PHP_VERSION . ‘: <font color=”red”>Error, NinjaFirewall requires PHP 5.5 or greater</font>’;
} else {
echo PHP_VERSION;
}
} else {
echo ‘<font color=”orange”>unknown</font>’;
}
?>
</td>
</tr>
<tr class=”tdb”>
<th width=”30%”>PHP SAPI</th>
<td>:</td>
<td>
<?php
if ( defined(‘PHP_SAPI’) ) {
echo strtoupper( PHP_SAPI );
if ( defined(‘HHVM_VERSION’) ) {
echo ‘ (HHVM detected)’;
}
} else {
echo ‘<font color=”orange”>unknown</font>’;
}
?>
</td>
</tr>
<tr><th width=”30%”> </th><td> </td><td> </td></tr><tr>
<th width=”30%”>auto_prepend_file</th>
<td>:</td>
<td>
<?php
$auto_prepend_file = ini_get(‘auto_prepend_file’);
if ( $auto_prepend_file ) {
echo $auto_prepend_file;
} else {
echo ‘none’;
}
?>
</td>
</tr><?php
if (! empty( $auto_prepend_file ) && file_exists( $auto_prepend_file ) ) {
?>
<tr>
<th width=”30%”>Loader’s path to firewall</th>
<td>:</td>
<?php
$content = file_get_contents( $auto_prepend_file );
if (! preg_match( “file_exists\('([^']+?)'\)
“, $content, $match ) ) {
?>
<td><font color=”red”>Cannot find the path!</font></td>
<?php
} else {
?>
<td><?php echo htmlentities( $match[1] ) ?></td>
<?php
}
?>
</tr>
<?php
}
?><?php
if ( @file_exists( $file = dirname(getenv(‘DOCUMENT_ROOT’) ) . ‘/.htninja’) ) {
?>
<tr>
<th width=”30%”>.htninja</th>
<td>:</td>
<td>
<?php
echo ‘found in ‘. dirname(getenv(‘DOCUMENT_ROOT’) ) . ‘/.htninja’;
?>
</td>
</tr>
<?php
include(dirname(getenv(‘DOCUMENT_ROOT’) ) . ‘/.htninja’);
}
?>
<tr class=”tdb”>
<th width=”30%”>wp-config.php</th>
<td>:</td>
<td>
<?php
if ( file_exists( __DIR__ . ‘/wp-config.php’ ) ) {
$wp_config = __DIR__ . ‘/wp-config.php’;
echo ‘found in ‘. $wp_config;
} elseif ( file_exists( dirname( __DIR__ ) . ‘/wp-config.php’ ) ) {
$wp_config = dirname( __DIR__ ) . ‘/wp-config.php’;
echo ‘found in ‘. $wp_config;
} else {
echo ‘<font color=”red”>Error: cannot find your wp-config.php file</font>’;
echo ‘</td></tr></table></body></html>’;
exit;
}
?>
</td>
</tr>
<?php
if ($wp_config) {
@include($wp_config);
}
?>
<tr>
<th width=”30%”>NinjaFirewall detection</th>
<td>:</td>
<td>
<?php
if ( defined(‘NFW_STATUS’) ) {
if (NFW_STATUS == 20) {
$res = ‘NinjaFirewall WP Edition is loaded’;
if ( defined(‘NFW_WPWAF’) ) {
$res .= ‘ (WordPress WAF mode)’;
} else {
$res .= ‘ (Full WAF mode)’;
}
} elseif (NFW_STATUS == 21) {
$res = ‘NinjaFirewall WP+ Edition is loaded’;
if ( defined(‘NFW_WPWAF’) ) {
$res .= ‘ (WordPress WAF mode)’;
} else {
$res .= ‘ (Full WAF mode)’;
}
} elseif (NFW_STATUS == 22) {
$res = ‘NinjaFirewall Pro Edition is loaded’;
} elseif (NFW_STATUS == 23) {
$res = ‘NinjaFirewall Pro+ Edition is loaded’;
} else {
$res = ‘<font color=”red”>NinjaFirewall is loaded but returned error code #’. NFW_STATUS .'</font>’;
}
} else {
$res = ‘<font color=”red”>NinjaFirewall is not loaded</font>’;
}
echo $res;
?>
</td>
</tr><tr class=”tdb”><th width=”30%”> </th><td> </td><td> </td></tr>
<tr>
<th width=”30%”>Loaded INI file</th>
<td>:</td>
<td>
<?php
$res = php_ini_loaded_file();
if ( $res ) {
echo $res;
} else {
echo ‘none’;
}
?>
</td>
</tr>
<tr class=”tdb”>
<th width=”30%”>user_ini.filename</th>
<td>:</td>
<td>
<?php
$res = ini_get(‘user_ini.filename’);
if ( $res ) {
echo $res;
} else {
echo ‘none’;
}
?>
</td>
</tr>
<tr>
<th width=”30%”>user_ini.cache_ttl</th>
<td>:</td>
<td>
<?php
$res = ini_get(‘user_ini.cache_ttl’);
if ( $res ) {
echo $res . ‘ seconds’;
} else {
echo ‘none’;
}
?>
</td>
</tr>
<tr class=”tdb”>
<th width=”30%”>User PHP INI</th>
<td>:</td>
<td>
<?php
$res = $count = ”;
if ( file_exists(‘php.ini’ ) ) {
$res = ‘php.ini found – ‘;
$count++;
}
if ( file_exists(‘php5.ini’ ) ) {
$res .= ‘php5.ini found – ‘;
$count++;
}
if ( file_exists(‘.user.ini’ ) ) {
$res .= ‘.user.ini found – ‘;
$count++;
}
if ( $res ) {
echo $res;
if ($count > 1) {
echo ‘<font color=”red”>Warning: you have more than one INI file</font>’;
}
} else {
echo “none found”;
}
?>
</td>
</tr>
<tr><th width=”30%”> </th><td> </td><td> </td></tr>
<tr>
<th width=”30%”>DOCUMENT_ROOT</th>
<td>:</td>
<td>
<?php
$res = getenv(‘DOCUMENT_ROOT’);
if ( $res ) {
echo $res;
} else {
echo ‘<font color=”red”>Error: cannot find your DOCUMENT_ROOT</font>’;
}
?>
</td>
</tr><tr>
<th width=”30%”>ABSPATH</th>
<td>:</td>
<td>
<?php
if (defined(‘ABSPATH’) ) {
echo ABSPATH;
$doc_root = rtrim( getenv(‘DOCUMENT_ROOT’), ‘/’ );
if ( ABSPATH != $doc_root . ‘/’ ) {
echo ‘ (ABSPATH != DOCUMENT_ROOT)’;
}
} else {
echo ‘<font color=”red”>Warning: cannot find the ABSPATH</font>’;
}
?>
</td>
</tr>
<tr class=”tdb”>
<th width=”30%”>WordPress version</th>
<td>:</td>
<td>
<?php
if (! empty($wp_version) ) {
echo $wp_version;
} else {
echo ‘<font color=”red”>Warning: cannot find WordPress version</font>’;
}
?>
</td>
</tr>
<tr>
<th width=”30%”>WP_CONTENT_DIR</th>
<td>:</td>
<td>
<?php
if (defined(‘WP_CONTENT_DIR’) ) {
echo WP_CONTENT_DIR;
} else {
echo ‘<font color=”red”>Warning: cannot find WP_CONTENT_DIR</font>’;
}
?>
</td>
</tr>
<tr class=”tdb”>
<th width=”30%”>Plugins directory</th>
<td>:</td>
<td>
<?php
if ( is_dir( WP_PLUGIN_DIR ) ) {
echo WP_PLUGIN_DIR;
} else {
echo ‘<font color=”red”>Error: cannot find WordPress plugins directory</font>’;
}
?>
</td>
</tr>
<tr>
<th width=”30%”>User Role</th>
<td>:</td>
<td>
<?php
if ( $current_user = @wp_get_current_user() ) {
if (! empty($current_user->caps[‘administrator’]) ) {
echo ‘Administrator’;
} elseif (! empty($current_user->caps[‘editor’]) ) {
echo ‘Editor’;
} elseif (! empty($current_user->caps[‘author’]) ) {
echo ‘Author’;
} elseif (! empty($current_user->caps[‘contributor’]) ) {
echo ‘Contributor’;
} elseif (! empty($current_user->caps[‘subscriber’]) ) {
echo ‘Subscriber’;
} else {
echo ‘Unknown role (or user not logged in)’;
}
} else {
echo ‘<font color=”red”>Error: cannot find user role</font>’;
}
?>
</td>
</tr>
<tr class=”tdb”>
<th width=”30%”>User Capabilities</th>
<td>:</td>
<td>
<?php
$cap = ”;
if ( current_user_can( ‘manage_options’ ) ) {
$cap.= “manage_options: OK – “;
} else {
$cap.= ‘<font color=”red”>Error: missing manage_options capability</font> – ‘;
$mo_err = 1;
}
if ( current_user_can( ‘unfiltered_html’ ) ) {
$cap.= “unfiltered_html: OK”;
} else {
$cap.= ‘<font color=”red”>Error: missing unfiltered_html capability</font>’;
$mo_err = 1;
}
echo $cap;
if (! empty( $mo_err ) ) {
echo ‘<br />Make sure you are logged in to WordPress before running this script.’;
}
?>
</td>
</tr>
<tr>
<th width=”30%”>Log dir permissions</th>
<td>:</td>
<td>
<?php
if (! is_dir( WP_CONTENT_DIR .”/nfwlog” ) ) {
echo ‘<font color=”red”>Warning: cannot find NinjaFirewall log dir</font>’;
} else {
if ( is_writable( WP_CONTENT_DIR .”/nfwlog” ) ) {
echo WP_CONTENT_DIR .”/nfwlog dir is writable”;
} else {
echo ‘<font color=”red”>Warning: ‘. WP_CONTENT_DIR . ‘/nfwlog dir is not writable</font>’;
}}
?>
</td>
</tr>
<tr>
<th width=”30%”>Cache dir permissions</th>
<td>:</td>
<td>
<?php
if (! is_dir( WP_CONTENT_DIR .”/nfwlog/cache” ) ) {
echo ‘<font color=”red”>Warning: cannot find NinjaFirewall cache dir</font>’;
} else {
if ( is_writable( WP_CONTENT_DIR .”/nfwlog/cache” ) ) {
echo WP_CONTENT_DIR .”/nfwlog/cache dir is writable”;
} else {
echo ‘<font color=”red”>Warning: ‘. WP_CONTENT_DIR . ‘/nfwlog/cache dir is not writable</font>’;
}}
?>
</td>
</tr>
</table>
<p>NinjaFirewall (WP edition) troubleshooter v<?php echo $version ?>
</p>
</body>
</html>
(>\k?????? /[This is the script code ??
You need to rename it to wp-check.php first, and then to run it.Hi,
i renamed it to .php on my local maschine, uploaded it to my web application root Folder (the Folder with all the wp-Files & wp admin/content/includes-Folders – right?)
then typed it in the browser like this: https://mydomain/wp-check.phpI did it again and got the same script code. I don’t know whats the problem…
I have 3 websites and today i found out that on 1 Site it is actually in FULL WAF mode, but on the other two Sites it isn’t. All 3 Sites are on the same server and have the same settings. Little bit confusing, because if it works on 1 site, it should work on the others too.
Do you have any ideas ?
Need help, file info
WordPress root folder is the folder where is your main index.php.
If you see the script code that means your have some PHP configuration issue. Check your php.ini, .user.ini or .htaccess. Maybe an encoding issue (caching plugin etc) or some weird rules?Yes root folder is correct.
I finally found the fault – my fault.
The path to my runcloud php-extra configuration wasn’t 100% right in all my conf files. I forgot to change the web app name in the other 2 conf files.
For all people on runcloud having the same problem – Paste this (with your own path) in your web application conf files located under etc/php-extra
php_admin_value[auto_prepend_file] = /your/path/to/ninjafirewall.php
- The topic ‘Can’t activate Full WAF on Runcloud Hybrid Stack’ is closed to new replies.