How to install webuzo web panel , nginx and setup .htacess rules for wordpress and other CMS

Webuzo web panel is single user web control panel. You can deploy Web Apps (WordPress, Joomla, Drupal, etc) or System Apps (Apache, NGINX, PHP, Java, MongoDB, etc) on your virtual machines or in the Cloud.


What is Nginx?
Nginx  is a free, open-source, lite weight, high-performance web server and reverse proxy, as well as an IMAP/POP3 proxy server. Nginx is known for its high performance, stability, rich feature set, simple configuration, and low resource consumption.


Webuzo control panel support nginx web server. Nginx will help us to mitigate performance. Here I will try to install webuzo, nginx and wordpress. We’ll face 404 not found message if we enable wordpress rewrite rules. Because nginx doesn’t support .htacess. So we need to fix the issue. I will show you how to use .htaccess rules on nginx server. Okay, first we will install webuzo on centos 6.

Before we proceed to setup, we need to remove Apache from our server. Usually, Apache installed by default on the server conflicts with Webuzo’s Apache Binary located at /usr/local/apps/apache resulting in the “Internal Server Error”.

To remove apache, run following command.

yum -y remove httpd


Install Webuzo

wget -N
chmod 0755

The installation will begin immediately. After complete the installation you will see something like this.


This will setup the required Web Server and other important configurations. Note : A log file of the installation process will be created – /root/webuzo-install.log

Initial Setup

We need to complete initial setup now. Go to http://youripaddress:2004 and you will see like this.


Complete the initial setup. Then go to http://youripaddress:2002

Nginx Installation

1) Install LEMP from the Webuzo Panel >> Apps >> Stacks


Switch to Nginx

Now we need to switch from Apache to Nginx. Go to System Utilities and select Nginx. Then click on the Edit settings button.


Confirm nginx is running from Webuzo Panel >> Services Menu


Now complete the WordPress installation. After complete the installation we need to configure nginx for url_rewrite.


We need to do it from ssh. Okay, lets edit /usr/local/apps/nginx/etc/conf.d/common to make wordpress run permalinks.

vi /usr/local/apps/nginx/etc/conf.d/common


Add the following codes end of the file.

location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;


Now restart nginx.

service nginx restart


Now put wordpress permalink code on you .htaccess file.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Completed our setup and configuration.

Updated: August 25, 2015 — 3:43 pm


Add a Comment
  1. Hi,

    Something is changing my htaccess and make my site unavailable.

    In this example see how “RewriteRule ^index.php$ – [L]RewriteCond %{REQUEST_FILENAME} !-f ” is on one line when is suppose to divide in two:

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    This is happening like one time a week. I have wordfence, stop spammers, bruteprotect and anti-malware. I can’t find anything that could be making does changes.

    Any ideas? Thanks!

    1. you can change your file permission of your htaccess file , so no one can’t change it again .

  2. Your code below helped me:

    location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$args;

    But I’ll like to add to it. If you have more than one website (maybe of different CMS) hosted in the same VPS account then adding the above code to (/usr/local/apps/nginx/etc/conf.d/common) will affect the rest of the sites.

    Adding the above code to (/usr/local/apps/nginx/etc/conf.d/webuzoVH.conf) after the:

    server {
    listen *:443 ssl http2;

    =add the code here

    should fix the issue.

    Thanks for your lights!

Leave a Reply

Your email address will not be published. Required fields are marked *