Control Web Panel

Developers => New Modules => Topic started by: MyBuddyBen on January 07, 2016, 03:46:39 PM

Title: [module] Cloudflare - Simple 1-click install or uninstall
Post by: MyBuddyBen on January 07, 2016, 03:46:39 PM
NOTICE: DO NOT INSTALL YET, there is an issue! Please wait for next version

This is a very fast, and easy way to one-click install Cloudflare apache module and also to remove it from the httpd.conf if you want. I'd like you to test and confirm it worked for you as it has for me.  ;D I did write this, so it's bound to have something wrong, so please look over it and see what you think.

Features:
- One-Click install or Uninstall Cloudflare from Apache
- Checks to see if Cloudflare is already installed Apache
- You will need to restart apache after installing cloudflare, do this from the CWP Dashboard.
- Restores Original Visitor's IP address to your server logs

NOTICE: DO NOT INSTALL YET, there is an issue! Please wait for next version
I just tried doing it on a new server and it REALLY messed up the apache.... :( I'm not going to go deeper in this because I think I misunderstood how this works. Basicly what you need is to install cloudflare with the mod_cloudflare.so then add the
LoadModule cloudflare_module  /usr/lib64/httpd/modules/mod_cloudflare.so
to your /usr/local/apache/conf/httpd.conf and restart apache. I was trying to install httpd-devel which I think messes it all up bad. You can read more here about installing cloudflare (https://www.cloudflare.com/resources-downloads/).

Perhaps someone can branch this code I started and make it better or perfect.


Latest Version: 1.1

Screenshots
(http://i.imgur.com/xoBdmCG.png)


Installation
Add this line to:
/usr/local/cwpsrv/htdocs/resources/admin/include/3rdparty.php
Quote
<li><a href="index.php?module=cloudflare"><span class="icon16 icomoon-icon-arrow-right-3"></span>Cloudflare</a></li>



Then create a new file called "cloudflare.php" on:
/usr/local/cwpsrv/htdocs/resources/admin/modules
with this content:
Quote
<center><h2>Cloudflare Apache Module Installer</h2><h3>Version: 1.1</h3><a href="http://forum.centos-webpanel.com/new-modules/(module)-cloudflare-simple-1-click-install-or-uninstall/" target="_blank"><button type="button" class="btn btn-primary">Check for Update</button></a><hr></center>
<?php
$file = '/usr/local/apache/conf/httpd.conf';
$searchfor = 'LoadModule cloudflare_module  /usr/lib64/httpd/modules/mod_cloudflare.so';

// get the file contents, assuming the file to be readable (and exist)
$contents = file_get_contents($file);
// escape special characters in the query
$pattern = preg_quote($searchfor, '/');
// finalise the regular expression, matching the whole line
$pattern = "/^.*$pattern.*\$/m";
// search, and store all matching occurences in $matches
if(preg_match_all($pattern, $contents, $matches)){
   echo "<p class='text-success'>Cloudflare is installed already!</p>\n
   <form action='' method='post'>
<button type='submit' name='uninstall' class='btn btn-danger'>Uninstall Cloudflare</button>
</form>
   ";
}
else{
   echo "
    <center><strong>Run these commands as root in SSH terminal</strong></center>
    <pre>
mkdir /usr/local/cwpsrv/htdocs/resources/admin/modules/cloudflare
cd /usr/local/cwpsrv/htdocs/resources/admin/modules/cloudflare
wget https://www.cloudflare.com/static/misc/mod_cloudflare/mod_cloudflare.c
apxs -a -i -c mod_cloudflare.c
   </pre>
   
   Then click the green button below; then afterward go to the CWP Dashboard and Restart Apache
   
   <p class='text-success'>Cloudflare is not installed!</p>\n
   
   <form action='' method='post'>
<button type='submit' name='install' class='btn btn-success'>Install Cloudflare</button>
</form>";
}

?>
<?php
if(isset($_POST['install']))
{

//Add Cloudflare module to Apache
$path_to_file = '/usr/local/apache/conf/httpd.conf';
$file_contents = file_get_contents($path_to_file);
$file_contents = str_replace("# LoadModule foo_module modules/mod_foo.so","# LoadModule foo_module modules/mod_foo.so \nLoadModule cloudflare_module  /usr/lib64/httpd/modules/mod_cloudflare.so",$file_contents);
file_put_contents($path_to_file,$file_contents);
echo "<center><h4>Go to CWP Dashboard and Restart Apache!</h4></center><br><br>
<h5>Refreshing page in 5 seconds to verify Cloudflare was installed.....</h5>
<meta http-equiv='refresh' content='5' />";

}

if(isset($_POST['uninstall']))
{

//Remove Cloudflare module to Apache
$path_to_file = '/usr/local/apache/conf/httpd.conf';
$file_contents = file_get_contents($path_to_file);
$file_contents = str_replace("LoadModule cloudflare_module  /usr/lib64/httpd/modules/mod_cloudflare.so","",$file_contents);
file_put_contents($path_to_file,$file_contents);
echo "<center><h4>Go to CWP Dashboard and Restart Apache!</h4></center><br><br>
<h5>Refreshing page in 3 seconds to verify Cloudflare was uninstalled.....</h5>
<meta http-equiv='refresh' content='3' />";

}
?>
Title: Re: [module] Cloudflare - Simple 1-click install or uninstall
Post by: pedromidiasf on January 29, 2016, 11:19:54 PM
Thanks buddy :)
Title: Re: [module] Cloudflare - Simple 1-click install or uninstall
Post by: indteam on July 12, 2016, 05:03:40 PM
there is further ideas   ???
Title: Re: [module] Cloudflare - Simple 1-click install or uninstall
Post by: Manoel on July 19, 2016, 02:23:50 PM
I would love to use this module, is expected to be able to use it?

 :)
Title: Re: [module] Cloudflare - Simple 1-click install or uninstall
Post by: vxdas on July 21, 2017, 06:29:24 PM
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2017-07-21 14:27:14 EDT; 2s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 15689 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 15687 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 15687 (code=exited, status=1/FAILURE)

I have this error and it does not start me apache.can help me
Title: Re: [module] Cloudflare - Simple 1-click install or uninstall
Post by: yokowasis on July 22, 2017, 03:17:16 AM
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2017-07-21 14:27:14 EDT; 2s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 15689 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 15687 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 15687 (code=exited, status=1/FAILURE)

I have this error and it does not start me apache.can help me

Well, he did say, do not Install it in a RED BIG FONT. Probably because the module break or something.
Title: Re: [module] Cloudflare - Simple 1-click install or uninstall
Post by: MyBuddyBen on April 04, 2019, 01:20:05 PM
Fixed method and I believe it works with these new changes.
ONLY KNOWN TO WORK WITH APACHE SERVER.. Unsure with APACHE + NGNIX or VARNISH.
But I know it works with just plain Apache selected as the webserver..

I wish I could modify my first post, but the moderators here don't allow you to edit old posts, even if you're the creator. Not a good thing in my opinion for stuff like this that needs updating.

Updated on 04/04/2019

How to install


---FTP method:


1) Upload cloudflare.php to CWP server in /usr/local/cwpsrv/htdocs/resources/admin/modules

Download cloudflare.php:  https://cwpaddons.b-cdn.net/install/cloudflare.php

2) Open URL: yourdomain.tld/admin/index.php?module=cloudflare
3) Click the Install button

---Console method:

1) cd /usr/local/cwpsrv/htdocs/resources/admin/modules
2) wget -O cloudflare.php https://cwpaddons.b-cdn.net/install/cloudflare.php
3) Open Url: yourdomain.tld/admin/index.php?module=cloudflare
4) Click "Install" button
Title: Re: [module] Cloudflare - Simple 1-click install or uninstall
Post by: cotlasweb on October 30, 2020, 09:36:49 PM
Hello,
I have installed it on my server, but how do i enable it on any website or domain and how can any user on my server enable it for his domain or website ? like the do i cpanel...? clicking cloudflare to enable for thier website..