Archive

[Solved] HTTP Error 503. The service is unavailable

HTTP Error 503. The service is unavailable

Web servers such as LiteSpeed and Apache use various codes to tell browsers about responses. For example, if the web server replies back with HTTP code 200, it means that everything is fine and the response generation was successful. There are many other response codes, but today we will discuss HTTP Error 503, and when this usually happens you get following error on your browser: HTTP Error 503. The service is unavailable.

 

If you are not the administrator of the site, there is nothing much you can do as mostly this error indicates that there is something wrong on the server side. You can either refresh the page, visit later or better notify an administrator of the site. However, if you are the administrator of the site, you can do much to figure out what is wrong and there are various reasons and ways to fix this error. There are multiple web servers, each may give you a slightly different error message, such as:

 

  1. 503 Error
  2. Http/1.1 Service Unavailable
  3. 503 Service Temporarily Available
  4. 503 Service Unavailable
  5. HTTP Error 503
  6. Service Unavailable – DNS Failure
  7. Error 503 Service Unavailable

 

Usually, the main thing to look for is error code which is HTTP error code 503. Today we will see how we can discuss various reasons and respective ways to fix the issue.

 

Server Side Issue

 

Before deep diving into various reasons as to why this could happen, I would again like to mention that this is a server side issue. All errors in the 5xx range are considered errors on the server side including 503 Service Unavailable Error. However do keep in mind that 503 error means the server was able to process your web request and it was functioning properly but it chooses to return 503 error code because due to some problem/issue server is not able to process this request the way it should have.

 


Refresh the page

 

Some times you will get the following error

 

503 Service Unavailable – The server is temporarily busy, try again later!

 

 

 

It may really be a temporary error as the error message says, so wait some time and refresh the page. This can happen to high traffic sites, where enough resources are not available to handle the request. On the user end, be careful if you are seeing this error on the payment related pages, and make sure you won’t get charged twice.


Using our Apache as Backend Feature

 

If you are our customer and using our Apache as Backend feature, there is a chance that Apache is down. In this case frontend server which is OpenLiteSpeed, will give you 503 error, as it is failed to connect to Apache. See if Apache is running

 

systemctl status httpd

 

If Apache service is not running, you can start with

 

systemctl start httpd

 

And see if your issue is resolved.

 

PHP FPM is down

 

If you get something like (Assuming you are using our Apache as backend feature or your stack includes PHP-FPM)

 

Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

 

This means your PHP-FPM service is down. You can start php-fpm using

 

systemctl start php-fpm

 

In case you are our customer, there are multiple PHP-FPMs are available for different PHP versions and their respective commands are:

 

systemctl start php54-php-fpm

systemctl start php55-php-fpm

systemctl start php56-php-fpm

systemctl start php70-php-fpm

systemctl start php71-php-fpm

systemctl start php72-php-fpm

systemctl start php73-php-fpm

 


Check various log files

 

If your issues are still not resolved, you can start to check various log files. In the case of CyberPanel and LiteSpeed (OpenLiteSpeed), log files to check are:

 

/usr/local/lsws/logs/error.log

/usr/local/lsws/logs/stderr.log

 

In the case of Apache

 

/etc/httpd/logs/error_log

 

You can do an efficient search of log files using the grep command such as:

 

cat log_file_path | grep error

cat log_file_path | grep notice

 

This command will make sure that you only get the most relevant information, otherwise, you may also get info level messages in your log files and they are not relevant in this case.


503 Errors due to PHP Malfunction

 

Most of the times 503 errors can come due to a problem in your PHP code, or either PHP-FPM/LSPHP are not able to produce response thus server started giving you 503 error. It is always recommended to first create a phpinfo page and see if your PHP side is working fine. If you can see the phpinfo page, you can move forward to further debug the cause, otherwise, make sure LSPHP is working fine and external application is created properly or PHP-FPM is up and running.

 

Disable PHP OPCode Caching (xCache, ACP or eAccelerator)

 

On a default install of CyberPanel (OpenLiteSpeed or LiteSpeed Enterprise), OPCode caching is enabled. Sometimes different sorts of opcode caching can have compatibility issues with LSPHP (PHP). So if you are getting HTTP Error 503 Error better try to disable opcode caching. On CyberPanel you first need to find out which PHP version is used by your site. To find out your PHP version on CyberPanel run the following command

 

cat /usr/local/lsws/conf/vhosts/yourdomain.com/vhost.conf | grep php

 

For example, the PHP version of your site is 7.2. Go to the configurations directory of PHP 7.2 and disable opcode caching.

 

cd /usr/local/lsws/lsphp72/etc/php.d

mv 10-opcache.ini 10-opcache.ini.bak

systemctl restart lsws

or

/usr/local/lsws/bin/lswsctrl restart

 

This will disable OPCode caching. If you are not on CyberPanel, you need to find the php.ini file for your PHP and disable OPCode caching. Usually, php.ini location is disclosed in phpinfo page. If your issue is still not resolved, you can move on to the next step.

No space left on /tmp

 

Some web application use /tmp directory to store temporary files (session data etc). If /tmp is full you can get HTTP Error 503 Error. Use the following commands to inspect /tmp directory space

 

df -h

df -i

 

 

PHP memory_limit reached

 

memory_limit is a php directive that specifies how much memory a PHP script is allowed to allocate. Sometimes your application might be exceeding this limit, thus failed to produce response for the web server resulting in HTTP Error 503 Error. As explained above, first find out the PHP version used by your site. Then you can directly increase memory_limit from CyberPanel interface.

 

Login to your CyberPanel Dashboard then from left sidebar PHP -> Edit PHP Configs

 

 

  1. Select PHP version to change the value of memory_limit directive.
  2. Set the new value of the directive.

 

Finally, scroll down and click Save Changes.

 

max_execution_time reached

 

max_execution_time is similar to memory_limit. So if your PHP script exits early without producing response again you will get the same error. You can follow the same procedure as described above to fix max_execution_time as well. Make sure to set it to a high enough value so that your script is properly executed.


Conclusion

 

We’ve pretty much discussed all the possible causes of “HTTP Error 503. The service is unavailable”. However we recommend moving your sites to CyberPanel, because CyberPanel use LiteSpeed servers. Which means in low cost VPS you can host more sites, and using LSCache WordPress plugin you can avoid many such errors including HTTP Error 503. Because if your pages are cached, PHP engine is not used, thus giving other applications more resources to run. So in a low cost server you can run multiple sites at super fast speed and avoid such errors. You can learn in our OpenLiteSpeed vs NGINX comparision post as to why you would use CyberPanel and OpenLiteSpeed.

 

You can also get our managed vps and let us do this for you. We offer 3 days trial (no credit card required, plus free migration and fully managed support)

cPanel Alternative: CyberPanel! Hosting Control Panel for LiteSpeed

cPanel has been around for ages, there are many people using cPanel but due to its cost, they are always looking for cPanel alternative. There are hundreds of cPanel alternatives out there but today we will talk about CyberPanel. CyberPanel not only is a great cpanel alternative, but it is super fast as well. Sites running on CyberPanel are fast, as CyberPanel use OpenLiteSpeed as a server in the free version and LiteSpeed Enterprise Web Server in the paid version.

 

CyberPanel is super easy to use due to its user-friendly GUI (Graphical User Interface). According to current users, the learning curve is not very hard when they shift to CyberPanel. CyberPanel have 2 variants, one is free and other is paid. We will first learn the difference below.

 

CyberPanel for free

 

The free variant of CyberPanel comes with OpenLiteSpeed. Apart from that, it is 100% the same as the paid version of CyberPanel except for the containerization feature. However, if you are using CyberPanel for personal use, containerization feature does not make sense to you.

 

CyberPanel paid or CyberPanel Enterprise

 

The paid version of CyberPanel comes with LiteSpeed Enterprise Web Server. At the time of this writing, there are only a few differences between OpenLiteSpeed and LiteSpeed Enterprise. Let’s discuss them below:

 

  1. LiteSpeed Enterprise have ESI (hole punching)
  2. QUIC (QUIC is planned to be included in OpenLiteSpeed as well)
  3. Full .htaccess support, whereas OpenLiteSpeed also have support for .htaccess but it is limited to certain features.

 

If you want to learn other differences in details you can visit here.


What should I choose, CyberPanel or CyberPanel Enterprise?

 

Now there comes a great question. How can I determine as to what server I need?

 

You are good with OpenLiteSpeed, if:

 

  1. You just have a normal WordPress blog.
  2. WordPress blog with WooCommerce but you don’t use ESI.
  3. Forum scripts like Vanilla or other forums scripts that do not rely heavily on the .htaccess file.
  4. Drupal-based sites.
  5. Joomla Based sites.

 

Or any other sites that don’t heavily rely on .htaccess files and don’t require ESI feature.

 

You will definitely need LiteSpeed Enterprise, if:

 

  1. If you are using ESI hole punching on WordPress, mostly needed with WooCommerce stores and shopping sites.
  2. Magento and Prestashop stores as their cache plugins require ESI.
  3. And apart from that, almost everything is compatible with LiteSpeed Enterprise.

Features that come with CyberPanel

 

Let’s list out some major features that come with CyberPanel.

 

  1. OpenLiteSpeed or LiteSpeed Enterprise Web server (Apache can be used as backend through our platform)
  2. Mail Server (Postfix/Dovecot/Rainloop)
  3. Email Marketing Tool Kit.
  4. Security via FirewallD and SSH Hardeing options.
  5. FTP Server
  6. DNS Server
  7. Docker Manager
  8. Containrization. (Also available via our platform)
  9. Email Limits

 

All these features are available via just one install command, we will see how we can install and use CyberPanel as a cpanel alternative in this tutorial.


Step 1: Get your self a VPS

 

The first step is to get yourself unmanaged or managed vps with CyberPanel. Our platform is specifically designed to interact with CyberPanel. So CyberPanel is automatically installed and is ready to use for you.

 

 

Once your VPS is ready login to your platform account.

 

  1. From left sidebar click Services.
  2. Then click Manage on your recently ordered service.

 

 

Now click Manage CyberPanel and it will take you to the page, where you can remotely manage CyberPanel through our platform giving you many extra features. We are further going to discuss additional points in our next steps.


Step 2: Update DNS for your domain

 

Before moving on to creating your website, we will first make sure that DNS records are properly set. Since our domain is registered at NameCheap we will demonstrate through it. However for other domain registrars it is pretty much similar. Login to your NameCheap account. In your NameCheap dashboard you will see list of your registered domains such as:

 

 

Click Manage for the domain you are going to use, in this example we are using cyberhosting.org.

 

 

After clicking Manage, click Advanced DNS, and create your first nameserver.

 

Here 192.168.100.1 will be IP of your server make sure to replace it with the IP of your server and finally click done. This will create the following nameserver

 

ns1.yourdomain.com -> 192.168.100.1

 

Similarly, create a second nameserver such as ns2.yourdomain.com

 

 

  1. Click Domain from the top menu again, it will take you to the main dashboard for the domain.
  2. From drop down select Custom DNS and enter nameservers you just created above.
  3. Finally, click the Tick Mark.

 

Once all of these steps are done, you are ready to create your first website through our platform. However, if you don’t want to go into the hassle of registering private nameserver you can skip everything above and set up your dns on CloudFlare using this guide. With CloudFlare all you have to do is set their provided nameservers and then add A records in their dashboard, you can also turn on CloudFlare proxy for speed improvements, but it is the topic of another day.


Step 3: Create Website in CyberPanel

 

After clicking Manage CyberPanel from the last step you will land on a page that will look like:

 

 

Click Create Website, so that it can take you to create a website page.

 

 

Fill the Create Website form and click Create Website. Please note that you can also check SSL and Apache as Back End option. Learn more about Apache as Back End option for SSL option to work make sure your DNS records for the domain is already updated as discussed in the step above. Once the website is created, we can move on to further important settings like creating an FTP account or database for your application.


Step 4: Creating an FTP Account

 

 

Once the website is created, click on your service ID. You will be brought back to the page where you can manage your sites created in the CyberPanel.

 

 

Click the launch icon.

 

 

From the left sidebar, click Create FTP Account under FTP. Fill in all the details and click Create FTP button. You can leave the path empty and default path will be used which is usually document root of the website (i.e. /home/domain.com). But if you set some path such as helloworld the final path will be relative to document root such as /home/domain.com/public_html/helloworld.

 

FTP Account is necessary to upload your website/application files. But if you are going to use our Auto Installer creating FTP account is not really necessary.


Step 5: Creating a Database Account

 

 

If you followed our previous step you are already on the page from where you can click Create Database from the left sidebar, if not, you can click Server ID from top, launch the website and then you will land on the page where you are able to create a database for websites.

 

Fill in all the details and click Create Database. However as discussed in the last step, if you have used our Auto Installer, it will also take care of database creation, so you need not create a database as well.


Step 6: Backup Strategy

 

Until now you can guess how easy it is to use CyberPanel which makes it a great cPanel alternative. However, without a proper backup strategy, you can’t have a good night sleep. Our platform provides you various automatic ways to configure daily/weekly backups. You can configure daily/weekly backups to following storage services:

 

  1. AWS S3 (You can sign with AWS to get 5GB space for free)
  2. DigitalOcean Spaces
  3. Or self hosted S3 Compatible MINIO Storage.

 

 

Configure Backups to AWS S3

 

 

Login to our dashboard and go to services and select the service on which you want to configure backups. And click Manage CyberPanel.

 

On this page scroll down and click S3 Backups. Which will land you on this page:

 

 

First, you need to connect your AWS account. You can create a separate user through Amazon IAM Console. More detailed instructions are available here. Make sure you give that user programmatic access and access to S3 related operations in your account. Finally, click Connect Account.

 

From the left sidebar, click Create Backup Plan. So that you can finally send backups to AWS S3. Before creating a plan make sure you have created a new bucket in AWS S3 as you need to select a bucket to send backups to. On the create plan page you will be asked for:

 

  1. Plan Name – Plan names are used to identify backup plans when they are sent to AWS S3 Buckets
  2. AWS S3 Bucket: AWS S3 Bucket that will be used to store backups
  3. Frequency: How often the backup will be generated and sent (Daily/Weekly)
  4. Finally select domains that you want to include in the backup plan.

 

Once all of these are configured, just click Create Plan. You can also force run a backup at any point or view backups log right through our platform.

 

Configure backups to DigitalOcean Spaces

 

 

Login to our dashboard and go to services and select the service on which you want to configure backups. And click Manage CyberPanel.

 

On this page scroll down and click DO Backups. Which will land you on this page:

 

 

First, you need to connect your DigitalOcean account. Credentials can be configured in your DigitalOcean Apps & API section. Finally, click Connect Account. Once connected, the page will refresh and gives you confirmation that your account is successfully connected.

 

From the left sidebar, click Create Backup Plan. So that you can finally send backups to DigitalOcean Spaces. Before creating a plan make sure you have created a new Space as you need to select space to send backups to. On the create plan page you will be asked for:

 

  1. Plan Name – Plan names are used to identify backup plans when they are sent to DigitalOcean spaces
  2. Region: Select the region where you have created a space to store backups
  3. DO Bucket: DO Bucket/Space that will be used to store backups
  4. Frequency: How often the backup will be generated and sent (Daily/Weekly)
  5. Finally, select domains that you want to include in the backup plan.

 

Once all of these are configured, just click Create Plan. You can also force run a backup at any point or view backups log right through our platform.


Conclusion

 

We’ve discussed almost every angle that is needed to run a basic or advanced site. From creating a website to creating a database and finally choosing the backup strategy we did it all. As you can see it is super easy and convenient which make CyberPanel a great cPanel alternative. Depending upon your needs you can either choose a free or paid version as well.

Switch Sites Between Pure OpenLiteSpeed and Apache + OpenLiteSpeed

In our privious documented we’ve discussed how you can create a website that use Apache as back end server. You can read about it here. If you want to learn more about this feature you can do that here. But let say if you have initially created website without using Apache as back end server, what can be done then? Answer is very simple, you can use Apache Manager to switch to Apache plus OpenLiteSpeed or vise versa at any point.


Switch to Apache + OpenLiteSpeed

 

Nagivate to Services -> Services -> Click Manage on Related Service -> Click Manage CyberPanel

 

There you will see list of websites, click on Launch Icon for the website you want to perform switch on. Then you will land on following page:

 

 

From the left menu under Apache Manager Click Switch. You will then land on page where you can switch to Apache + OpenLiteSpeed or pure OpenLiteSpeed (if site is on Apache + OpenLiteSpeed) with one click.

 

 

Here just select the desired PHP Version and click the switch button, you can see that button says Switch to pure OpenLiteSpeed as this site was originally created with Apache as back end.

How to create Website that use OpenLiteSpeed + Apache

We’ve discussed about Apache being used pararrel with OpenLiteSpeed in our privious doucment here. In the privious document we’ve discussed about what it is and its benefits. In this document we will learn how we can create a website that use OpenLiteSpeed + Apache.

Before moving forward you need to order a VPS through our platform and make sure it is already up and running, you can follow our order guide for more details regarding this.


Creating Website using Apache as Back end

 

 

 

Go to Services -> Services -> Click Manage, you will see a page where you can do basic management of your managed CyberPanel VPS, it will look something like:

 

 

 

Once there click Manage CyberPanel, it will take you the to page where you can manage various aspects of your server including creating a website. From top right corner click Create Website, and you will land on a page that will look like:

 

 

Here you can create website, fill all the details and make sure you check Apache as Back end. If this is your first website where you selected Apache it will then take some time to install Apache and PHP-FPM. Stay calm while the sites get created.

 

Please note that if your server have LiteSpeed Enterprise checking Apache as Back end will not make any difference because LiteSpeed Enterprise already offer all the features that Apache has to offer.

 

 

OpenLiteSpeed + Apache on CyberHosting Platform

At CyberHosting we use CyberPanel. We have a product line called CyberPanel VPS, this product line make use of OpenLiteSpeed web server. OpenLiteSpeed is fast and Event driven web server and have intelligent cache module that can help you achieve much better results when compared to NGINX or Apache. You can read this post as to why people start to use OpenLiteSpeed server.

 

However OpenLiteSpeed does not fully support .htaccess rules, also there is no support for custom php.ini files in OpenLiteSpeed.

 

Thus at CyberHosting we developed a solution where you can use Apache behind OpenLiteSpeed.


How that works?

 

On front end still you use OpenLiteSpeed, on backend Apache is configured. Thus you can still benefit from OpenLiteSpeed cache module and get similar speed benefits plus full support of .htaccess rules and custom php.ini files.

 

You can set inidividual websites on your server to either use OpenLiteSpeed purely or use a mix of Apache + OpenLiteSpeed.

 

You can also convert later between OpenLiteSpeed and Apache setup at any time, in our later tutorials we will learn how we can make use of this feature.

 

Learn How to create Website that use OpenLiteSpeed + Apache