<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Let&#039;s Encrypt Archives - LinuxTuto</title>
	<atom:link href="https://www.linuxtuto.com/tag/lets-encrypt/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.linuxtuto.com/tag/lets-encrypt/</link>
	<description>Linux Sysadmin and DevOps blog</description>
	<lastBuildDate>Wed, 26 Nov 2025 14:04:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.linuxtuto.com/wp-content/uploads/2022/01/cropped-LT_faveicon-32x32.png</url>
	<title>Let&#039;s Encrypt Archives - LinuxTuto</title>
	<link>https://www.linuxtuto.com/tag/lets-encrypt/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">201456972</site>	<item>
		<title>How to Configure Odoo with Nginx as Reverse Proxy on Debian 13</title>
		<link>https://www.linuxtuto.com/how-to-configure-odoo-with-nginx-as-reverse-proxy-on-debian-13/</link>
					<comments>https://www.linuxtuto.com/how-to-configure-odoo-with-nginx-as-reverse-proxy-on-debian-13/#respond</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Wed, 26 Nov 2025 14:01:45 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Let's Encrypt]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Odoo]]></category>
		<category><![CDATA[Proxy]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=2056</guid>

					<description><![CDATA[<p>If you are planning to deploy Odoo in a production environment, configuring it behind a reverse proxy like Nginx is highly recommended. Odoo’s built-in server...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-configure-odoo-with-nginx-as-reverse-proxy-on-debian-13/">How to Configure Odoo with Nginx as Reverse Proxy on Debian 13</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>If you are planning to deploy Odoo in a production environment, configuring it behind a reverse proxy like Nginx is highly recommended. Odoo’s built-in server is sufficient for development but not optimized for handling SSL encryption, load balancing, URL routing, and performance tuning. Nginx acts as a powerful reverse proxy that enhances reliability, security, and performance, making your Odoo installation production-ready.</p>
<p>In this tutorial, you will learn step-by-step how to configure Odoo with Nginx as a reverse proxy on Debian 13, including SSL setup.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 1: Update Operating System</span></h2>
<p>Update your <b>Debian 13</b> operating system to the latest version with the following command:</p>
<pre><code># apt update &amp;&amp; apt upgrade</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 2: Install Nginx Web Server</span></h2>
<p>To install Nginx web server, run the following command:</p>
<div class="google-anno-skip google-anno-sc" tabindex="0" role="link" aria-label="Cloud server hosting" data-google-vignette="false" data-google-interstitial="false">Cloud server hosting</div>
<pre><code># apt install nginx</code></pre>
<p>You can start the Nginx service and configure it to run on startup by entering the following commands:</p>
<pre><code># systemctl start nginx
# systemctl enable nginx</code></pre>
<p>Verify the status of the Nginx service using <strong>systemctl status</strong> command:</p>
<pre><code># systemctl status nginx</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: Configure Odoo for Reverse Proxy</span></h2>
<p>Make sure that Odoo is configured to work behind a proxy. In the Odoo configuration file (<code>/etc/odoo.conf</code>), you need to set the <strong>proxy_mode</strong> parameter to True:</p>
<pre><code>proxy_mode = True
</code></pre>
<p>After making the changes, it’s important to restart the Odoo service to ensure the changes take effect:</p>
<pre><code># systemctl restart odoo</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 4: Configure Nginx for Odoo</span></h2>
<p>Now we set up the Nginx configuration to route traffic to Odoo.</p>
<p>Create a new configuration file:</p>
<pre><code># /etc/nginx/conf.d/odoo.conf</code></pre>
<p>Paste the following configuration (replace erp.example.com with your real domain):</p>
<pre><code>upstream odoo {
server 127.0.0.1:8069;
}

upstream odoo-chat {
server 127.0.0.1:8072;
}

server {
listen 80;
server_name erp.example.com;

access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;

proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;

proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;

location / {
proxy_pass http://odoo;
}

location /websocket {
proxy_pass http://odoo-chat;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}</code></pre>
<p>Save the file and Exit.</p>
<p>Check Nginx syntax:</p>
<pre><code># /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
</code></pre>
<p>To implement the changes, restart Nginx webserver:</p>
<pre><code># systemctl restart nginx</code></pre>
<p>You can now open your Odoo at:</p>
<pre><code>http://erp.your-domain.com</code></pre>
<p>However, this is still not secure because we are using HTTP.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Install free Let’s Encrypt SSL certificate (Optional)</span></h2>
<p>First you need to install the Certbot client which is used to create Let’s Encrypt certificates:</p>
<pre><code># apt install certbot python3-certbot-nginx</code></pre>
<p>Then to get the SSL certificate using the Certbot, type the following command:</p>
<pre><code># certbot --nginx -d erp.your-domain.com</code></pre>
<p>If the SSL certificate is successfully obtained, certbot displays a message to show the configuration was successful:</p>
<pre><code>Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for erp.your-domain.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/erp.your-domain.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/erp.your-domain.com/privkey.pem
This certificate expires on 2026-02-16.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for erp.your-domain.com to /etc/nginx/conf.d/odoo.conf
Congratulations! You have successfully enabled HTTPS on https://erp.your-domain.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</code></pre>
<p>Now, you have successfully installed SSL on your website.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Access Odoo server</span></h2>
<p>Open your web browser and type the URL <strong>https://erp.your-domain.com</strong>.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-2059" src="https://www.linuxtuto.com/wp-content/uploads/2025/11/odoo_19.webp" alt="Odoo 19" width="900" height="415" srcset="https://www.linuxtuto.com/wp-content/uploads/2025/11/odoo_19.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2025/11/odoo_19-300x138.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2025/11/odoo_19-768x354.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2025/11/odoo_19-897x414.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2025/11/odoo_19-684x315.webp 684w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<p>You should now see your Odoo login page loading securely via Nginx.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>Configuring <strong data-start="4473" data-end="4523">Nginx as a reverse proxy for Odoo</strong> enhances security, performance, and scalability.</p>
<p>It allows you to run Odoo in a professional production environment with HTTPS, HTTP/2, caching, and better resource usage.</p>
<p>If you have any questions please leave a comment below.</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-configure-odoo-with-nginx-as-reverse-proxy-on-debian-13/">How to Configure Odoo with Nginx as Reverse Proxy on Debian 13</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.linuxtuto.com/how-to-configure-odoo-with-nginx-as-reverse-proxy-on-debian-13/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2056</post-id>	</item>
		<item>
		<title>How to Configure Odoo with Apache as Reverse Proxy on Debian 12</title>
		<link>https://www.linuxtuto.com/how-to-configure-odoo-with-apache-as-reverse-proxy-on-debian-12/</link>
					<comments>https://www.linuxtuto.com/how-to-configure-odoo-with-apache-as-reverse-proxy-on-debian-12/#comments</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Mon, 22 Jan 2024 15:30:05 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Let's Encrypt]]></category>
		<category><![CDATA[Odoo]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1672</guid>

					<description><![CDATA[<p>Odoo is an open-source suite of integrated business applications that includes various modules for different business needs. Odoo is developed using the Python programming language...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-configure-odoo-with-apache-as-reverse-proxy-on-debian-12/">How to Configure Odoo with Apache as Reverse Proxy on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Odoo is an open-source suite of integrated business applications that includes various modules for different business needs. Odoo is developed using the Python programming language and follows a modular architecture, allowing users to select and deploy the specific modules that suit their business requirements.</p>
<p>The system is highly customizable, and it covers a wide range of business functions. It provides a comprehensive set of tools to manage various aspects of a business, from sales and finance to human resources and inventory management.</p>
<p>In this tutorial, we will show you how to configure Odoo with Apache 2 as Reverse Proxy on Debian 12 OS.</p>
<p>If you do not have Odoo installed on your server you can follow our tutorial <a href="https://www.linuxtuto.com/how-to-install-odoo-17-on-debian-12/">how to install Odoo 17 on Debian 12</a>.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 1: Update Operating System</span></h2>
<p>Update your <b>Debian 12</b> operating system to the latest version with the following command:</p>
<pre><code># apt update &amp;&amp; apt upgrade</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 2: Install Apache webserver</span></h2>
<p>You can install it via <code>apt</code> package manager by executing the following command.</p>
<pre><code># apt install apache2</code></pre>
<p>You can verify the status of the Apache service using the <strong>systemctl status</strong> command:</p>
<pre><code># systemctl status apache2</code></pre>
<p>Output:</p>
<pre><code>● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; preset: enabled)
     Active: active (running)
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 1127 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 1131 (apache2)
      Tasks: 6 (limit: 2273)
     Memory: 18.4M
        CPU: 86ms
     CGroup: /system.slice/apache2.service
             ├─1131 /usr/sbin/apache2 -k start
             ├─1132 /usr/sbin/apache2 -k start
             ├─1133 /usr/sbin/apache2 -k start
</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: Enable Apache Modules</span></h2>
<p>Next run the following commands to enable all necessary modules:</p>
<pre><code># /usr/sbin/a2enmod rewrite
# /usr/sbin/a2enmod proxy
# /usr/sbin/a2enmod proxy_http
# /usr/sbin/a2enmod proxy_html
# /usr/sbin/a2enmod headers</code></pre>
<p>Then restart the Apache web server:</p>
<pre><code># systemctl restart apache2</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 4: Configure Apache for Odoo</span></h2>
<p>Run the commands below to create a new VirtualHost file called <kbd>odoo</kbd> in the <strong>/etc/apache2/sites-available/</strong> directory.</p>
<pre><code># nano /etc/apache2/sites-available/odoo.conf</code></pre>
<p>Paste the content as shown below:</p>
<pre><code> &lt;VirtualHost *:80&gt;
    ServerAdmin admin@your-domain.com
    DocumentRoot /var/www/html/
    
    ServerName your-domain.com
    ServerAlias www.your-domain.com

    ProxyPass / http://127.0.0.1:8069/
    ProxyPassReverse / http://127.0.0.1:8069/&gt; 

    ErrorLog /var/log/apache2/your-domain.com-error_log
    CustomLog /var/log/apache2/your-domain.com-access_log common

 &lt;/VirtualHost&gt;</code></pre>
<p>Remember to replace <strong>your-domain.com</strong> with the domain name of your server.</p>
<p>Then save and exit the configuration file.</p>
<p>To enable this site run the following command:</p>
<pre><code># ln -s /etc/apache2/sites-available/odoo.conf /etc/apache2/sites-enabled/odoo.conf</code></pre>
<p>To implement the changes, you need to restart the Apache webserver:</p>
<pre><code># systemctl restart apache2</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Install free Let’s Encrypt SSL certificate (Optional)</span></h2>
<p>First you need to install the Certbot client which is used to <a href="https://www.linuxtuto.com/how-to-install-apache-with-lets-encrypt-on-ubuntu-22-04/">create Let’s Encrypt certificates</a>:</p>
<pre><code># apt install certbot python3-certbot-apache</code></pre>
<p>Then to get the SSL certificate using the Certbot, type the following command:</p>
<pre><code># certbot --apache -d your-domain.com -d www.your-domain.com</code></pre>
<p>If the SSL certificate is successfully obtained, certbot displays a message to show the configuration was successful:</p>
<pre><code>IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your-domain.com.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your-domain.com/privkey.pem
   Your cert will expire on 2024-03-02. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</code></pre>
<p>Now, you have successfully installed SSL on your website.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6:  Odoo Proxy Configuration</span></h2>
<p>Make sure that Odoo is configured to work behind a proxy. In the Odoo configuration file (<code>/etc/odoo.conf</code>), you need to set the <strong>proxy_mode</strong> parameter to True:</p>
<pre><code>proxy_mode = True
</code></pre>
<p>After making the changes, it’s important to restart the Odoo service to ensure the changes take effect:</p>
<pre><code># systemctl restart odoo
</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 7: Access Odoo server</span></h2>
<p>Open your web browser and type the URL <strong>https://your-domain.com</strong>. You should see the following page:</p>
<p><img decoding="async" class="aligncenter size-large wp-image-1674" src="https://www.linuxtuto.com/wp-content/uploads/2024/01/odoo_17-900x415.webp" alt="Odoo 17" width="900" height="415" srcset="https://www.linuxtuto.com/wp-content/uploads/2024/01/odoo_17-900x415.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2024/01/odoo_17-300x138.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2024/01/odoo_17-768x355.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2024/01/odoo_17-1536x709.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2024/01/odoo_17-1222x564.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2024/01/odoo_17-897x414.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2024/01/odoo_17-684x316.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2024/01/odoo_17.webp 1915w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>Congratulations! You have successfully configured <code>Odoo</code> with Apache 2 as Reverse Proxy on your Debian 12 OS.</p>
<p>For additional information, you can check <a href="https://www.odoo.com/documentation/" target="_blank" rel="noopener">the official Odoo documentation</a>.</p>
<p>If you have any questions please leave a comment below.</p>
<div id="bshare-social" class="baby-sideshare share-content after-content icon show">
<div class="share_hide_show content_hide_show"></div>
</div>
<p>The post <a href="https://www.linuxtuto.com/how-to-configure-odoo-with-apache-as-reverse-proxy-on-debian-12/">How to Configure Odoo with Apache as Reverse Proxy on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.linuxtuto.com/how-to-configure-odoo-with-apache-as-reverse-proxy-on-debian-12/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1672</post-id>	</item>
		<item>
		<title>How to Install RainLoop on Debian 12</title>
		<link>https://www.linuxtuto.com/how-to-install-rainloop-on-debian-12/</link>
					<comments>https://www.linuxtuto.com/how-to-install-rainloop-on-debian-12/#respond</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Thu, 28 Dec 2023 13:30:11 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Let's Encrypt]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RainLoop]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1656</guid>

					<description><![CDATA[<p>RainLoop is an open-source web-based email client that allows users to access their email accounts through a web browser. It provides a user-friendly interface for...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-rainloop-on-debian-12/">How to Install RainLoop on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>RainLoop is an open-source web-based email client that allows users to access their email accounts through a web browser. It provides a user-friendly interface for managing emails, contacts, and other related tasks without the need for a dedicated email client like Outlook or Thunderbird.</p>
<p>It is designed to be lightweight, fast, and easy to install, making it a popular choice for those who want a simple webmail solution.</p>
<p>In this tutorial, we will show you how to install RainLoop on Debian 12 OS with Nginx web server and MariaDB database server..</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 1: Update Operating System</span></h2>
<p>Update your <b>Debian 12</b> operating system to the latest version with the following command:</p>
<pre><code># apt update &amp;&amp; apt upgrade</code></pre>
<p>Also, install necessary packages.</p>
<pre><code translate="no"># apt install curl nano wget unzip zip</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 2: Install Nginx webserver</span></h2>
<p>You can install it via <code>apt</code> package manager by executing the following command.</p>
<pre><code># apt install nginx</code></pre>
<p>Verify the status of the <strong>Nginx</strong> service using <code>systemctl status</code> command:</p>
<pre><code># systemctl status nginx</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: </span><span class="has-inline-color has-vivid-purple-color">Install PHP</span></h2>
<p>To install PHP and the necessary extensions, run the following command:</p>
<pre><code># apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-imap php-mbstring php-curl php-xml</code></pre>
<p>Once the installation is complete verify if PHP is installed:</p>
<pre><code>php -v</code></pre>
<pre><code>Output:
PHP 8.2.12 (cli) (built: Oct 27 2023 13:00:10) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies
</code></pre>
<p>After installing all the packages, edit the php.ini file:</p>
<pre><code># nano /etc/php/8.2/fpm/php.ini</code></pre>
<p>Change the following settings per your requirements:</p>
<pre><code>max_execution_time = 300
memory_limit = 512M
post_max_size = 25M
upload_max_filesize = 25M</code></pre>
<p>To implement the changes, restart the <strong>php-fpm</strong> service:</p>
<pre><code># systemctl restart php8.2-fpm</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 4: Install MariaDB and create a database</span></h2>
<p>To install MariaDB run the following command:</p>
<pre><code># apt install mariadb-server mariadb-client</code></pre>
<p>Verify the status of the MariaDB service using <strong>systemctl status</strong> command:</p>
<pre><code># systemctl status mariadb</code></pre>
<p>By default, MariaDB is not hardened. You can secure MariaDB using the <code class=" prettyprinted"><span class="pln">mysql_secure_installation</span></code> script.</p>
<pre><code># mysql_secure_installation</code></pre>
<p>Configure it like this:</p>
<pre><code>- Set root password? [Y/n] <strong>Y</strong>
- Remove anonymous users? [Y/n] <strong>Y</strong>
- Disallow root login remotely? [Y/n] <strong>Y</strong>
- Remove test database and access to it? [Y/n] <strong>Y</strong>
- Reload privilege tables now? [Y/n] <strong>Y</strong></code></pre>
<p>Now run the command below to log in to the MariaDB shell.</p>
<pre><code># mysql -u root -p</code></pre>
<p>Once you are logged in to your database server you need to create a database for the Roundcube installation:</p>
<pre><code>mysql&gt; CREATE DATABASE rainloop;
mysql&gt; CREATE USER 'rainloopuser'@'localhost' IDENTIFIED BY 'Str0ngPa$$word';
mysql&gt; GRANT ALL PRIVILEGES ON rainloop . * TO 'rainloopuser'@'localhost';
mysql&gt; FLUSH PRIVILEGES;
mysql&gt; exit;</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Download RainLoop</span></h2>
<p>You can download the latest stable release version for RainLoop with the following command:</p>
<pre><code># https://www.rainloop.net/repository/webmail/rainloop-latest.zip</code></pre>
<p>After that, you will need to decompress the RainLoop archive:</p>
<pre><code># unzip rainloop-latest.zip -d /var/www/rainloop/</code></pre>
<p class="has-line-data">Make Nginx the owner of the <code>rainloop</code> folder and grant it sufficient permissions.</p>
<pre><code># chown -R www-data:www-data /var/www/rainloop
# chmod 755 -R /var/www/rainloop</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Configure Nginx for RainLoop</span></h2>
<p>Then, create an virtual host configuration file:</p>
<pre><code># nano /etc/nginx/conf.d/rainloop.conf</code></pre>
<p>Add the following lines:</p>
<pre><code>server {

listen 80;

   server_name webmail.your-domain.com;
   root /var/www/rainloop;

   index index.php;

location / {
        try_files $uri $uri/ /index.php?$query_string;
   }

location ~ \.php$ {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_keep_conn on;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

location ^~ /data {
        deny all;
    }

}
</code></pre>
<p>Save and exit the configuration file.</p>
<p>Check Nginx syntax:</p>
<pre><code># /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
</code></pre>
<p>To implement the changes, restart Nginx webserver:</p>
<pre><code># systemctl restart nginx</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 7: Install free Let’s Encrypt SSL certificate</span></h2>
<p>First we need to install the Certbot client which is used to <a href="https://www.linuxtuto.com/how-to-secure-nginx-with-lets-encrypt-on-ubuntu-22-04/">create Let’s Encrypt certificates</a>:</p>
<pre><code># apt install certbot python3-certbot-nginx</code></pre>
<p>To get the SSL certificate using the Certbot, type the command given below:</p>
<pre><code># certbot --nginx -d webmail.your-domain.com</code></pre>
<p>If the SSL certificate is successfully obtained, certbot displays a message to show the configuration was successful:</p>
<pre><code>IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/webmail.your-domain.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/webmail.your-domain.com/privkey.pem
   Your cert will expire on 2024-03-06. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</code></pre>
<p>Now, you have successfully installed SSL on your website.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 8: RainLoop Setup and Configurations</span></h2>
<p>Now open your web browser and go to <code>https://webmail.your-domain.com/?admin</code> and you will see the following screen:</p>
<p><img decoding="async" class="aligncenter size-large wp-image-1657" src="https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_001-900x416.webp" alt="RainLoop administrator login page" width="900" height="416" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_001-900x416.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_001-300x139.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_001-768x355.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_001-1536x709.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_001-1222x564.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_001-897x414.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_001-684x316.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_001.webp 1912w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<p>You can log in with the default username <strong>admin</strong> and default password <strong>12345</strong></p>
<p>You will see the Rainloop dashboard as below:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1659" src="https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_002-900x415.webp" alt="RainLoop admin dashboard" width="900" height="415" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_002-900x415.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_002-300x138.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_002-768x354.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_002-1536x708.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_002-1222x563.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_002-897x413.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_002-684x315.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_002.webp 1919w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>When you login for the first time, you need to change your <strong>admin</strong> password immediately.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1662 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_003-900x418.webp" alt="Admin Panel Access Credentials" width="900" height="418" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_003-900x418.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_003-300x139.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_003-768x357.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_003-1536x713.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_003-1222x568.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_003-897x417.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_003-684x318.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_003.webp 1914w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Enter your new password and click on the <strong>Update</strong> <strong>Password</strong> button to change the password.</p>
<p>Then, open the <strong>Contacts</strong> menu and select <strong>MySQL</strong> from the dropdown menu:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1663" src="https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_004-900x417.webp" alt="RainLoop MySQL configuration" width="900" height="417" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_004-900x417.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_004-300x139.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_004-768x356.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_004-1536x712.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_004-1222x566.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_004-897x416.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_004-684x317.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/12/rainloop_004.webp 1917w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Enter the database credentials you created earlier and press the <strong>Test</strong> button to check the connection and install the necessary tables.</p>
<p>If the button turns green, it means the connection is successful.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>Congratulations. You have learned how to install RainLoop on Debian 12 OS.</p>
<p>For additional help or useful information, we recommend you to check  <a href="https://www.rainloop.net/docs" target="_blank" rel="noopener">the official RainLoop documentation.</a></p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-rainloop-on-debian-12/">How to Install RainLoop on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.linuxtuto.com/how-to-install-rainloop-on-debian-12/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1656</post-id>	</item>
		<item>
		<title>How to Install NextCloud on Debian 12</title>
		<link>https://www.linuxtuto.com/how-to-install-nextcloud-on-debian-12/</link>
					<comments>https://www.linuxtuto.com/how-to-install-nextcloud-on-debian-12/#comments</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Tue, 05 Sep 2023 15:00:04 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Let's Encrypt]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[NextCloud]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1531</guid>

					<description><![CDATA[<p>Nextcloud is a versatile and community-driven project, making it a popular choice for individuals, businesses, and organizations looking for a secure and self-hosted cloud storage...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-nextcloud-on-debian-12/">How to Install NextCloud on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Nextcloud is a versatile and community-driven project, making it a popular choice for individuals, businesses, and organizations looking for a secure and self-hosted cloud storage and collaboration solution.</p>
<p>It is similar in functionality to popular cloud storage services like Dropbox, Google Drive, and Microsoft OneDrive but gives users greater control over their data and privacy because it can be deployed on their own servers or a cloud infrastructure of their choice.</p>
<p>In this tutorial, we will show you how to install Nextcloud on Debian 12 OS.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 1: Update Operating System</span></h2>
<p>Update your <strong>Debian 12</strong> operating system to make sure all existing packages are up to date:</p>
<pre><code># apt update &amp;&amp; apt upgrade</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 2: Install Nginx webserver</span></h2>
<p>You can install Nginx via <strong>apt</strong> package manager by executing the following command.</p>
<pre><code># apt install nginx</code></pre>
<p>You can start the Nginx service and configure it to run on startup by entering the following commands:</p>
<pre><code># systemctl start nginx
# systemctl enable nginx</code></pre>
<p>Verify the status of the Nginx service using <strong>systemctl status</strong> command:</p>
<pre><code># systemctl status nginx</code></pre>
<p>Output:</p>
<pre><code>● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running)
       Docs: man:nginx(8)
    Process: 1280 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 1281 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 1304 (nginx)
      Tasks: 2 (limit: 2273)
     Memory: 1.7M
        CPU: 23ms
     CGroup: /system.slice/nginx.service
             ├─1304 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             └─1307 "nginx: worker process"</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: </span><span class="has-inline-color has-vivid-purple-color">Install PHP and PHP extensions for Nextcloud</span></h2>
<p>To install PHP and the necessary extensions, run the following command:</p>
<pre><code># apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-intl php-curl php-xml php-mbstring php-bcmath php-gmp</code></pre>
<p>Once the installation is complete verify if PHP is installed:</p>
<pre><code># php -v</code></pre>
<pre><code>Output:
PHP 8.2.7 (cli) (built: Jun  9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies</code></pre>
<p>After installing all the packages, edit the php.ini file:</p>
<pre><code># nano /etc/php/8.2/fpm/php.ini</code></pre>
<p>Change the following settings per your requirements:</p>
<pre><code>max_execution_time = 300
memory_limit = 512M
post_max_size = 128M
upload_max_filesize = 128M</code></pre>
<p>To implement the changes, restart the <strong>php-fpm</strong> service:</p>
<pre><code># systemctl restart php8.2-fpm</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 4: Install MariaDB database server</span></h2>
<p>To install the <a href="https://www.linuxtuto.com/how-to-install-mariadb-10-7-on-debian-11/">MariaDB database server</a>, run the following command:</p>
<pre><code># apt install mariadb-server mariadb-client</code></pre>
<p>Verify the status of the <strong>MariaDB</strong> service using <strong>systemctl status</strong> command:</p>
<pre><code># systemctl status mariadb</code></pre>
<p>Output:</p>
<pre><code>● mariadb.service - MariaDB 10.11.3 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
     Active: active (running)
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 14433 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 11 (limit: 2273)
     Memory: 163.8M
        CPU: 513ms
     CGroup: /system.slice/mariadb.service
             └─14433 /usr/sbin/mariadbd
</code></pre>
<p>Once the installation is complete, run the following command to secure your MariaDB server:</p>
<pre><code># mysql_secure_installation</code></pre>
<p>Configure it like this:</p>
<pre><code>- Set root password? [Y/n] <strong>Y</strong>
- Remove anonymous users? [Y/n] <strong>Y</strong>
- Disallow root login remotely? [Y/n] <strong>Y</strong>
- Remove test database and access to it? [Y/n] <strong>Y</strong>
- Reload privilege tables now? [Y/n] <strong>Y</strong></code></pre>
<p>Restart the database server for the changes to take effect.</p>
<pre><code># systemctl restart mariadb</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Create a New Database for Nextcloud</span></h2>
<p>Once you have installed MariaDB, you&#8217;ll need to create a new database and user for Nextcloud to use.</p>
<p>To do this, log in to your MariaDB server using the following command:</p>
<pre><code># mysql -u root -p</code></pre>
<p>You will be prompted to enter your root password. Once you have entered your password, you will be taken to the MariaDB prompt.</p>
<p>Run the following commands to create a new database and user:</p>
<pre><code>MariaDB [(none)]&gt; CREATE DATABASE nextcloud;
MariaDB [(none)]&gt; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'Password';
MariaDB [(none)]&gt; FLUSH PRIVILEGES;
MariaDB [(none)]&gt; EXIT;</code></pre>
<p><strong><span style="color: #ff0000;">Note:</span></strong> Make sure to replace <code>'<strong>Password</strong>'</code> with a strong password of your choice.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Download and Install Nextcloud</span></h2>
<p>You can download the latest version of Nextcloud from the <a href="https://download.nextcloud.com/">Nextcloud Official site</a>.</p>
<p>Use the following command to download the latest version of Nextcloud:</p>
<pre><code># wget  https://download.nextcloud.com/server/releases/latest.zip</code></pre>
<p>Extract file into the folder <strong>/var/www/</strong> with the following command:</p>
<pre><code># unzip latest.zip -d /var/www/</code></pre>
<p>Change ownership of the <strong>/var/www/nextcloud</strong> directory to <strong>www-data</strong>.</p>
<pre><code># chown -R www-data:www-data /var/www/nextcloud</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 7: Configure Nginx for Nextcloud</span></h2>
<p>Run the commands below to create a new VirtualHost file called <kbd>nextcloud</kbd> in the <strong>/etc/nginx/conf.d/</strong> directory.</p>
<pre><code># nano /etc/nginx/conf.d/nextcloud.conf</code></pre>
<p>Paste the content as shown below:</p>
<pre><code>server {
  listen 80;
  server_name your-domain.com www.your-domain.com;
  root /var/www/nextcloud;
  index index.php index.html;
  charset utf-8;
  location / {
    try_files $uri $uri/ /index.php?$args;
  }
  location ~ .php$ {
    fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}</code></pre>
<p>Remember to replace <strong><code>your-domain.com</code></strong> with the domain name of your server.</p>
<p>Save and exit the configuration file.</p>
<p>To implement the changes, restart Nginx webserver:</p>
<pre><code># systemctl restart nginx</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 8: Install free Let’s Encrypt SSL certificate</span></h2>
<p>First we need to install the Certbot client which is used to create <a href="https://www.linuxtuto.com/how-to-install-apache-with-lets-encrypt-on-ubuntu-22-04/">Let’s Encrypt certificates</a>:</p>
<pre><code># apt install certbot python3-certbot-nginx</code></pre>
<p>To get the SSL certificate using the Certbot, type the command given below:</p>
<pre><code># certbot --nginx -d your-domain.com -d www.your-domain.com</code></pre>
<p>If the SSL certificate is successfully obtained, certbot displays a message to show the configuration was successful:</p>
<pre><code>IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your-domain.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your-domain.com/privkey.pem
   Your cert will expire on 2023-12-03. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</code></pre>
<p>Now, you have successfully installed SSL on your website.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 9: Access Nextcloud Web Interface</span></h2>
<p>Open your web browser and type the URL <strong><code>https://your-domain.com</code></strong>. You should see the Nextcloud installation page.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1534" src="https://www.linuxtuto.com/wp-content/uploads/2023/09/nextcloud_debian-900x454.webp" alt="Nextcloud Debian" width="900" height="454" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/09/nextcloud_debian-900x454.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/09/nextcloud_debian-300x151.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/09/nextcloud_debian-768x387.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/09/nextcloud_debian-1536x774.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/09/nextcloud_debian-1222x616.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/09/nextcloud_debian-897x452.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/09/nextcloud_debian-684x345.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/09/nextcloud_debian.webp 1905w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Click the <code>Install</code> button, you will see the Web interface of NextCloud.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>That’s it. You have successfully installed <code>NextCloud</code> on Debian 12 OS.</p>
<p>For additional help or useful information, we recommend you to check  <a href="https://docs.nextcloud.com/" target="_blank" rel="noopener">the official Nextcloud documentation.</a></p>
<p>If you have any questions please leave a comment below.</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-nextcloud-on-debian-12/">How to Install NextCloud on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.linuxtuto.com/how-to-install-nextcloud-on-debian-12/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1531</post-id>	</item>
		<item>
		<title>How to Install Elgg on Debian 12</title>
		<link>https://www.linuxtuto.com/how-to-install-elgg-on-debian-12/</link>
					<comments>https://www.linuxtuto.com/how-to-install-elgg-on-debian-12/#respond</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Tue, 27 Jun 2023 14:30:06 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Elgg]]></category>
		<category><![CDATA[Let's Encrypt]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1392</guid>

					<description><![CDATA[<p>Elgg is an open-source social networking platform that allows users to create and manage their own social networks and communities. It provides a flexible architecture...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-elgg-on-debian-12/">How to Install Elgg on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Elgg is an open-source social networking platform that allows users to create and manage their own social networks and communities.</p>
<p>It provides a flexible architecture that allows developers to extend and customize its functionality according to their specific needs. Elgg also supports the creation of plugins and themes, enabling further customization and integration with other systems.</p>
<p>In this tutorial, we will show you how to install Elgg on Debian 12 OS.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 1: Update Operating System</span></h2>
<p>Update your <b>Debian 12</b> operating system to the latest version with the following command:</p>
<pre><code># apt update &amp;&amp; apt upgrade</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 2: Install Apache webserver</span></h2>
<p>You can install it via <code>apt</code> package manager by executing the following command.</p>
<pre><code># apt install apache2</code></pre>
<p>Verify the status of the <code>Apache</code> service using <code>systemctl status</code> command:</p>
<pre><code># systemctl status apache2</code></pre>
<p>Output:</p>
<pre><code><span style="color: #00ff00;">●</span> apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; <span style="color: #00ff00;">enabled</span>; preset: <span style="color: #00ff00;">enabled</span>)
     Active: <span style="color: #00ff00;">active (running)</span>
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 3682 (apache2)
      Tasks: 55 (limit: 2273)
     Memory: 8.6M
        CPU: 32ms
     CGroup: /system.slice/apache2.service
             ├─3682 /usr/sbin/apache2 -k start
             ├─3684 /usr/sbin/apache2 -k start
             └─3685 /usr/sbin/apache2 -k start
</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: </span><span class="has-inline-color has-vivid-purple-color">Install PHP and PHP extensions for Elgg</span></h2>
<p>To install PHP and additional PHP modules to support Elgg, run the following command:</p>
<pre><code># apt install php php-cli php-common libapache2-mod-php php-curl php-zip php-gd php-mysql php-xml php-mbstring php-xmlrpc php-intl</code></pre>
<p>Verify if PHP is installed.</p>
<pre><code>php -v</code></pre>
<pre><code><strong>Output:</strong>
PHP 8.2.7 (cli) (built: Jun  9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies
</code></pre>
<p>After installing all the packages, edit the php.ini file:</p>
<pre><code># nano /etc/php/8.2/apache2/php.ini</code></pre>
<p>Change the following settings per your requirements:</p>
<pre><code>max_execution_time = 300
memory_limit = 512M
post_max_size = 128M
upload_max_filesize = 128M
date.timezone = America/Chicago</code></pre>
<p>To implement the changes, restart Apache webserver:</p>
<pre><code># systemctl restart apache2</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 4: Install MariaDB and create a database</span></h2>
<p>To install MariaDB run the following command:</p>
<pre><code># apt install mariadb-server mariadb-client</code></pre>
<p>Verify the status of the <code>MariaDB</code> service using <code>systemctl status</code> command:</p>
<pre><code># systemctl status mariadb</code></pre>
<p>Output:</p>
<pre><code><span style="color: #00ff00;">●</span> mariadb.service - MariaDB 10.11.3 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; <span style="color: #00ff00;">enabled</span>; preset: <span style="color: #00ff00;">enabled</span>)
     Active: <span style="color: #00ff00;">active (running)</span>
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 16734 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 12 (limit: 2273)
     Memory: 203.0M
        CPU: 464ms
     CGroup: /system.slice/mariadb.service
             └─16734 /usr/sbin/mariadbd
</code></pre>
<p>By default, MariaDB is not hardened. You can secure MariaDB using the <code class=" prettyprinted"><span class="pln">mysql_secure_installation</span></code> script.</p>
<pre><code># mysql_secure_installation</code></pre>
<p>Configure it like this:</p>
<pre><code>- Enter current password for root (enter for none): <strong>Enter</strong>
- Switch to unix_socket authentication [Y/n] <strong>Y</strong>
- Change the root password? [Y/n] <strong>Y</strong>
- Remove anonymous users? [Y/n] <strong>Y</strong>
- Disallow root login remotely? [Y/n] <strong>Y</strong>
- Remove test database and access to it? [Y/n] <strong>Y</strong>
- Reload privilege tables now? [Y/n] <strong>Y</strong></code></pre>
<p>Now run the command below to log in to the MariaDB shell.</p>
<pre><code># mysql -u root -p</code></pre>
<p>Once you are logged in to your database server you need to create a database for the Elgg installation:</p>
<pre><code>MariaDB [(none)]&gt; CREATE DATABASE elgg;
MariaDB [(none)]&gt; CREATE USER 'elgg'@'localhost' IDENTIFIED BY 'Str0ngPass2F';
MariaDB [(none)]&gt; GRANT ALL PRIVILEGES ON elgg. * TO 'elgg'@'localhost';
MariaDB [(none)]&gt; FLUSH PRIVILEGES;
MariaDB [(none)]&gt; EXIT;</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Download Elgg</span></h2>
<p>The latest version of Elgg is available to <a href="https://elgg.org/about/download">download from the official website</a>. As of writing this tutorial, the latest version available is 5.0.1.</p>
<pre><code># wget https://elgg.org/download/elgg-5.0.1.zip</code></pre>
<p>Then extract file into the folder <strong>/var/www/</strong> with the following command:</p>
<pre><code># unzip elgg-5.0.1.zip -d /var/www/</code></pre>
<p>Rename the extracted directory:</p>
<pre><code># mv /var/www/elgg-5.0.1 /var/www/elgg/</code></pre>
<p>Create a data directory:</p>
<p><code># mkdir /var/www/data/</code></p>
<p>Then enable permission for the Apache webserver user to access the files:</p>
<pre><code># chown -R www-data:www-data /var/www/data/
# chown -R www-data:www-data /var/www/elgg/</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Configure Apache for Elgg</span></h2>
<p>Run the commands below to create a new VirtualHost file called <kbd>elgg</kbd> in the <strong>/etc/apache2/sites-available/</strong> directory.</p>
<pre><code># nano /etc/apache2/sites-available/elgg.conf</code></pre>
<p>Paste the content as shown below:</p>
<pre><code> &lt;VirtualHost *:80&gt;
    ServerAdmin admin@your-domain.com
    DocumentRoot /var/www/elgg/
    
    ServerName your-domain.com
    ServerAlias www.your-domain.com

    &lt;Directory /var/www/elgg/&gt; 
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    &lt;/Directory&gt; 

    ErrorLog /var/log/apache2/your-domain.com-error_log
    CustomLog /var/log/apache2/your-domain.com-access_log common

 &lt;/VirtualHost&gt;</code></pre>
<p>Remember to replace <strong><code>your-domain.com</code></strong> with the domain name of your server.</p>
<p>Save and exit the configuration file.</p>
<p>Then enable the <code>"rewrite"</code> module in Apache:</p>
<pre><code># a2enmod rewrite</code></pre>
<p>To enable this site run the command:</p>
<pre><code># ln -s /etc/apache2/sites-available/elgg.conf /etc/apache2/sites-enabled/elgg.conf</code></pre>
<p>To implement the changes, restart Apache webserver:</p>
<pre><code># systemctl restart apache2</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 7: Install free Let’s Encrypt SSL certificate</span></h2>
<p>First we need to install the Certbot client which is used to create <a href="https://www.linuxtuto.com/how-to-install-apache-with-lets-encrypt-on-ubuntu-22-04/">Let’s Encrypt certificates</a>:</p>
<pre><code># apt install certbot python3-certbot-apache</code></pre>
<p>To get the SSL certificate using the Certbot, type the command given below:</p>
<pre><code># certbot --apache -d your-domain.com -d www.your-domain.com</code></pre>
<p>If the SSL certificate is successfully obtained, certbot displays a message to show the configuration was successful:</p>
<pre><code>IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your-domain.com.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your-domain.com/privkey.pem
   Your cert will expire on 2023-09-02. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</code></pre>
<p>Now, you have successfully installed SSL on your website.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 8: Access Elgg Web Interface</span></h2>
<p>Open your web browser and type the URL <strong><code>https://your-domain.com</code></strong>. You should see the following page:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1395" src="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_1-900x513.jpg" alt="Elgg Welcome Page" width="900" height="513" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_1-900x513.jpg 900w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_1-300x171.jpg 300w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_1-768x438.jpg 768w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_1-1536x876.jpg 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_1-1222x697.jpg 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_1-897x511.jpg 897w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_1-684x390.jpg 684w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_1.jpg 1893w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Click on the <strong>Next</strong> button.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1396 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_2-900x514.jpg" alt="Requirements check" width="900" height="514" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_2-900x514.jpg 900w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_2-300x171.jpg 300w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_2-768x439.jpg 768w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_2-1536x877.jpg 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_2-1222x698.jpg 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_2-897x512.jpg 897w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_2-684x391.jpg 684w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_2.jpg 1891w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>The installer will then check the requirements. Once all checks are passed, click on the <strong>Next</strong> button.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1397" src="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_3-668x900.jpg" alt="Database installation" width="668" height="900" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_3-668x900.jpg 668w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_3-223x300.jpg 223w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_3-768x1036.jpg 768w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_3-684x922.jpg 684w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_3.jpg 801w" sizes="auto, (max-width: 668px) 100vw, 668px" /></p>
<p>After that, you will have to write the credentials from the database, data directory, and site URL and then click on the <strong>Next </strong>button:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1399" src="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_4-900x514.jpg" alt="Configure site" width="900" height="514" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_4-900x514.jpg 900w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_4-300x171.jpg 300w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_4-768x439.jpg 768w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_4-1536x877.jpg 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_4-1222x698.jpg 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_4-897x512.jpg 897w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_4-684x391.jpg 684w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_4.jpg 1891w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Then, you have to set up your site name and email and then click on the <strong>Next</strong> button:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1400" src="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_5-900x514.jpg" alt="Create admin account" width="900" height="514" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_5-900x514.jpg 900w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_5-300x171.jpg 300w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_5-768x439.jpg 768w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_5-1536x878.jpg 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_5-1222x698.jpg 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_5-897x513.jpg 897w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_5-684x391.jpg 684w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_5.jpg 1890w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Provide your admin username, password, email and click on the Next button. Once the installation has been completed, you should see the following page:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1401" src="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_6-900x431.jpg" alt="Elgg finished installation" width="900" height="431" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_6-900x431.jpg 900w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_6-300x144.jpg 300w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_6-768x368.jpg 768w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_6-1536x736.jpg 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_6-1222x586.jpg 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_6-897x430.jpg 897w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_6-684x328.jpg 684w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_6.jpg 1890w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Click on the <strong>Go to site</strong> button you should see your administration panel:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1403" src="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_7-900x434.jpg" alt="Elgg Dashboard" width="900" height="434" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_7-900x434.jpg 900w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_7-300x145.jpg 300w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_7-768x370.jpg 768w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_7-1536x741.jpg 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_7-1222x589.jpg 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_7-897x433.jpg 897w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_7-684x330.jpg 684w, https://www.linuxtuto.com/wp-content/uploads/2023/06/elgg_7.jpg 1891w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>Congratulations! You have successfully installed Elgg. Thanks for using this tutorial for installing Elgg on your Debian 12 OS.</p>
<p>For additional help or useful information, we recommend you to check  <a href="http://learn.elgg.org/en/stable/" target="_blank" rel="noopener">the official Elgg documentation</a>.</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-elgg-on-debian-12/">How to Install Elgg on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.linuxtuto.com/how-to-install-elgg-on-debian-12/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1392</post-id>	</item>
		<item>
		<title>How To Secure Nginx with Let’s Encrypt on Ubuntu 22.04</title>
		<link>https://www.linuxtuto.com/how-to-secure-nginx-with-lets-encrypt-on-ubuntu-22-04/</link>
					<comments>https://www.linuxtuto.com/how-to-secure-nginx-with-lets-encrypt-on-ubuntu-22-04/#respond</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Mon, 13 Feb 2023 16:00:03 +0000</pubDate>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Certbot]]></category>
		<category><![CDATA[Let's Encrypt]]></category>
		<category><![CDATA[Nginx]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1101</guid>

					<description><![CDATA[<p>Let&#8217;s Encrypt is a free, automated, and open-certificate authority (CA) that provides Digital SSL/TLS certificates to enable secure encrypted connections for websites. The goal of...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-secure-nginx-with-lets-encrypt-on-ubuntu-22-04/">How To Secure Nginx with Let’s Encrypt on Ubuntu 22.04</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Let&#8217;s Encrypt is a free, automated, and open-certificate authority (CA) that provides Digital SSL/TLS certificates to enable secure encrypted connections for websites. The goal of Let&#8217;s Encrypt is to make encryption widely accessible to everyone and to help create a more secure and privacy-respecting web.</p>
<p>Let&#8217;s Encrypt certificates are valid for 90 days and can be easily renewed. The certificate issuance and renewal process is fully automated, making it easy for website owners to secure their sites with HTTPS.</p>
<p>In addition to being free and easy to use, Let&#8217;s Encrypt is also transparent and collaborative, with a broad community of stakeholders who support its mission and contribute to its development.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 1: Update Operating System</span></h2>
<p>Update your <strong>Ubuntu 22.04</strong> operating system to make sure all existing packages are up to date:</p>
<pre><code>$ sudo apt update &amp;&amp; sudo apt upgrade -y</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 2: Install Nginx webserver</span></h2>
<p>You can install Nginx via <code>apt</code> package manager by executing the following command.</p>
<pre><code>$ sudo apt install nginx</code></pre>
<p>Verify the status of the <code>Nginx</code> service using the following command:</p>
<pre><code>$ sudo systemctl status nginx</code></pre>
<p>Output:</p>
<pre><code><span style="color: #00ff00;">●</span> nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: <span style="color: #00ff00;">active (running)</span>
       Docs: man:nginx(8)
    Process: 30128 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 30129 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 30218 (nginx)
      Tasks: 2 (limit: 2196)
     Memory: 10.1M
        CPU: 77ms
     CGroup: /system.slice/nginx.service
             ├─30218 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             └─30221 "nginx: worker process"</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: Install Certbot </span><span class="has-inline-color has-vivid-purple-color">on Ubuntu 22.04</span></h2>
<p>Now we install the Certbot client which is used to create Let’s Encrypt certificates:</p>
<pre><code>$ sudo apt install certbot python3-certbot-nginx</code></pre>
<p>Verify that Certbot is installed and working properly:</p>
<pre><code>$ certbot --version</code></pre>
<p>You should see the version number of Certbot that you just installed:</p>
<pre><code>certbot 1.21.0</code></pre>
<p>Now you can use Certbot to obtain SSL certificates and configure your web server to use them.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 4: Configure Nginx Web Server</span></h2>
<p>Navigate to <code>/etc/nginx/sites-available</code> directory and run the following command to create a configuration file for your installation:</p>
<pre><code class="hljs shell"><span class="hljs-meta">$</span><span class="bash"> sudo nano /etc/nginx/sites-available/your-domain.com.conf</span></code></pre>
<p>Add the following code to the file:</p>
<pre><code>server {
        listen 80;

        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;

        server_name your-domain.com www.your-domain.com;

        location / {
                try_files $uri $uri/ =404;
        }

        error_log /var/log/nginx/your-domain.com.error;
        access_log /var/log/nginx/your-domain.com.access;

}</code></pre>
<p>Remember to replace <strong><code>your-domain.com</code></strong> with the domain name of your server.</p>
<p>Save and exit the configuration file.</p>
<p>Enable the new configuration file.</p>
<pre><code>$ sudo ln -s /etc/nginx/sites-available/your-domain.com.conf /etc/nginx/sites-enabled/your-domain.com.conf</code></pre>
<p>Check Nginx syntax:</p>
<pre><code>$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
</code></pre>
<p>To implement the changes, restart Nginx webserver:</p>
<pre><code>$ sudo systemctl restart nginx</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Get the Let’s Encrypt SSL certificate</span></h2>
<p>To get the SSL certificate using the Certbot, type the command given below:</p>
<pre><code>$ sudo certbot --nginx</code></pre>
<p>You will be asked to provide your valid email address and accept the term of service:</p>
<pre><code>Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): <span style="color: #339966;"><strong>admin@your-domain.com
</strong></span>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: <span style="color: #339966;"><strong>Y</strong></span></code></pre>
<p>Next, you’ll be asked if you want to share your email with the Electronic Frontier Foundation to receive news and other information. If you do not want to subscribe to their content, write <strong>N</strong>.</p>
<pre><code>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: <strong><span style="color: #339966;">N
</span></strong></code></pre>
<p>Next, you will be asked to select the domain on which you want to install the Let’s Encrypt SSL:</p>
<pre><code>Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: your-domain.com
2: www.your-domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):
</code></pre>
<p>If the SSL certificate is successfully obtained, certbot displays a message to show the configuration was successful:</p>
<pre><code>IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your-domain.com.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your-domain.com/privkey.pem
   Your cert will expire on 2023-04-22. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</code></pre>
<p>Now, you have successfully installed SSL on your website.</p>
<p>You can now open your website using <code>https://</code>, and you’ll notice a green lock icon.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Verifying Certbot Auto-Renewal</span></h2>
<p>Verifying that Certbot&#8217;s auto-renewal is working correctly is an important step in ensuring that your website remains secure. You can verify Certbot&#8217;s auto-renewal by performing the following steps:</p>
<h3><span class="has-inline-color has-vivid-purple-color">Check the Certbot Logs</span></h3>
<p>The Certbot logs are the best place to start when verifying auto-renewal. The logs will contain information about any renewal attempts and any errors that may have occurred. You can access the Certbot logs by running the following command:</p>
<pre><code>$ sudo cat /var/log/letsencrypt/letsencrypt.log</code></pre>
<h3><span class="has-inline-color has-vivid-purple-color">Test the Renewal Process</span></h3>
<p>You can test the renewal process by manually running the Certbot renewal command. To do this, run the following command:</p>
<pre><code>$ sudo certbot renew --dry-run</code></pre>
<p>This will simulate a renewal attempt and will provide you with information about the outcome. If the renewal was successful, you should see a message indicating that the certificates were successfully renewed.</p>
<h3><span class="has-inline-color has-vivid-purple-color">Check the Certificate Expiration Date</span></h3>
<p>Finally, you can check the expiration date of your certificate to ensure that it has been renewed. You can do this by visiting your website and checking the certificate information in your browser&#8217;s security settings.</p>
<p>If you encounter any issues with the auto-renewal process, it is recommended that you reach out to the Let&#8217;s Encrypt community or consult the <a href="https://eff-certbot.readthedocs.io/en/stable/">Certbot documentation</a> for assistance.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 7: Revoking Let&#8217;s Encrypt certificates</span></h2>
<p>To revoke a Let&#8217;s Encrypt SSL certificate, you can use the <code>certbot revoke</code> command.</p>
<p>First, stop your Nginx web server:</p>
<pre><code>$ sudo systemctl stop nginx</code></pre>
<p>Run the certbot revoke command, specifying the certificate you want to revoke:</p>
<pre><code>$ sudo certbot revoke --cert-path /etc/letsencrypt/live/your-domain.com/fullchain.pem</code></pre>
<p><strong>Note:</strong> You&#8217;ll need to replace <code>/etc/letsencrypt/live/your-domain.com/fullchain.pem</code> with the actual path to your certificate file.</p>
<p>Start your web server again:</p>
<pre><code>$ sudo systemctl start nginx</code></pre>
<p>After revoking the certificate, the certificate will no longer be trusted by browsers and will no longer work for encrypting your website traffic.</p>
<p>This is useful if, for example, you need to transfer the domain to another owner or if you suspect that your private key has been compromised.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>That&#8217;s it. Today, you had learn how to secure Nginx with Let’s Encrypt on Ubuntu 22.04.</p>
<p>If you have any questions or feedback, feel free to leave a comment.</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-secure-nginx-with-lets-encrypt-on-ubuntu-22-04/">How To Secure Nginx with Let’s Encrypt on Ubuntu 22.04</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.linuxtuto.com/how-to-secure-nginx-with-lets-encrypt-on-ubuntu-22-04/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1101</post-id>	</item>
		<item>
		<title>How To Secure Apache with Let’s Encrypt on Ubuntu 22.04</title>
		<link>https://www.linuxtuto.com/how-to-install-apache-with-lets-encrypt-on-ubuntu-22-04/</link>
					<comments>https://www.linuxtuto.com/how-to-install-apache-with-lets-encrypt-on-ubuntu-22-04/#respond</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Mon, 02 Jan 2023 18:30:04 +0000</pubDate>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Certbot]]></category>
		<category><![CDATA[Let's Encrypt]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=242</guid>

					<description><![CDATA[<p>Let&#8217;s Encrypt is a free, automated, and open certificate authority (CA). Let&#8217;s Encrypt offer free 90-day SSL certificates. Let’s Encrypt provide two types of certificates. The...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-apache-with-lets-encrypt-on-ubuntu-22-04/">How To Secure Apache with Let’s Encrypt on Ubuntu 22.04</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Let&#8217;s Encrypt is a free, automated, and open certificate authority (CA). Let&#8217;s Encrypt offer free 90-day SSL certificates.</p>
<p>Let’s Encrypt provide two types of certificates. The standard single-domain SSL and the Wildcard SSL, which covers not only a single domain, but all of its subdomains too.</p>
<p>In this tutorial, we will use Certbot a free, open-source software tool for automatically issuing the Let’s Encrypt SSL Certificate and verify that your certificate is set up to renew automatically.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 1: Update Operating System</span></h2>
<p>Update your <strong>Ubuntu 22.04</strong> operating system to make sure all existing packages are up to date:</p>
<pre><code>$ sudo apt update &amp;&amp; sudo apt upgrade -y</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 2: Install Apache </span><span class="has-inline-color has-vivid-purple-color">on Ubuntu 22.04</span></h2>
<p>You can install Apache via <code>apt</code> package manager by executing the following command.</p>
<pre><code>$ sudo apt install apache2</code></pre>
<p>You can start the Apache service and configure it to run on startup by entering the following commands:</p>
<pre><code>$ sudo systemctl start apache2
$ sudo systemctl enable apache2</code></pre>
<p>Verify the status of the <code>Apache</code> service using <code>systemctl status</code> command:</p>
<pre><code>$ sudo systemctl status apache2</code></pre>
<p>Output:</p>
<pre><code>● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running)
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 3170 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 3174 (apache2)
      Tasks: 12 (limit: 2200)
     Memory: 246.8M
        CPU: 18.104s
     CGroup: /system.slice/apache2.service
             ├─3174 /usr/sbin/apache2 -k start
             ├─3175 /usr/sbin/apache2 -k start
             ├─3176 /usr/sbin/apache2 -k start</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: Install Certbot </span><span class="has-inline-color has-vivid-purple-color">on Ubuntu 22.04</span></h2>
<p>Now we <a href="https://certbot.eff.org/">install the Certbot client</a> which is used to create Let’s Encrypt certificates:</p>
<pre><code>$ sudo apt install certbot python3-certbot-apache</code></pre>
<p>To verify the Certbot installation run:</p>
<pre><code>$ certbot --version</code></pre>
<p>Output:</p>
<pre><code>certbot 1.21.0</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 4: Configure Apache Web Server</span></h2>
<p>Navigate to <code>/etc/apache2/sites-available</code> directory and run the following command to create a configuration file for your installation:</p>
<pre><code class="hljs shell"><span class="hljs-meta">$</span><span class="bash"> sudo nano /etc/apache2/sites-available/your-domain.conf</span></code></pre>
<p>Add the following content:</p>
<pre><code>&lt;VirtualHost *:80&gt;

ServerAdmin webmaster@your-domain.com

ServerName your-domain.com
ServerAlias www.your-domain.com
DocumentRoot /var/www/html/

&lt;Directory /var/www/html/&gt;
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
&lt;/Directory&gt;

ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined

&lt;/VirtualHost&gt;
</code></pre>
<p>Save the file and Exit.</p>
<p>Enable the Apache virtual host:</p>
<pre><code>$ sudo a2ensite your-domain.conf</code></pre>
<p>After that, restart the Apache web server.</p>
<pre><code>$ sudo systemctl restart apache2</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Get the Let’s Encrypt SSL certificate</span></h2>
<p>To get the SSL certificate using the Certbot, type the command given below:</p>
<pre><code>$ sudo certbot --apache</code></pre>
<p>You will be asked to provide your valid email address and accept the term of service:</p>
<pre><code>Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): <span style="color: #339966;"><strong>admin@your-domain.com
</strong></span>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: <span style="color: #339966;"><strong>Y</strong></span></code></pre>
<p>Next, you’ll be asked if you want to share your email with the Electronic Frontier Foundation to receive news and other information. If you do not want to subscribe to their content, write <strong>N</strong>.</p>
<pre><code>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: <strong><span style="color: #339966;">N
</span></strong></code></pre>
<p>Next, you will be asked to select the domain on which you want to install the Let’s Encrypt SSL:</p>
<pre><code>Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: your-domain.com
2: www.your-domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):
</code></pre>
<p>If the SSL certificate is successfully obtained, certbot displays a message to show the configuration was successful:</p>
<pre><code>IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your-domain.com.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your-domain.com/privkey.pem
   Your cert will expire on 2023-03-22. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</code></pre>
<p>Now, you have successfully installed SSL on your website.</p>
<p>You can now open your website using <code>https://</code>, and you’ll notice a green lock icon.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Verifying Certbot Auto-Renewal</span></h2>
<p>Let’s Encrypt certificates are valid for only ninety days. Installing Certbot will create a cronjob to renew any SSL certificate. You can run the command to check the status of the service.</p>
<pre><code>$ sudo systemctl status certbot.timer</code></pre>
<p>Output:</p>
<pre><code><span style="color: #00ff00;">●</span> certbot.timer - Run certbot twice daily
     Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
     Active: <span style="color: #00ff00;">active (waiting) </span>since Thu 2022-12-22 16:20:05 CDT;
    Trigger: Fri 2022-12-23 06:29:34 CST; 14h left
   Triggers: ● certbot.service</code></pre>
<p>Optionally, you can test the renewal process using the following command. The <code>–dry-run</code> flag is for simulation:</p>
<pre><code>$ sudo certbot renew --dry-run --agree-tos</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 7: Revoking certificates</span></h2>
<p>If you wish to remove a certificate from your server it can be revoked using a subcommand with Let’s Encrypt client. The command below can be used to revoke a particular certificate.</p>
<pre><code>$ sudo certbot revoke --cert-path /etc/letsencrypt/live/your-domain.com/cert.pem</code></pre>
<p><strong><span style="color: #ff0000;">Note:</span></strong> Replace <code>your<em>-</em>domain.com</code><em> </em>with the domain which certificate you wish to revoke.</p>
<p>The process does not give a confirmation upon completion, but if you perform it again you will get a message that the certificate has already been revoked.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>Congratulations! You have successfully installed the Let’s Encrypt SSL certificate on your domain.</p>
<p>If you have any questions or feedback, feel free to leave a comment.</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-apache-with-lets-encrypt-on-ubuntu-22-04/">How To Secure Apache with Let’s Encrypt on Ubuntu 22.04</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.linuxtuto.com/how-to-install-apache-with-lets-encrypt-on-ubuntu-22-04/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">242</post-id>	</item>
	</channel>
</rss>
