Unable to delete AWS Elastic Beanstalk Environment “resource XX-XXXXXXX has a dependent object”

Unable to delete AWS Elastic Beanstalk Environment “resource XX-XXXXXXX has a dependent object”

Unable to delete AWS Elastic Beanstalk Environment "resource XX-XXXXXXX has a dependent object" - MervCodes


You will usually get this error when you are trying to delete an Elastic Beanstalk environment.


As the message in the Events log states, the security group of your Elastic Beanstalk’s environment’s ec2 instance is being referenced in another security group. (This is usually done to allow the ec2 instance to have access to another AWS service.) In this case the security group is referenced in our AWS RDS security group, the deletion works right after removing the reference.

How to Setup Let’s Encrypt FREE SSL Certificate on Centos 6 Apache using Certbot?

Having SSL on your website these days is important especially if you want your website to rank better on Google search, and that’s when Let’s Encrypt come into the picture.

Let’s Encrypt is a free, automated, and open certificate authority (CA), run for the public’s benefit. It is a service provided by the Internet Security Research Group (ISRG).

Without further ado, let’s begin with the tutorial.

Step 1: Install Certbot

Installing Certbot via certbot-auto script.

Step 2: Get Certificate & Edit Apache Config

It should bring you through a series of steps to have your SSL certificate setup.

Select the site you want to have SSL certificate installed on.

Step 3: Configure CRON Job for Cert Renewal

The following are commands to renewal your SSL certificate.

Dry Run

Actual Command

Add actual command to crontab.

Enter :i and paste the following in the file following by ctrl+c and :wq to quit and save editor.


That’s it all is done.

8 Simple Steps to Setup a Web Server with Apache Virtual Hosts & MySQL in Centos

This tutorial will be guiding you in setting up a web server with pre-installed Centos. In summary, you will be installing Apache and MySQL, and learning how to configure virtual hosts in Apache.

Note: before proceeding with this tutorial. Make sure you figure out how to SSH into your server first.

Step 1: Update Centos

Step 2: Install development tools on Centos

Step 3: Install some useful tools

mlocate – This is used to assist you in looking for files in Centos. You will see it in action later.

nano – This a text editor in Centos that is much easier to use than vi or vim.

Step 4: Install Apache

Step 4.1: Install Apache

Step 4.2: Start Apache service

Step 4.3: Set Apache to run on server boot/restart

Step 5: Install MySQL

We are going to install MySQL 5.5 here.

Step 5.1: Add repos and install MySQL 5.5

Step 5.2: Start MySQL service

Step 5.3: Configure MySQL

After running the above command, you will get a bunch of prompts.

  1. Simply hit enter on initial root password prompt as we don’t have any yet from a fresh installation.
  2. Enter your new password for root user.
  3. Simply enter “y” = yes for the remaining options.

Step 6: Set Timezone for server

In the above command, I have set the timezone to Singapore, simply because I’m from Singapore. Feel free to change it to your own timezone.

Step 7: Install SSL support

This will enable SSL support on your web server if you wish to add your own SSL certificate here in future.

Step 8: Setup Virtual Host on Apache

Before proceeding, now we can use mlocate which we have installed previously.

Running the above command sort of index the files in your server for mlocate to work.

Use mlocate to look for Apache’s configuration file.

You should be getting something like this, “/etc/httpd/conf/httpd.conf”.

So now we can make use of nano that we have installed previously.

The above will allow start editing of Apache configuration file.

Step 8.1: Editing Apache Configuration

  1. Hit ctrl+w and type “/var/www” and enter
  2. Change DocumentRoot “/var/www/html” to DocumentRoot “/var/www”
  3. Hit ctrl+w again
  4. Change <Directory “/var/www/html”> to <Directory “/var/www”>
  5. Hit ctrl+w again and type “AllowOverride None” and enter
  6. Change AllowOverride None to AllowOverride All
  7. Hit ctrl+w again and type “NameVirtualHost *:80” and enter
  8. Change #NameVirtualHost *:80 to NameVirtualHost *:80
  9. Add one more line below it, NameVirtualHost *:443
  10. Then hit ctrl+v multiple times till you reach the end of the document

Do not close the file yet.

So what you have done above is doing some basic configuration to Apache for virtual host to work.

Now we need to setup virtual host in Apache configuration.

Below is a sample virtual host configuration.

Notice that “tutorial.mervintan.com” is the subdomain/domain you are trying to configure. So simple just change all occurrence of that to your own subdomain/domain.

To proceed, paste that at the end of Apache configuration file.

To finish editing Apache configuration file.

Hit ctrl+x and enter.

Last step, restart Apache.

Step 8.2: Setup directories and files for a Virtual Host

Remember that we set our Apache document root to “/var/www” above.

Navigate to that directory now.

Create virtual host directory for your subdomain/domain.

Get into the folder.

Create error and requests log files.

Create folder to host files for this virtual host.

Inside public_html folder, this is where you should place all your .html, .js and .css files for hosting.

Step 8.3: Setting permission for hosting directory

This will set Apache to be owner of those folders you have just created.

Step 8.4: Flush iptables

Flushing iptables will remove all firewall records on your server. Then you will be able to access your site.

Finishing Up

If you remember we setup the virtual host for “tutorial.mervintan.com”. Do remember to setup your DNS record that points “tutorial.mervintan.com” to your server ip address.

That’s it you are done!

How to create Apache htpasswd file in Linux OS?

What is htpasswd?

At times during web development, we will need to prevent the whole world from being able to access a particular website. That’s when Apache htpasswd comes into the picture. htpasswd is usually used together with htaccess.


This tutorial will teach you how to create a htpasswd file using command line.

Creating a htpasswd for the first time


Appending new user to existing htpasswd file


Using htpasswd in htaccess


That’s it you are done!

Cross Origin Resource Sharing (CORS) Blocked for Cloudfront

Cross Origin Resource Sharing is a very common issue faced.

You will usually get the message like the following.

Font from origin ‘https://k3j3jd3k2j.cloudfront.net’ has been blocked from loading by Cross-Origin Resource Sharing policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘https://www.mervcodes.com’ is therefore not allowed access.

There are two ways to resolve this issue.

Solution 1: S3 Bucket Way

This is the most common solution, which is to set the CORS header in your S3 bucket.



Solution 2: DNS Way

Step 1

Create a subdomain like

instead of using

Step 2

Create a CNAME record that points



That’s it. You are done!

How to Install Vesta CP on CentOS 6.8 VPS from DigitalOcean?

What is VestaCP?

VestaCP is a web-based control panel for you to manage your server. In fact VestaCP is a much lightweight version of the famous cPanel, which will cost you a bomb. VestaCP is open source, which means its FREE.

Apart from being free, there are commercial plugins available on VestaCP, which are actually quite useful to a certain extend.

There are two commercial plugins that are available for purchase. The good news here is that they are available in lifetime license. You can see them at the image below.

VestaCP Commercial Plugins - MervCodes
VestaCP Commercial Plugins – MervCodes

Without further delay, lets begin with the technical stuffs.

How to install VestaCP?

1. First thing to do is to download VestaCP installation script.

2. Run the installation script

Simply hit “y” for everything except filling up of your FQDN and admin email address.

3. Finally

When the installation completes, you should receive an email at the inbox of the admin email address that you entered previously.

4. [Optional] Upgrade default PHP 5 to PHP 7

In case you want more speed for your PHP-Powered website, you can upgrade your PHP to PHP 7 by following the following guide.



That’s it. You got yourself a lightweight web-based control panel for your server.

Install Varnish Cache on CentOS 6/7

Varnish Cache is a tool that helps to cache web pages for quicker loading of web pages.

Here we will cover how to install Varnish Cache on CentOS 6/7.

Step 1: Add EPEL

CentOS 6

CentOS 7

Step 2: Download Varnish Cache

CentOS 6

CentOS 7

Step 3: Install Varnish Cache

CentOS 6/7

Step 4: Start Varnish Cache

CentOS 6

CentOS 7

Step 5: Set Varnish Cache to run on boot

CentOS 6

CentOS 7


That’s it! It’s that simple to setup Varnish Cache.

Feel free to contact me at [email protected] if you have any questions.

Setup NGINX Load Balancer with SSL on CentOS 6

Load balancing is a very common mechanism used to distribute traffic for systems. This tutorial goes through step by step from installation of NGINX on your CentOS web server and configuring your NGINX load balancer after it is installed successfully.

1. Add NGINX Repository

2. Install NGINX

3. Start NGINX

4. Configure NGINX config files

Locate NGINX configuration files at /etc/nginx/conf.d/ directory.

Ensure that you have SSL configured for your web server, if not you can follow the tutorial on Setting Up an SSL Secured Webserver with CentOS.

After you are done with the above steps, proceed to edit the following NGINX configuration file for SSL.

Editing NGINX config file

Add the following above your server {} module

Note that the servers will be served in round robin order. You can refer to NGINX documentation for more configurations.

The next few changes is to be done within the server {} module

Enable server to listen to port 443

Add server name

If you have followed my tutorial on Setting Up an SSL Secured Webserver with CentOS, then you can configure your SSL certificate and key as follows.

Next under location / {} module, add the following lines.

After which, save your NGINX configuration file.

Then restart NGINX.

That’s it you are done. If you have any other questions, do feel free to drop a comment below.

Install Zabbix Agent on CentOS/RHEL

Zabbix is an open source software for application and network monitoring. There are two types of Zabbix installation, namely Zabbix server and Zabbix agent. Zabbix server is installed on the server where you will oversee and monitor all the networks or devices. Zabbix agent is installed on all networks or devices so that the Zabbix server is able to communicate with it.

This tutorial guides you step by step on how to install and configure a Zabbix agent on CentOS/RHEL server.

Installing Zabbix Agent

1. Configure Yum Repository

Run the following commands accordingly to the version of CentOS/RHEL you are using.




2. Install Zabbix Agent

Command to install Zabbix agent

3. Update Zabbix Agent Configuration File

Your Zabbix agent configuration file should be located at /etc/zabbix/zabbix_agentd.conf.

Edit configuration file

Modify the following lines

Save and exit nano editor

4. Restart Zabbix Agent

Command to restart Zabbix agent

(Additional Information) Alternately, you can start/stop your Zabbix agent via the following commands.


That’s it! You are done installing Zabbix agent on your server.

In case you have missed out on how to install Zabbix server on your server, you can refer to the guide on how to install Zabbix server on CentOS/RHEL.

Feel free to email me at [email protected] if you have any questions.

Install Zabbix Server on CentOS/RHEL

Zabbix is an open source software for application and network monitoring. There are two types of Zabbix installation, namely Zabbix server and Zabbix agent. Zabbix server is installed on the server where you will oversee and monitor all the networks or devices. Zabbix agent is installed on all networks or devices so that the Zabbix server is able to communicate with it.

This tutorial guides you step by step on how to install and configure a Zabbix server on CentOS/RHEL server.

1. Set up Apache, MySQL and PHP

Install Apache

Install MySQL

Install PHP

Start Apache and MySQL services

Setup MySQL by running the following command

2. Configure Yum Repository

RPM repository needs to be configured before installing Zabbix.

Run the following commands according to the version of OS that you are using.




3. Install Zabbix Server with MySQL

Command to install zabbix server

4. Setup Zabbix Apache Configuration

Locate Zabbix’s own Apache configuration file. By default it should be located at /etc/httpd/conf.d/zabbix.conf. Modify the config file by added your time zone.

Added time zone to config file

Restart Apache service after changing the time zone value

5. Create Zabbix MySQL Database

Zabbix MySQL user and database is required as part of Zabbix server installation.

Login to your MySQL first

After which you will be prompt to enter your root password that you have configured previously when you setup MySQL.

Create Zabbix database

Create Zabbix MySQL user to access Zabbix database

Grant privileges to Zabbix user on Zabbix database

Flush privileges

Exit MySQL

After creating MySQL user and database for Zabbix, you will need to restore the default MySQL database provided by Zabbix. The files can be found at /usr/share/doc/zabbix-server-mysql-<version>/create/ directory.

Note: remember to change the version accordingly to the version that you are installing.

6. Start Zabbix Server

Command to start Zabbix server

7. Start Zabbix Web Installer

You can now access your Zabbix web installer via the following url

Zabbix Setup Welcome Screen

Following is the welcome screen of Zabbix web installer. Click on Next to proceed.

Screen Shot 2015-08-15 at 11.55.34 am

Installation pre-requisites

If everything is ok, click Next to proceed.

Screen Shot 2015-08-15 at 11.57.54 am

Configure Database Connection

Enter the database information that you have created previously. Then click on Test Connection. If everything is correct, click Next to proceed.

Screen Shot 2015-08-15 at 12.00.35 pm

Zabbix Server Details

Click on Next to proceed.

Screen Shot 2015-08-15 at 12.01.46 pm

Pre-Installation Summary Screen

If all information is correct, click on Next to proceed.

Screen Shot 2015-08-15 at 12.12.48 pm

Installation Success

Click on Finish to proceed.

Screen Shot 2015-08-15 at 12.03.40 pm

Zabbix Login Screen

You can now login to Zabbix via the following url

Default username and password is as follows

Screen Shot 2015-08-15 at 12.15.08 pm



That’s it! You are done installing Zabbix server on your server. For installation of Zabbix agent, you can refer to my guide on how to install Zabbix agent on CentOS/RHEL.

Feel free to email me at [email protected] if you have any questions.