<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Omar faruk zihad</title>
    <description>The latest articles on DEV Community by Omar faruk zihad (@zihadfaruk).</description>
    <link>https://dev.to/zihadfaruk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1208242%2F5f69c87f-42cd-4bb3-8108-cc738168c2d4.jpeg</url>
      <title>DEV Community: Omar faruk zihad</title>
      <link>https://dev.to/zihadfaruk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zihadfaruk"/>
    <language>en</language>
    <item>
      <title>Receive Emails Using Amazon SES : A Step-by-Step Guide</title>
      <dc:creator>Omar faruk zihad</dc:creator>
      <pubDate>Thu, 15 Aug 2024 09:24:23 +0000</pubDate>
      <link>https://dev.to/zihadfaruk/how-to-receive-email-using-amazon-ses-4dh9</link>
      <guid>https://dev.to/zihadfaruk/how-to-receive-email-using-amazon-ses-4dh9</guid>
      <description>&lt;p&gt;You might already know that Simple Email Service (SES) of Amazon Web Services (AWS) is great for sending emails, but did you know it's just as powerful for receiving them? Whether you want to store emails for later processing, automatically trigger actions when an email arrives, or even forward emails to another address, AWS SES has you covered. In this blog, I'll show you how to set up AWS SES for receiving emails in a way that's secure, reliable, and tailored to your needs. Let's dive in!&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Basics
&lt;/h2&gt;

&lt;p&gt;Receiving emails with AWS SES involves several components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SES Receiving Rules:&lt;/strong&gt; These rules determine how incoming emails are handled.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon S3:&lt;/strong&gt; A storage service where you can store incoming emails.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Policies:&lt;/strong&gt; A policy is an object in AWS that, when associated with an identity or resource, defines its permissions. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Setting Up SES for Receiving Emails
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configure identities for Receiving Emails&lt;/strong&gt;&lt;br&gt;
Before you can start receiving emails, you need to configure identities. In Amazon SES (Simple Email Service), an identity refers to a domain or email address that you use to send or receive emails through SES. Before you can send an email, SES needs to verify that you own the identity, ensuring that emails sent from that identity are legitimate and authorized.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to the AWS Management Console and open the SES service.&lt;/li&gt;
&lt;li&gt;In the SES console, go to the Configuration &amp;gt; Identities &amp;gt; Create identity.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6h9rkkrvf18r794erqwv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6h9rkkrvf18r794erqwv.png" alt="Identity Creation Page" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Here we will use the domain as the receiver. Fill up the domain name. You can skip rest of the options.&lt;/li&gt;
&lt;li&gt;After creating you will be taken to the details page. Scroll down to the DNS records and add the required DNS records to your domain's DNS settings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3gtnhhjm4ywwghngx5aw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3gtnhhjm4ywwghngx5aw.png" alt="DNS records" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This process may take a few minutes. Once the domain is verified, you can use it to receive emails.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create a Receipt Rule Set&lt;/strong&gt;&lt;br&gt;
A receipt rule set determines how SES handles incoming emails for your verified domain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the SES console, navigate to Configuration &amp;gt; Email receiving and click "Create a Rule Set" and name it appropriately.&lt;/li&gt;
&lt;li&gt;Navigate to the details of the rule set and click "Create Rule."&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mxat1xk8c5bi474z8hk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mxat1xk8c5bi474z8hk.png" alt="Create rule page" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define conditions such as the recipient's email address or domain. Here if somebody sends mail to &lt;code&gt;mail@abc.com&lt;/code&gt; then this rule will be applicable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvb5ozclfbwz4ak4z55f1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvb5ozclfbwz4ak4z55f1.png" alt="Recipient condition" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next you have to create actions which will execute on receiving the email. You can specify multiple actions under each rule.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujxbtssxifwj8vp6owyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujxbtssxifwj8vp6owyf.png" alt="Actions" width="800" height="442"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;As you can see there are many actions available to use. Let's know about them to see which fits your purpose&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;S3 Action:&lt;/strong&gt; By default there are no mechanism to see the received email. By storing it in Amazon S3 bucket, we can later view and reuse the email .&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lambda Action:&lt;/strong&gt; Trigger an AWS Lambda function to process the email.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SNS Action:&lt;/strong&gt; Send a notification via Amazon SNS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bounce or Reject:&lt;/strong&gt; If necessary, you can also bounce or reject emails.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After configuring the actions, save the rule. Activate the rule set to apply it to incoming emails.&lt;/p&gt;

&lt;h2&gt;
  
  
  Storing Emails in Amazon S3
&lt;/h2&gt;

&lt;p&gt;Storing incoming emails in S3 is one of the most common use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Set Up an S3 Bucket:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Create a new S3 bucket or choose an existing one where the emails will be stored.&lt;/li&gt;
&lt;li&gt;Ensure the bucket has the correct permissions to allow SES to write emails to it by modifying the policy of the bucket using below policy
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowSESPuts",
            "Effect": "Allow",
            "Principal": {
                "Service": "ses.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::&amp;lt;your-bucket&amp;gt;/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:ses:&amp;lt;your-region&amp;gt;:&amp;lt;your-account-id&amp;gt;:receipt-rule-set/&amp;lt;you-rule-set&amp;gt;:receipt-rule/&amp;lt;your-rule-name&amp;gt;",
                    "AWS:SourceAccount": "&amp;lt;your-accound-id&amp;gt;"
                }
            }
        }
    ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Configure the S3 Action in SES:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;In your receipt rule, choose the "S3" action.Specify the bucket name, object key prefix (if any), and whether to include the email headers.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclzxgmfw4cgdtoknnix7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclzxgmfw4cgdtoknnix7.png" alt="Bucket selection" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Send a test email to your domain and verify that it appears in the specified S3 bucket.You should see an email object in the s3 bucket.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;AWS SES provides a flexible and scalable solution for receiving emails, integrating smoothly with other AWS services like S3, Lambda, and SNS. Whether you're storing emails, automating responses, or triggering notifications, SES can be tailored to fit your specific use case. With the steps outlined in this guide, you can set up a robust email-receiving system that meets your needs and scales with your business.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Install Mysql on Ubuntu 22.04 LTS</title>
      <dc:creator>Omar faruk zihad</dc:creator>
      <pubDate>Thu, 16 Nov 2023 04:04:54 +0000</pubDate>
      <link>https://dev.to/zihadfaruk/how-to-install-mysql-on-ubuntu-2204-lts-3o8a</link>
      <guid>https://dev.to/zihadfaruk/how-to-install-mysql-on-ubuntu-2204-lts-3o8a</guid>
      <description>&lt;p&gt;To install MySQL, first log in to the server using terminal. I will log in using my SSH&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh root@{ip}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then run following commands&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
sudo apt install mysql-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then start the service using&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl start mysql.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, we need to install the security services&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mysql_secure_installation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will show the below output&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length &amp;gt;= 8
MEDIUM Length &amp;gt;= 8, numeric, mixed case, and special characters
STRONG Length &amp;gt;= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For testing purposes, I chose 0. That is the bare minimum password for the users and the root password won't be set. Then some prompt will open, press Y or N depending on your choice.&lt;br&gt;
After all the prompt is done,enter the MySQL console&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mysql
CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Be sure to change the &lt;code&gt;sammy&lt;/code&gt; to your user and &lt;code&gt;password&lt;/code&gt; to your password.&lt;/p&gt;

&lt;p&gt;Then set the privileges&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GRANT CREATE, ALTER, DROP, INSERT, UPDATE, INDEX, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You are all set. You can clear the cache using&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FLUSH PRIVILEGES;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exit the MySQL console and check the status by running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl status mysql.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Output:
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset:&amp;gt;
     Active: active (running) since Thu 2023-11-16 02:44:55 UTC; 1h 8min ago
    Process: 10804 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=&amp;gt;
   Main PID: 10812 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 1116)
     Memory: 361.8M
        CPU: 30.669s
     CGroup: /system.slice/mysql.service
             └─10812 /usr/sbin/mysqld
lines 1-11/11 (END)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the above output shows, congratulations, Mysql is not installed.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Setup Nginx in a Digitalocean droplet</title>
      <dc:creator>Omar faruk zihad</dc:creator>
      <pubDate>Mon, 13 Nov 2023 02:58:27 +0000</pubDate>
      <link>https://dev.to/zihadfaruk/setup-nginx-in-a-digitalocean-droplet-3i3</link>
      <guid>https://dev.to/zihadfaruk/setup-nginx-in-a-digitalocean-droplet-3i3</guid>
      <description>&lt;p&gt;I will explain the procedure for configuring a Digitalocean droplet and setting up Nginx for this droplet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure the Digitalocean droplet
&lt;/h2&gt;

&lt;p&gt;At first, sign up on the &lt;a href="https://cloud.digitalocean.com/"&gt;Digitalocean&lt;/a&gt; platform . After going to the home page click on the Create Button in the upper side&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9OHQvGlI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lqyr9edqh90afwyrb1io.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9OHQvGlI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lqyr9edqh90afwyrb1io.png" alt="Image description" width="800" height="59"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choose droplets&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RWc3Y80z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k5rhinrzx4ve55ngrydb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RWc3Y80z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k5rhinrzx4ve55ngrydb.png" alt="Image description" width="561" height="1374"&gt;&lt;/a&gt;&lt;br&gt;
After coming to the new page, choose your datacenter closest to your main traffic. Then choose the OS, I will be doing this with Ubuntu 22.04LTS. Choose the package and sign-in method. I will be adding my SSH key here. &lt;/p&gt;
&lt;h2&gt;
  
  
  Install and configure Nginx
&lt;/h2&gt;

&lt;p&gt;Login to the server by using your terminal. If you added your ssh key, then you can do this&lt;br&gt;
&lt;code&gt;ssh root@192.123.222.11&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;We will now install Nginx by doing&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
sudo apt install nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After completing the installation , we will configure the firewall. We will now open both port 80 and 443 by running below command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo ufw allow 'Nginx FULL'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify it by running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo ufw status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will show&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--99CzHw66--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/skxb7a4jgz46uzn3bwzy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--99CzHw66--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/skxb7a4jgz46uzn3bwzy.png" alt="Image description" width="800" height="172"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now verify the whole Nginx installation by&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6JJopMoP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/taiekoua37t76oln2vqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6JJopMoP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/taiekoua37t76oln2vqj.png" alt="Image description" width="800" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the web browser, enter the IP in the browser&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NLdCeLWo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/seubqvzoy42osqyo5roc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NLdCeLWo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/seubqvzoy42osqyo5roc.png" alt="Image description" width="800" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congrats! The nginx is installed successfully on a digitalocean droplet.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>nginx</category>
      <category>ubuntu</category>
    </item>
  </channel>
</rss>
