<?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>Nginx Archives - LinuxTuto</title>
	<atom:link href="https://www.linuxtuto.com/tag/nginx/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.linuxtuto.com/tag/nginx/</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.1</generator>

<image>
	<url>https://www.linuxtuto.com/wp-content/uploads/2022/01/cropped-LT_faveicon-32x32.png</url>
	<title>Nginx Archives - LinuxTuto</title>
	<link>https://www.linuxtuto.com/tag/nginx/</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 Install Drupal on Ubuntu 24.04</title>
		<link>https://www.linuxtuto.com/how-to-install-drupal-on-ubuntu-24-04/</link>
					<comments>https://www.linuxtuto.com/how-to-install-drupal-on-ubuntu-24-04/#respond</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Mon, 05 Aug 2024 13:30:01 +0000</pubDate>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1779</guid>

					<description><![CDATA[<p>Drupal is an open-source content management system (CMS) used for building and managing websites and web applications. It is highly flexible and customizable, making it...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-drupal-on-ubuntu-24-04/">How to Install Drupal on Ubuntu 24.04</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Drupal is an open-source content management system (CMS) used for building and managing websites and web applications. It is highly flexible and customizable, making it suitable for a wide range of web projects, from simple blogs to complex enterprise websites.</p>
<p>It is used by a wide range of organizations, including educational institutions, non-profits, businesses, and government agencies, to build websites that require robust content management, high security, and flexibility.</p>
<p>In this tutorial, we will show you how to install Drupal on your Ubuntu 24.04 OS.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 1: Update Operating System</span></h2>
<p>Update your <strong>Ubuntu</strong> <strong>24.04</strong> operating system to make sure all existing packages are up to date:</p>
<pre><code># apt update &amp;&amp; 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 <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 (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running)
       Docs: man:nginx(8)
   Main PID: 10412 (nginx)
      Tasks: 2 (limit: 2218)
     Memory: 1.7M (peak: 1.9M)
        CPU: 23ms
     CGroup: /system.slice/nginx.service
             ├─10412 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             └─10413 "nginx: worker process"</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: Install PHP and PHP extensions for Drupal</span></h2>
<p>By default, Ubuntu 24.04 comes with <a href="https://www.linuxtuto.com/how-to-install-php-8-3-on-ubuntu-22-04/">PHP version 8.3</a>.  You can install PHP and other supporting packages using the following command:</p>
<pre><code># apt install php php-{opcache,gd,curl,mysqlnd,intl,json,ldap,mbstring,mysqlnd,xml,zip}</code></pre>
<p>Verify if PHP is installed.</p>
<pre><code>php -v</code></pre>
<pre><code>Output:
PHP 8.3.6 (cli) (built: Jun 13 2024 15:23:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 4: Install MySQL and create a database</span></h2>
<p>You can install the MySQL server with the following command:</p>
<pre><code># apt install mysql-server</code></pre>
<p>Start the database server daemon, and also enable it to start automatically at the next boot with the following commands:</p>
<pre><code># systemctl start mysql
# systemctl enable mysql</code></pre>
<p>Verify the status of the MySQL service using <strong>systemctl status</strong> command:</p>
<pre><code># systemctl status mysql</code></pre>
<p>Output:</p>
<pre><code>● mysql.service - MySQL Community Server
     Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
     Active: active (running)
    Process: 24565 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 24574 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 2218)
     Memory: 362.8M (peak: 379.1M)
        CPU: 1.160s
     CGroup: /system.slice/mysql.service
             └─24574 /usr/sbin/mysqld</code></pre>
<p>By default, MySQL is not hardened. You can secure MySQL 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 MySQL 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 Drupal installation:</p>
<pre><code>mysql&gt; CREATE DATABASE drupaldb;
mysql&gt; CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY 'Str0ngP@ss';
mysql&gt; GRANT ALL PRIVILEGES ON drupaldb. * TO 'drupaluser'@'localhost';
mysql&gt; FLUSH PRIVILEGES;
mysql&gt; exit;</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Download Drupal</span></h2>
<p>The latest version of Drupal is available to <a href="https://www.drupal.org/project/drupal/releases/11.0.0">download</a> from their website. You can download it with the following command:</p>
<pre><code># wget https://ftp.drupal.org/files/projects/drupal-11.0.0.zip</code></pre>
<p>Extract file into the folder <strong>/var/www/</strong> with the following command:</p>
<pre><code># unzip drupal-11.0.0.zip -d /var/www/</code></pre>
<p>Rename it to make it simpler:</p>
<pre><code># mv /var/www/drupal-11.0.0/ /var/www/drupal</code></pre>
<p>Enable permission for the Nginx webserver user to access the files:</p>
<pre><code># chown -R www-data:www-data /var/www/drupal/</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Configure Nginx for Drupal</span></h2>
<p>Create a new Nginx virtual host configuration file:</p>
<pre><code># nano /etc/nginx/conf.d/drupal.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/drupal;
  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.3-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 7: Access Drupal 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 Drupal installation page.</p>
<p><img decoding="async" class="aligncenter size-large wp-image-1781" src="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_01-900x392.webp" alt="Drupal Choose Language" width="900" height="392" srcset="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_01-900x392.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_01-300x131.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_01-768x334.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_01-1536x668.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_01-1222x532.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_01-897x390.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_01-684x298.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_01.webp 1914w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<p>Choose your preferred language and hit <strong>Save and continue.</strong> You will get the following screen:</p>
<p><img decoding="async" class="aligncenter wp-image-1783 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_02-900x392.webp" alt="Drupal Choose profile" width="900" height="392" srcset="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_02-900x392.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_02-300x131.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_02-768x334.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_02-1536x669.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_02-1222x532.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_02-897x390.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_02-684x298.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_02.webp 1916w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<p>Choose <strong>Standard </strong>and hit<strong> Save and continue</strong>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1784 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_03-900x507.webp" alt="Set up database" width="900" height="507" srcset="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_03-900x507.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_03-300x169.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_03-768x433.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_03-1536x865.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_03-1222x688.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_03-897x505.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_03-684x385.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_03.webp 1916w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Fill in your database settings and hit <strong>Save and continue</strong>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1785 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_04-900x391.webp" alt="Drupal Install site" width="900" height="391" srcset="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_04-900x391.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_04-300x130.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_04-768x334.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_04-1536x668.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_04-1222x532.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_04-897x390.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_04-684x298.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_04.webp 1915w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Then fill in some basic information about your site and then hit <strong><code>Save and continue</code></strong>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1786" src="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_05-900x514.webp" alt="" width="900" height="514" srcset="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_05-900x514.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_05-300x171.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_05-768x438.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_05-1536x877.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_05-1222x698.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_05-897x512.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_05-684x390.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_05.webp 1890w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>You will get the dashboard in the following screen:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1787 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_06-900x513.webp" alt="Drupal Dashboard" width="900" height="513" srcset="https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_06-900x513.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_06-300x171.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_06-768x438.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_06-1536x876.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_06-1222x697.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_06-897x512.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_06-684x390.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2024/08/drupal11_06.webp 1892w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Installation of Drupal has been completed. Now revert the permissions for the <strong>settings.php</strong> file:<span id="ezoic-pub-ad-placeholder-116" class="ezoic-adpicker-ad"></span></p>
<pre><code># chmod 644 /var/www/html/drupal/sites/default/settings.php</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>That’s it. You have successfully installed Drupal on Ubuntu 24.04 OS.</p>
<p>For additional help or useful information, we recommend you to check  <a href="https://www.drupal.org/documentation" target="_blank" rel="noopener">the official Drupal 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-install-drupal-on-ubuntu-24-04/">How to Install Drupal on Ubuntu 24.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-drupal-on-ubuntu-24-04/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1779</post-id>	</item>
		<item>
		<title>How to Install Laravel on Debian 12</title>
		<link>https://www.linuxtuto.com/how-to-install-laravel-on-debian-12/</link>
					<comments>https://www.linuxtuto.com/how-to-install-laravel-on-debian-12/#respond</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Wed, 28 Feb 2024 16:00:38 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1707</guid>

					<description><![CDATA[<p>Laravel is a free, open-source PHP web application framework used for web development. It follows the Model-View-Controller (MVC) architectural pattern and provides an elegant syntax...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-laravel-on-debian-12/">How to Install Laravel on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Laravel is a free, open-source PHP web application framework used for web development. It follows the Model-View-Controller (MVC) architectural pattern and provides an elegant syntax and tools for tasks such as routing, templating, authentication, and more. Laravel aims to make web development tasks more enjoyable and efficient by providing a clean and expressive syntax, along with a set of conventions and tools for common tasks.</p>
<p>Laravel has gained popularity in the PHP development community due to its elegant syntax, developer-friendly features, and active community. It is widely used for building web applications, APIs, and various other web-based projects.</p>
<p>In this tutorial, we will show you how to install Laravel 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>The first step is to ensure that your system is up-to-date. You can do this by running 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 sudo nano wget unzip zip</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>
<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: </span><span class="has-inline-color has-vivid-purple-color">Install PHP and PHP extensions</span></h2>
<p>To install PHP and additional PHP modules to support Laravel, run the following command:</p>
<pre><code># apt install php php-cli php-common php-json php-gmp php-fpm php-xmlrpc php-bcmath php-imagick 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/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
date.timezone = America/Chicago</code></pre>
<p>To implement the changes, restart the <code>php-fpm</code> 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>You can <a href="https://www.linuxtuto.com/how-to-install-mariadb-10-7-on-debian-11/">install MariaDB</a> with the following command:</p>
<pre><code># apt install mariadb-server mariadb-client</code></pre>
<p>Start the database server daemon, and also enable it to start automatically at the next boot with the following commands:</p>
<pre><code># systemctl start mariadb
# systemctl enable mariadb</code></pre>
<p>Once the database server is installed, log into the MariaDB prompt:</p>
<pre><code># mysql -u root</code></pre>
<p>To create a database, database user, and grant all privileges to the database user run the following commands:</p>
<pre><code>MariaDB [(none)]&gt; CREATE DATABASE laravel_db;
MariaDB [(none)]&gt; CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'Str0ngPa$$word';
MariaDB [(none)]&gt; GRANT ALL ON laravel_db.* TO 'laravel_user'@'localhost';
MariaDB [(none)]&gt; FLUSH PRIVILEGES;
MariaDB [(none)]&gt; EXIT</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Install Composer dependency manager</span></h2>
<p>To install Composer, run the following commands:</p>
<pre><code># curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer</code></pre>
<p>Verify that Composer has been installed successfully by running the following command:</p>
<pre><code># composer --version
Composer version 2.5.8 2023-06-09 17:13:21</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Install Laravel </span></h2>
<p>Navigate to the <code>webroot</code> directory, type:</p>
<pre class="wp-block-preformatted"><code># cd /var/www/html</code></pre>
<p>Now, install Laravel using the composer command, type:</p>
<pre class="wp-block-preformatted"><code># composer create-project laravel/laravel laravelapp</code></pre>
<p>The command creates a new directory called <code>laravelapp</code> and installs all the files and directories for Laravel.</p>
<p>Change the ownership of the Laravel directory to the webserver user and also the permissions:</p>
<pre class="wp-block-preformatted"><code># chown -R www-data:www-data /var/www/html/laravelapp
# chmod -R 775 /var/www/html/laravelapp/storage</code></pre>
<p>Once the installation is done navigate to the installation directory and check the Laravel version:</p>
<pre><code># cd laravelapp</code></pre>
<pre><code># php artisan</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 7: Configure Nginx Web Server for Laravel</span></h2>
<p>Navigate to <code>/etc/nginx/conf.d</code> directory and run the following command to create a configuration file:</p>
<pre><code class="hljs shell"><span class="bash"># nano /etc/nginx/conf.d/laravel.conf</span></code></pre>
<p>Add the following content:</p>
<pre><code>server {
    listen 80;
    listen [::]:80;
    server_name your-domain.com;
    root /var/www/html/laravelapp/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}
</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>
<h2><span class="has-inline-color has-vivid-purple-color">Step 8: Access your Laravel Application</span></h2>
<p>Open your browser and type your domain e.g <strong>http://your-domain.com</strong></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1708" src="https://www.linuxtuto.com/wp-content/uploads/2024/02/laravel_debian12-900x508.webp" alt="Install Laravel on Debian 12" width="900" height="508" srcset="https://www.linuxtuto.com/wp-content/uploads/2024/02/laravel_debian12-900x508.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2024/02/laravel_debian12-300x169.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2024/02/laravel_debian12-768x433.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2024/02/laravel_debian12-1536x866.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2024/02/laravel_debian12-1222x689.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2024/02/laravel_debian12-897x506.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2024/02/laravel_debian12-684x386.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2024/02/laravel_debian12.webp 1915w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>That’s it. You have successfully installed Laravel on Debian 12.</p>
<p>For additional help or useful information, we recommend you to check  <a href="https://laravel.com/docs" target="_blank" rel="noopener">the official Laravel 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-laravel-on-debian-12/">How to Install Laravel 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-laravel-on-debian-12/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1707</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 loading="lazy" 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="auto, (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 Backdrop CMS on Debian 12</title>
		<link>https://www.linuxtuto.com/how-to-install-backdrop-cms-on-debian-12/</link>
					<comments>https://www.linuxtuto.com/how-to-install-backdrop-cms-on-debian-12/#respond</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Thu, 02 Nov 2023 21:36:48 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Backdrop]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1584</guid>

					<description><![CDATA[<p>Backdrop CMS is an open-source content management system (CMS) that is designed to be a user-friendly and accessible alternative to other popular CMS platforms, especially...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-backdrop-cms-on-debian-12/">How to Install Backdrop CMS on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Backdrop CMS is an open-source content management system (CMS) that is designed to be a user-friendly and accessible alternative to other popular CMS platforms, especially Drupal.</p>
<p>It is built on the same PHP technology stack as Drupal, but it is intended to be more straightforward and more suitable for smaller organizations, non-profits, and individuals who want a powerful CMS without the complexity often associated with Drupal.</p>
<p>Overall, Backdrop CMS aims to strike a balance between being easy to use and having the capabilities necessary to build and manage websites effectively, making it a suitable choice for those looking for a middle ground between simplicity and customization.</p>
<p>To get started with installing Backdrop on Debian 12, follow the steps below:</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 1: Update Operating System</span></h2>
<p>Update and upgrade your system packages 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</span></h2>
<p>You can install Nginx web server via <strong>apt</strong> package manager by executing the following command:</p>
<pre><code># apt install 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)
   Main PID: 717 (nginx)
      Tasks: 2 (limit: 2273)
     Memory: 5.0M
        CPU: 71ms
     CGroup: /system.slice/nginx.service
             ├─717 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             └─718 "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</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-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>
<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>Output:</p>
<pre><code>● mariadb.service - MariaDB 10.11.4 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: 772 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 9 (limit: 2273)
     Memory: 249.5M
        CPU: 2.711s
     CGroup: /system.slice/mariadb.service
             └─772 /usr/sbin/mariadbd
</code></pre>
<p>By default, MariaDB is not hardened. You can secure MariaDB using the <strong>mysql_secure_installation</strong> 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 Backdrop installation:</p>
<pre><code>MariaDB [(none)]&gt; CREATE DATABASE backdrop;
MariaDB [(none)]&gt; CREATE USER 'backdrop'@'localhost' IDENTIFIED BY 'Str0ngPass';
MariaDB [(none)]&gt; GRANT ALL PRIVILEGES ON backdrop. * TO 'backdrop'@'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 Backdrop</span></h2>
<p>The latest version of Backdrop is available to <a href="https://github.com/backdrop/backdrop/releases">download from GitHub</a>. You can download it with the following command:</p>
<pre><code># wget https://github.com/backdrop/backdrop/releases/download/1.26.1/backdrop.zip</code></pre>
<p>Then extract file into the folder <strong>/var/www/</strong> with the following command:</p>
<pre><code># unzip backdrop.zip -d /var/www/</code></pre>
<p>Then enable permission for the Nginx webserver user to access the files:</p>
<pre><code># chown -R www-data:www-data /var/www/backdrop/</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Configure Nginx for Backdrop</span></h2>
<p>Create a new Nginx configuration file with the following command:</p>
<pre><code># nano /etc/nginx/conf.d/backdrop.conf</code></pre>
<p>Paste the content as shown below:</p>
<pre><code>server {
listen 80;

server_name your-domain.com;
root /var/www/backdrop;
index index.php index.html index.htm;

location / {
    try_files $uri $uri/ /index.php?$args;
   }

location = /favicon.ico {
    log_not_found off;
    access_log off;
   }

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires max;
    log_not_found off;
   }

location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
   }

location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}</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 7: Access Backdrop Web Interface</span></h2>
<p>To complete the setup go to your browser and visit <strong>http://your-domain.com/.</strong> Choose language and click on the <strong>SAVE AND CONTINUE</strong> button.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1586 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_01-900x415.webp" alt="Backdrop Choose language" width="900" height="415" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_01-900x415.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_01-300x138.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_01-768x354.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_01-1536x709.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_01-1222x564.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_01-897x414.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_01-684x316.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_01.webp 1916w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Provide your database details and click on the <strong>SAVE AND CONTINUE</strong> button.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1587 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_02-900x416.webp" alt="Backdrop Database Configuration" width="900" height="416" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_02-900x416.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_02-300x139.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_02-768x355.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_02-1536x710.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_02-1222x565.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_02-897x415.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_02-684x316.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_02.webp 1917w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Provide your admin username, password, email then click on the <strong>SAVE AND CONTINUE</strong> button.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1588 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_03-900x694.webp" alt="Backdrop Primary User Account" width="900" height="694" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_03-900x694.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_03-300x231.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_03-768x592.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_03-1222x942.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_03-897x692.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_03-684x527.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_03.webp 1398w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>You will get the Backdrop dashboard.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1592" src="https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_04-900x513.webp" alt="Backdrop Dashboard" width="900" height="513" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_04-900x513.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_04-300x171.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_04-768x438.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_04-1536x876.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_04-1222x697.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_04-897x511.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_04-684x390.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/11/backdrop_04.webp 1894w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<h2><span class="has-inline-color has-vivid-purple-color">Comments and Conclusion</span></h2>
<p>That’s it. You have successfully installed Backdrop CMS on Debian 12.</p>
<p>For additional help or useful information, we recommend you to check <a href="https://docs.backdropcms.org/">the official Backdrop 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-backdrop-cms-on-debian-12/">How to Install Backdrop CMS 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-backdrop-cms-on-debian-12/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1584</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 Strapi with Nginx on Debian 12</title>
		<link>https://www.linuxtuto.com/how-to-install-strapi-with-nginx-on-debian-12/</link>
					<comments>https://www.linuxtuto.com/how-to-install-strapi-with-nginx-on-debian-12/#comments</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Tue, 08 Aug 2023 12:00:03 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Strapi]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1499</guid>

					<description><![CDATA[<p>Strapi is a most advanced open source content management system (CMS) designed to help developers to build powerful API. Strapi follows a &#8220;headless&#8221; architecture, which...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-strapi-with-nginx-on-debian-12/">How to Install Strapi with Nginx on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Strapi is a most advanced open source content management system (CMS) designed to help developers to build powerful API.</p>
<p>Strapi follows a &#8220;headless&#8221; architecture, which means it separates the content management backend from the frontend presentation, giving developers the freedom to use various technologies and frameworks on the frontend.</p>
<p>In this tutorial, we will show you how to install <code>Strapi</code> 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 <code>apt</code> 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: 627 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 646 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 655 (nginx)
      Tasks: 2 (limit: 2273)
     Memory: 3.8M
        CPU: 27ms
     CGroup: /system.slice/nginx.service
             ├─655 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             └─656 "nginx: worker process"</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: Install Node.js</span></h2>
<p>Strapi is based on Node.js, for that reason, you need to have Node.js installed on your server.</p>
<p>To install Node.js and npm on your Debian OS use the following command:</p>
<pre><code># apt install nodejs npm</code></pre>
<p>You can verify the Node.js version with the following command:</p>
<pre><code># node --version</code></pre>
<p>You should see the following output:</p>
<pre><code>v18.13.0</code></pre>
<p>Also, verify the <strong>npm</strong> version with the following command:</p>
<pre><code># npm --version</code></pre>
<p>You should get the following output:</p>
<pre><code>9.2.0</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 4: Install PostgreSQL </span></h2>
<p>Strapi uses PostgreSQL as a database backend, so you will need to<a href="https://www.linuxtuto.com/how-to-install-postgresql-15-on-debian-11/"> install PostgreSQL on your server</a>.</p>
<p>You can run the following command to install the PostgreSQL server:</p>
<pre><code># apt-get install postgresql-15</code></pre>
<p>After the successful installation, start the PostgreSQL service and enable it to start after the system reboot:</p>
<pre><code># systemctl start postgresql
# systemctl enable postgresql</code></pre>
<p>Verify that is active and running on your server:</p>
<pre><code># systemctl status postgresql</code></pre>
<pre><strong>Output</strong>
<code>● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
     Active: active (exited)
   Main PID: 13153 (code=exited, status=0/SUCCESS)
        CPU: 1ms
</code></pre>
<p>Next, connect to the PostgreSQL shell:</p>
<pre><code># su postgres
# psql</code></pre>
<p>Then, we create the Strapi database:</p>
<pre><code>postgres=# CREATE DATABASE strapidb; 
postgres=# CREATE USER strapi WITH PASSWORD 'Your-Strong-Password'; 
postgres=# GRANT ALL PRIVILEGES ON DATABASE strapidb to strapi; 
postgres=# \q</code></pre>
<p>Return to your <code>root</code> user account.</p>
<pre><code># exit</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 5: Create a Strapi Application</span></h2>
<p>Once PostgreSQL and Node.js have been installed, we can proceed to install Strapi.</p>
<p>You can use the <strong>npx</strong> command line utility to easily create a Strapi app.</p>
<pre><code># cd /opt
# npx create-strapi-app@latest strapi --no-run</code></pre>
<p>You will see the following output.</p>
<pre><code>Need to install the following packages:
  create-strapi-app@4.12.1
Ok to proceed? (y) <strong>y</strong></code></pre>
<p>Proceed with the creation by pressing <strong>y</strong>.</p>
<p>In the interactive shell, select <strong>custom</strong> installation then your database client, database name and user name as provisioned.</p>
<pre><code>? Choose your installation type Custom (manual settings)
? Choose your preferred language JavaScript
? Choose your default database client postgres
? Database name: strapidb
? Host: 127.0.0.1
? Port: 5432
? Username: strapi
? Password: ********************
? Enable SSL connection: No</code></pre>
<p>Next, navigate to the <strong>strapi</strong> directory and build the application with the following command.</p>
<pre><code># cd strapi
# npm run build</code></pre>
<p>Output:</p>
<pre><code>&gt; strapi@0.1.0 build
&gt; strapi build

Building your admin UI with development configuration...

✔ Webpack
  Compiled successfully in 1.12m

Admin UI built successfully
</code></pre>
<p>Then run Strapi in development mode.</p>
<pre><code># npm run develop</code></pre>
<p>If everything is fine, you will get the following output.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1503" src="https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_project_information.webp" alt="Strapi Project Information" width="900" height="427" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_project_information.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_project_information-300x142.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_project_information-768x364.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_project_information-897x426.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_project_information-684x325.webp 684w" sizes="auto, (max-width: 900px) 100vw, 900px" /><br />
Press the <strong>CTRL+C</strong> to stop the application.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 6: Run Strapi with PM2</span></h2>
<p>In this step we will describe you to how to run Strapi app with PM2 command. PM2 is a Production Process Manager for Node.js applications.</p>
<p>First, install PM2 application by running the following command:</p>
<pre><code># npm install pm2@latest -g</code></pre>
<p>Now create a pm2 ecosystem file which is where you can setup some environment variables for each pm2 app you want to install and run.</p>
<pre><code># nano /root/ecosystem<span class="hljs-selector-class">.config</span><span class="hljs-selector-class">.js</span>
</code></pre>
<p>Paste the following content in the file.</p>
<pre><code>module.exports = {
  apps: [
    {
      name: <span class="hljs-string">'strapi'</span>,
      cwd: <span class="hljs-string">'/opt/strapi'</span>,
      script: <span class="hljs-string">'npm'</span>,
      args: <span class="hljs-string">'start'</span>,
      env: {
        NODE_ENV: <span class="hljs-string">'production'</span>,
        DATABASE_HOST: <span class="hljs-string">'localhost'</span>,
        DATABASE_PORT: <span class="hljs-string">'5432'</span>,
        DATABASE_NAME: <span class="hljs-string">'strapidb'</span>,
        DATABASE_USERNAME: <span class="hljs-string">'strapi'</span>,
        DATABASE_PASSWORD: <span class="hljs-string">'Your-Strong-Password'</span>
      },
    },
  ]
};
</code></pre>
<p><strong><span style="color: #ff0000;">Note:</span> /opt/strapi </strong>is the path to your project, you are required to replace this with your own path before you proceed.</p>
<p>Once modified, save the file then start the app in the background with the command:</p>
<pre><code># pm2 start /root/ecosystem.config.js</code></pre>
<p>You can see that the status of the app is set to <code>online</code>.</p>
<pre><code># pm2 list</code></pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1506" src="https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_pm2_list-900x59.webp" alt="pm2 list" width="900" height="59" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_pm2_list-900x59.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_pm2_list-300x20.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_pm2_list-768x50.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_pm2_list-1536x100.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_pm2_list-1222x80.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_pm2_list-897x59.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_pm2_list-684x45.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_pm2_list.webp 1622w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>To allow the app to start automatically on boot, use the command:</p>
<pre><code># pm2 startup -u root</code></pre>
<p>Save the process:</p>
<pre><code># pm2 save</code></pre>
<p>Your <code>Strapi</code> service is now running in the background in production mode.</p>
<h2><span class="has-inline-color has-vivid-purple-color">Step 7: Configure Nginx for Strapi</span></h2>
<p>Create a new Nginx virtual host configuration file.</p>
<pre><code># nano /etc/nginx/conf.d/strapi.conf</code></pre>
<p>Add the following configurations:</p>
<pre><code>upstream strapi {
server 127.0.0.1:1337;
}

server {

listen 80;
server_name your-domain.com www.your-domain.com;

location / {
        proxy_pass http://strapi;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass_request_headers on;
      }
}</code></pre>
<p>Save and close the file, then edit the Nginx main configuration file.</p>
<pre><code># nano /etc/nginx/nginx.conf</code></pre>
<p>Add the following line after the line <code>http{:</code> but before the line <code>include /etc/nginx/conf.d/*.conf;</code>.</p>
<pre><code>server_names_hash_bucket_size 64;</code></pre>
<p>Save the file, then verify the Nginx configuration.</p>
<pre><code># /usr/sbin/nginx -t</code></pre>
<p>You should see the following output:</p>
<pre><code>nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful</code></pre>
<p>Restart the Nginx service to implement the changes.</p>
<pre><code># systemctl restart nginx</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 8: Access Strapi Web Interface</span></h2>
<p>Now, open your web browser and access the Strapi web UI using the URL <strong>http://your-domain.com/admin.</strong> You should see the <code>Strapi</code> default page:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1500" src="https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_welcome_page-900x513.webp" alt="Strapi Welcome Page" width="900" height="513" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_welcome_page-900x513.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_welcome_page-300x171.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_welcome_page-768x438.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_welcome_page-1536x876.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_welcome_page-1222x697.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_welcome_page-897x511.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_welcome_page-684x390.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_welcome_page.webp 1894w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Then click on the <strong>Let’s start</strong> button. You should see the <code>Strapi</code> dashboard:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1501" src="https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_dashboard-900x513.webp" alt="Strapi Dashboard" width="900" height="513" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_dashboard-900x513.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_dashboard-300x171.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_dashboard-768x438.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_dashboard-1536x876.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_dashboard-1222x697.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_dashboard-897x512.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_dashboard-684x390.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/08/strapi_dashboard.webp 1890w" 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 learned how to install Strapi on Debian 12 OS. You can now create your own application easily using Strapi.</p>
<p>For additional help or useful information, we recommend you to check  <a href="https://docs.strapi.io/" target="_blank" rel="noopener">the official Strapi documentation.</a></p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-strapi-with-nginx-on-debian-12/">How to Install Strapi with Nginx 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-strapi-with-nginx-on-debian-12/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1499</post-id>	</item>
		<item>
		<title>How to Install WordPress on Debian 12</title>
		<link>https://www.linuxtuto.com/how-to-install-wordpress-on-debian-12/</link>
					<comments>https://www.linuxtuto.com/how-to-install-wordpress-on-debian-12/#comments</comments>
		
		<dc:creator><![CDATA[LinuxTuto]]></dc:creator>
		<pubDate>Mon, 10 Jul 2023 13:00:04 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://www.linuxtuto.com/?p=1435</guid>

					<description><![CDATA[<p>WordPress is a popular content management system (CMS) used for creating and managing websites. It is an open-source platform written in PHP and paired with...</p>
<p>The post <a href="https://www.linuxtuto.com/how-to-install-wordpress-on-debian-12/">How to Install WordPress on Debian 12</a> appeared first on <a href="https://www.linuxtuto.com">LinuxTuto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>WordPress is a popular content management system (CMS) used for creating and managing websites. It is an open-source platform written in PHP and paired with a MySQL or MariaDB database. WordPress provides a user-friendly interface and a wide range of themes, plugins, and customization options, making it accessible to users with varying levels of technical expertise.</p>
<p>In this tutorial we’ll show you how to install WordPress 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 make sure all existing packages are up to date:</p>
<pre><code># apt update &amp;&amp; apt upgrade</code></pre>
<p>Also, install necessary packages:</p>
<pre><code># apt install nano wget unzip</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 2: Install Nginx web server on Debian 12</span></h2>
<p>To install Nginx, run 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 <code>Nginx</code> service using <code>systemctl status</code> command:</p>
<pre><code># systemctl status nginx</code></pre>
<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: 674 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 873 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 875 (nginx)
      Tasks: 2 (limit: 2273)
     Memory: 4.5M
        CPU: 402ms
     CGroup: /system.slice/nginx.service
             ├─875 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             └─876 "nginx: worker process"</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 3: Install PHP and PHP extensions for WordPress</span></h2>
<p>You can install PHP and other supporting packages using the following command:</p>
<pre><code># apt install php php-curl php-fpm php-bcmath php-gd php-soap php-zip php-curl php-mbstring php-mysqlnd php-gd php-xml php-intl php-zip</code></pre>
<p>Verify if PHP is installed.</p>
<pre><code>php -v</code></pre>
<p>Output:</p>
<pre><code>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 <code>php-fpm</code> 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>You can install MariaDB with the following command:</p>
<pre><code># apt install mariadb-server mariadb-client</code></pre>
<p>Start the database server daemon, and also enable it to start automatically at the next boot with the following commands:</p>
<pre><code># systemctl start mariadb
# systemctl enable mariadb</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>● 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: 959 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 12 (limit: 2273)
     Memory: 256.5M
        CPU: 6.621s
     CGroup: /system.slice/mariadb.service
             └─959 /usr/sbin/mariadbd
</code></pre>
<p>Once the database server is installed, run the following command to secure your <a href="https://www.linuxtuto.com/how-to-install-mariadb-10-7-on-debian-11/">MariaDB server</a>:</p>
<pre><code># mysql_secure_installation</code></pre>
<p>You will then be asked several configuration questions, which you must answer <strong><code>Y</code></strong> to each of them.</p>
<pre><code>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 WordPress</span></h2>
<p>To do this, log in to your MariaDB server using the following command:</p>
<pre><code># mysql -u root -p</code></pre>
<p>Run the following commands to create a new database and user:</p>
<pre><code>MariaDB [(none)]&gt; CREATE DATABASE wordpress_db;
MariaDB [(none)]&gt; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'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 WordPress</span></h2>
<p>We will now download the latest version of WordPress from the <a href="https://wordpress.org/download/">WordPress Official site</a>.</p>
<p>Use the following command to download WordPress:</p>
<pre><code># wget https://wordpress.org/latest.zip</code></pre>
<p>Extract file into the folder <strong>/var/www/html/</strong> with the following command,</p>
<pre><code># unzip latest.zip -d /var/www/html/</code></pre>
<p>Next, navigate to the  <code>/var/www/html/wordpress/</code> directory:</p>
<pre><code># cd /var/www/html/wordpress</code></pre>
<p>WordPress comes with a configuration sample file. Make a copy of this file:</p>
<pre><code># cp wp-config-sample.php wp-config.php</code></pre>
<p>Next, edit the WordPress configuration file and define your database settings:</p>
<pre><code># nano wp-config.php</code></pre>
<p>Change the following lines that match your database settings:</p>
<pre><code>/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress_db' );

/** MySQL database username */
define( 'DB_USER', 'wordpress_user' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );</code></pre>
<p>Save the file when you are finished.</p>
<p>Change the permission of the website directory:</p>
<pre><code># chown -R www-data:www-data /var/www/html/wordpress/</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 7: Configure Nginx Web Server for WordPress</span></h2>
<p>Navigate to <strong>/etc/nginx/conf.d</strong> directory and run the following command to create a configuration file for your installation:</p>
<pre><code class="hljs shell"><span class="bash"># nano /etc/nginx/conf.d/wordpress.conf</span></code></pre>
<p>Add the following content:</p>
<pre><code>server {
  listen 80;

    server_name  your-domain.com www.your-domain.com;
    root   /var/www/html/wordpress;
    index  index.php;

    access_log /var/log/nginx/your-domain.com.access.log;
    error_log /var/log/nginx/your-domain.com.error.log;

    client_max_body_size 100M;

    location / {
     try_files $uri $uri/ /index.php?$args;
      }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
         include fastcgi_params;
         fastcgi_intercept_errors on;
    }
}
</code></pre>
<p>Save the file and Exit.</p>
<p>Restart the Nginx web server.</p>
<pre><code># systemctl restart nginx</code></pre>
<h2><span class="has-inline-color has-vivid-purple-color">Step 8: Access WordPress Web Installer</span></h2>
<p>Open your browser type your domain e.g <code>http://your-domain.com</code> You will be redirected to the language selection screen:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1436 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_install-900x507.webp" alt="Installation wizard" width="900" height="507" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_install-900x507.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_install-300x169.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_install-768x432.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_install-1536x865.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_install-1222x688.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_install-897x505.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_install-684x385.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_install.webp 1917w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Select your language and click on the <strong>Continue</strong> button.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1437 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_welcome-900x513.webp" alt="Welcome page" width="900" height="513" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_welcome-900x513.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_welcome-300x171.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_welcome-768x438.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_welcome-1536x876.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_welcome-1222x697.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_welcome-897x511.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_welcome-684x390.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_welcome.webp 1894w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Provide the requested information and click on the<strong> <strong>Install WordPress</strong> </strong>button. Once the installation has been finished. You should see the following screen:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1438" src="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_success-900x427.webp" alt="WordPress success installation" width="900" height="427" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_success-900x427.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_success-300x142.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_success-768x364.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_success-1536x729.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_success-1222x580.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_success-897x426.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_success-684x325.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_success.webp 1918w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Click on the <strong>Log in</strong> button. You should see the WordPress login screen:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1439" src="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_login-900x427.webp" alt="WordPress login page" width="900" height="427" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_login-900x427.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_login-300x142.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_login-768x364.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_login-1536x729.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_login-1222x580.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_login-897x426.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_login-684x325.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_login.webp 1916w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Enter your administrator user, password and click on the<strong> <strong>Log In</strong></strong> button. You will get the dashboard in the following screen:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1440 size-large" src="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_dashboard-900x432.webp" alt="Dashboard" width="900" height="432" srcset="https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_dashboard-900x432.webp 900w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_dashboard-300x144.webp 300w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_dashboard-768x369.webp 768w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_dashboard-1536x738.webp 1536w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_dashboard-1222x587.webp 1222w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_dashboard-897x431.webp 897w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_dashboard-684x328.webp 684w, https://www.linuxtuto.com/wp-content/uploads/2023/07/wordpress_dashboard.webp 1893w" sizes="auto, (max-width: 900px) 100vw, 900px" /></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>WordPress CMS</code> (Content Management System) on Debian 12 OS.</p>
<p>For additional help or useful information, we recommend you to check <a href="https://wordpress.org/documentation/">the official WordPress 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-wordpress-on-debian-12/">How to Install WordPress 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-wordpress-on-debian-12/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1435</post-id>	</item>
	</channel>
</rss>
