How to Deploy React Application on Ubuntu Apache

How to By Jun 30, 2023 No Comments

Deploying a React application on an Ubuntu server running Apache involves several steps. Here’s a general outline of the process:

  1. Install Node.js and npm: React applications are built using Node.js, so you’ll need to have it installed on your server. You can do this using the following commands:
sudo apt update
sudo apt install nodejs npm

Install Create React App: This is a tool that allows you to easily create new React applications. You can install it globally on your server using npm:

sudo npm install -g create-react-app

Create Your React Application: Now you can create your React application. If you already have an application you want to deploy, you can skip this step. Otherwise, you can create a new application using the following command:

create-react-app my-app
  1. Build Your React Application: Before you can deploy your application, you need to build it. This will create a build directory with a production-ready version of your application. You can do this using the following command:
cd my-app
npm run build
  1. Install Apache: If you haven’t already, you’ll need to install Apache on your server. You can do this using the following commands:
sudo apt update
sudo apt install apache2

Configure Apache: You’ll need to configure Apache to serve your React application. This involves creating a new configuration file in the /etc/apache2/sites-available directory. The configuration file should look something like this:

<VirtualHost *:80>
    DocumentRoot /var/www/html/my-app/build

    <Directory /var/www/html/my-app/build>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
  1. Enable the New Site: Once you’ve created your configuration file, you can enable the site using the a2ensite command, followed by the name of your configuration file:
sudo a2ensite my-app.conf
Restart Apache: Finally, you'll need to restart Apache for your changes to take effect:
sudo systemctl restart apache2

Now, your React application should be accessible at the domain you specified in your Apache configuration file.

Please note that this is a very basic setup and might not be suitable for all use cases. Depending on your specific needs, you might need to adjust this process accordingly. For example, you might want to set up HTTPS, use a reverse proxy, or use a different server configuration.


I'm Abhay Singh, an Architect with 9 Years of It experience. AWS Certified Solutions Architect.

No Comments

Leave a comment

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