{"id":1731,"date":"2025-01-31T16:50:15","date_gmt":"2025-01-31T15:50:15","guid":{"rendered":"https:\/\/olvy.net\/blog\/?p=1731"},"modified":"2025-09-22T20:30:01","modified_gmt":"2025-09-22T18:30:01","slug":"easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners","status":"publish","type":"post","link":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/","title":{"rendered":"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners"},"content":{"rendered":"<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1749 aligncenter\" src=\"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2025\/01\/amp-1.png\" alt=\"Apache, MariaDB, PHP\" width=\"700\" height=\"366\" srcset=\"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2025\/01\/amp-1.png 700w, https:\/\/olvy.net\/blog\/wp-content\/uploads\/2025\/01\/amp-1-300x157.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This guide will walk you through the steps to set up a basic web server on <strong><a href=\"https:\/\/www.debian.org\/\" target=\"_blank\" rel=\"noopener\">Debian<\/a> 12<\/strong> or <strong><a href=\"https:\/\/ubuntu.com\/\" target=\"_blank\" rel=\"noopener\">Ubuntu<\/a> 24.04<\/strong> to host PHP applications like <a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noopener\">WordPress<\/a>, <a href=\"https:\/\/www.joomla.org\/\" target=\"_blank\" rel=\"noopener\">Joomla<\/a>, <a href=\"https:\/\/new.drupal.org\/\" target=\"_blank\" rel=\"noopener\">Drupal<\/a>, <a href=\"https:\/\/www.opencart.com\/\" target=\"_blank\" rel=\"noopener\">OpenCart<\/a>, <a href=\"https:\/\/prestashop.com\/\" target=\"_blank\" rel=\"noopener\">Prestashop<\/a>, <a href=\"https:\/\/oscommerce.com\/\" target=\"_blank\" rel=\"noopener\">osCommerce<\/a>, etc. We will install and configure <strong>Apache<\/strong>, <strong>MariaDB<\/strong>, <strong>PHP<\/strong> and <strong>SSL<\/strong> and prepare the environment for deploying a PHP application.<\/p>\r\n\r\n\r\n\r\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">Contents<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#step_1_install_required_packages\" >Step 1: Install Required Packages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#step_2_enable_php-fpm_with_apache\" >Step 2: Enable PHP-FPM with Apache<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#step_3_enable_ssl_and_configure_apache\" >Step 3: Enable SSL and Configure Apache<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#step_4_restart_php-fpm\" >Step 4: Restart PHP-FPM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#step_5_set_up_a_database_for_your_application\" >Step 5: Set Up a Database for Your Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#step_6_deploy_your_php_application\" >Step 6: Deploy Your PHP Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#step_7_secure_your_server_with_ssl\" >Step 7: Secure Your Server with SSL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#step_8_test_your_setup\" >Step 8: Test Your Setup<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#optional_step_adjust_php_options\" >Optional Step: Adjust PHP options<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"step_1_install_required_packages\"><\/span><strong>Step 1: Install Required Packages<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">First, install the necessary packages for Apache, MariaDB, PHP, and Certbot (for SSL):<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><code><span style=\"font-size: 12pt;\">sudo apt update<\/span><br \/><span style=\"font-size: 12pt;\">sudo apt install apache2 mariadb-server mariadb-client php php-fpm php-intl php-mbstring php-gd php-xml php-curl php-mysql php-zip php-xmlrpc python3-certbot-apache ssl-cert<\/span><\/code><span style=\"font-size: 12pt;\"><br \/><br \/><\/span><\/pre>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Apache2<\/strong>: The web server.<\/li>\r\n\r\n\r\n\r\n<li><strong>MariaDB<\/strong>: The database server.<\/li>\r\n\r\n\r\n\r\n<li><strong>PHP<\/strong>: The scripting language for your application.<\/li>\r\n\r\n\r\n\r\n<li><strong>Certbot<\/strong>: For obtaining and managing SSL certificates.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"step_2_enable_php-fpm_with_apache\"><\/span><strong>Step 2: Enable PHP-FPM with Apache<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">PHP-FPM (FastCGI Process Manager) is a modern way to handle PHP requests. Enable it with Apache:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Debian 12:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\">sudo a2enconf php8.2-fpm<\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ubuntu 24.04:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\">sudo a2enconf php8.3-fpm<\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This command creates a symlink in\u00a0<code><span style=\"font-size: 12pt;\">\/etc\/apache2\/conf-enabled\/<\/span><\/code>\u00a0to enable PHP-FPM configuration.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"step_3_enable_ssl_and_configure_apache\"><\/span><strong>Step 3: Enable SSL and Configure Apache<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Enable the default SSL site and configure Apache to allow\u00a0<code><span style=\"font-size: 12pt;\">.htaccess<\/span><\/code>\u00a0overrides for PHP applications like WordPress:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">1. Enable the default SSL site:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\"><span class=\"token function\">sudo<\/span> a2ensite default-ssl<\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">2. Edit the SSL and default configuration files to allow <code><span style=\"font-size: 12pt;\">.htaccess<\/span><\/code>\u00a0overrides:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Open <code><span style=\"font-size: 12pt;\">\/etc\/apache2\/sites-enabled\/000-default.conf<\/span><\/code> and <code><span style=\"font-size: 12pt;\">\/etc\/apache2\/sites-enabled\/default-ssl.conf<\/span><\/code>\u00a0in a text editor (e.g.,\u00a0<code><span style=\"font-size: 12pt;\">nano<\/span><\/code>\u00a0or\u00a0<code><span style=\"font-size: 12pt;\">vim<\/span><\/code>):<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\">sudo nano \/etc\/apache2\/sites-enabled\/000-default.conf<\/span>\r\n<span style=\"font-size: 12pt;\">sudo nano \/etc\/apache2\/sites-enabled\/default-ssl.conf<\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Add the following block inside the\u00a0<code><span style=\"font-size: 12pt;\">&lt;VirtualHost&gt;<\/span><\/code>\u00a0section:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\">&lt;Directory \"\/var\/www\/html\"&gt;\r\n    Options FollowSymLinks\r\n    AllowOverride All\r\n    Require all granted\r\n&lt;\/Directory&gt;<\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This configuration allows\u00a0<code><span style=\"font-size: 12pt;\">.htaccess<\/span><\/code>\u00a0files to override Apache settings, which is required for WordPress and many other PHP applications.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">3. Restart Apache to apply the changes:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\"><span class=\"token function\">sudo<\/span> systemctl restart apache2<\/span><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"step_4_restart_php-fpm\"><\/span><strong>Step 4: Restart PHP-FPM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Restart the PHP-FPM service to ensure it\u2019s running with the latest configuration:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Debian 12:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\"><span class=\"token function\">sudo<\/span> systemctl restart php8.2-fpm<\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ubuntu 24.04:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\"><span class=\"token function\">sudo<\/span> systemctl restart php8.3-fpm<\/span><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"step_5_set_up_a_database_for_your_application\"><\/span><strong>Step 5: Set Up a Database for Your Application<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Most PHP applications, like WordPress, require a database. Use MariaDB to create a database and user:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">1. Log in to MariaDB as the root user:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\"><span class=\"token function\">sudo<\/span> mysql <span class=\"token parameter variable\">-u<\/span> root<\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">2. Create a database and user, and grant privileges:<br \/>Replace\u00a0<code><span style=\"font-size: 12pt;\">databasename<\/span><\/code>,\u00a0<code><span style=\"font-size: 12pt;\">databaseuser<\/span><\/code>, and\u00a0<code><span style=\"font-size: 12pt;\">Se6uReP@55w0rD<\/span><\/code>\u00a0with your desired values.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\"><span class=\"token keyword\">CREATE<\/span> <span class=\"token keyword\">DATABASE<\/span> databasename<span class=\"token punctuation\">;\r\n<\/span>\r\n<span class=\"token keyword\">GRANT<\/span> <span class=\"token keyword\">ALL<\/span> <span class=\"token keyword\">PRIVILEGES<\/span> <span class=\"token keyword\">ON<\/span> databasename<span class=\"token punctuation\">.<\/span><span class=\"token operator\">*<\/span> <span class=\"token keyword\">TO<\/span> databaseuser<span class=\"token variable\">@'localhost'<\/span> IDENTIFIED <span class=\"token keyword\">BY<\/span> <span class=\"token string\">'Se6uReP@55w0rD'<\/span><span class=\"token punctuation\">;\r\n\r\n<\/span>FLUSH <span class=\"token keyword\">PRIVILEGES<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n<span class=\"token keyword\">EXIT<\/span><span class=\"token punctuation\">;<\/span><\/span><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"step_6_deploy_your_php_application\"><\/span><strong>Step 6: Deploy Your PHP Application<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n<p class=\"wp-block-paragraph\">Now that the server is configured, you can deploy your PHP application. We will use WordPress in this example.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">1. Download and extract WordPress:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\"><span class=\"token builtin class-name\">cd<\/span> \/var\/www\/html\r\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">wget<\/span> https:\/\/wordpress.org\/latest.tar.gz\r\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">tar<\/span> <span class=\"token parameter variable\">-xvzf<\/span> latest.tar.gz\r\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">mv<\/span> wordpress\/* <span class=\"token builtin class-name\">.<\/span>\r\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">rm<\/span> <span class=\"token parameter variable\">-rf<\/span> wordpress latest.tar.gz<\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">2. Set the correct permissions:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\"><span class=\"token function\">sudo<\/span> <span class=\"token function\">chown<\/span> <span class=\"token parameter variable\">-R<\/span> www-data:www-data \/var\/www\/html\r\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">chmod<\/span> <span class=\"token parameter variable\">-R<\/span> <span class=\"token number\">755<\/span> \/var\/www\/html<\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">3. Access your application via a web browser:<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Open\u00a0<code><span style=\"font-size: 12pt;\">https:\/\/your-server-ip<\/span><\/code> or <code><span style=\"font-size: 12pt;\">https:\/\/yourdomain.tld<\/span><\/code> in your browser. Follow the WordPress installation wizard, and use the database details you created earlier.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"step_7_secure_your_server_with_ssl\"><\/span><strong>Step 7: Secure Your Server with SSL<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">If you haven\u2019t already, use Certbot to obtain a free SSL certificate from Let\u2019s Encrypt:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><span style=\"font-size: 12pt;\"><span class=\"token function\">sudo<\/span> certbot <span class=\"token parameter variable\">--apache<\/span><\/span><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Follow the prompts to configure SSL for your domain. Certbot will automatically configure Apache to use the SSL certificate.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"step_8_test_your_setup\"><\/span><strong>Step 8: Test Your Setup<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">1. Visit your domain (e.g., <code><span style=\"font-size: 12pt;\">https:\/\/yourdomain.tld<\/span><\/code>) to ensure the application loads correctly.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">2. Verify that SSL is working by checking for the padlock icon in your browser\u2019s address bar.<\/p>\r\n<h2><span class=\"ez-toc-section\" id=\"optional_step_adjust_php_options\"><\/span><strong>Optional Step: Adjust PHP options<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>You may need to adjust some PHP options in accordance with your PHP application requirements.<\/p>\r\n<p>Create and edit <code><span style=\"font-size: 12pt;\">.user.ini<\/span><\/code> file:<\/p>\r\n<pre><span style=\"font-size: 12pt;\">sudo nano \/var\/www\/html\/.user.ini<\/span><\/pre>\r\n<p>And insert, as example:<\/p>\r\n<pre class=\"prettyprint  lang-php prettyprinted\"><span style=\"font-size: 12pt;\"><span class=\"pln\">expose_php <\/span><span class=\"pun\">=<\/span> <span class=\"typ\">Off<\/span><span class=\"pln\">\r\nmax_execution_time <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">600<\/span><span class=\"pln\">\r\nmax_input_time <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">600<\/span><span class=\"pln\">\r\nmax_input_vars <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">10000<\/span><span class=\"pln\">\r\nmemory_limit <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">256M<\/span><span class=\"pln\">\r\npost_max_size <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">64M<\/span><span class=\"pln\">\r\nupload_max_filesize <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">64M<\/span><span class=\"pln\">\r\nmax_file_uploads <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">50<\/span><span class=\"pln\">\r\nsession<\/span><span class=\"pun\">.<\/span><span class=\"pln\">gc_probability <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">1<\/span><span class=\"pln\">\r\nsession<\/span><span class=\"pun\">.<\/span><span class=\"pln\">gc_maxlifetime <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">14400<\/span><\/span><\/pre>\r\n\r\n\r\n\r\n<p>It may require 300 seconds for PHP to re-read these options.<\/p>\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"conclusion\"><\/span><strong>Conclusion<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">You have successfully set up a basic web server on Debian and Ubuntu to host PHP applications like WordPress, or even launch a store with WooCommerce. This guide covered installing Apache, MariaDB, PHP, and SSL, as well as configuring the environment for a PHP application. You can now deploy and manage your PHP applications with ease.<\/p>\r\n<p>If you would prefer to skip the technical setup and focus on your website, Olvy offers <a href=\"https:\/\/olvy.net\/wordpress-hosting\/\">managed WordPress hosting<\/a> and <a href=\"https:\/\/olvy.net\/woocommerce-hosting\/\">WooCommerce hosting optimized for speed and security<\/a>. You can also learn more about what <a href=\"https:\/\/olvy.net\/blog\/what-is-managed-hosting-and-why-your-website-needs-it\/\">managed hosting really means<\/a>.<\/p>\r\n\r\n\r\n<hr \/>\r\n<p><em>About Olvy ( <a href=\"https:\/\/olvy.net\/\">www.olvy.net<\/a> ) :<\/em><\/p>\r\n<!-- \/wp:post-content -->\r\n\r\n<!-- wp:paragraph -->\r\n<p><em>Olvy is a private and independent Limited Liability Company based in Bratislava, Slovakia, in the heart of Europe. We combined our invaluable 20+ years experience to develop innovative and reliable, lightning-fast and affordable Managed Cloud Hosting services for Everyone. From a small blog to a growing eCommerce \u2013 Olvy takes care of your website 24\/7.<\/em><\/p>\r\n<!-- \/wp:paragraph -->","protected":false},"excerpt":{"rendered":"<p>This guide will walk you through the steps to set up a basic web server on Debian 12 or Ubuntu 24.04 to host PHP applications&hellip;<\/p>\n","protected":false},"author":23,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[135,29,93,15,61,84],"class_list":["post-1731","post","type-post","status-publish","format-standard","hentry","category-guides","tag-apache","tag-debian","tag-mariadb","tag-php","tag-ubuntu","tag-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners - Olvy Blog<\/title>\n<meta name=\"description\" content=\"Learn how to easily set up and configure a web server on Debian 12 or Ubuntu 24.04 in just a few steps using Apache, MariaDB, and PHP\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners - Olvy Blog\" \/>\n<meta property=\"og:description\" content=\"Learn how to easily set up and configure a web server on Debian 12 or Ubuntu 24.04 in just a few steps using Apache, MariaDB, and PHP\" \/>\n<meta property=\"og:url\" content=\"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/\" \/>\n<meta property=\"og:site_name\" content=\"Olvy Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/olvycloud\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-31T15:50:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-22T18:30:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2026\/04\/olvynet_preview.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"564\" \/>\n\t<meta property=\"og:image:height\" content=\"381\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"olvywriter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@olvycloud\" \/>\n<meta name=\"twitter:site\" content=\"@olvycloud\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"olvywriter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/\"},\"author\":{\"name\":\"olvywriter\",\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/#\\\/schema\\\/person\\\/256b8cc1d90850acce9336449b2bced1\"},\"headline\":\"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners\",\"datePublished\":\"2025-01-31T15:50:15+00:00\",\"dateModified\":\"2025-09-22T18:30:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/\"},\"wordCount\":597,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/olvy.net\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/amp-1.png\",\"keywords\":[\"apache\",\"debian\",\"mariadb\",\"php\",\"ubuntu\",\"wordpress\"],\"articleSection\":[\"Hosting Guides\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/\",\"url\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/\",\"name\":\"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners - Olvy Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/olvy.net\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/amp-1.png\",\"datePublished\":\"2025-01-31T15:50:15+00:00\",\"dateModified\":\"2025-09-22T18:30:01+00:00\",\"description\":\"Learn how to easily set up and configure a web server on Debian 12 or Ubuntu 24.04 in just a few steps using Apache, MariaDB, and PHP\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/#primaryimage\",\"url\":\"https:\\\/\\\/olvy.net\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/amp-1.png\",\"contentUrl\":\"https:\\\/\\\/olvy.net\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/amp-1.png\",\"width\":700,\"height\":366,\"caption\":\"Apache, MariaDB, PHP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/olvy.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/olvy.net\\\/blog\\\/\",\"name\":\"Olvy Blog\",\"description\":\"Hosting News, Guides, Information\",\"publisher\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/olvy.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/#organization\",\"name\":\"Olvy s.r.o.\",\"alternateName\":\"Olvy\",\"url\":\"https:\\\/\\\/olvy.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/olvy.net\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/olvy_400x400.png\",\"contentUrl\":\"https:\\\/\\\/olvy.net\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/olvy_400x400.png\",\"width\":400,\"height\":400,\"caption\":\"Olvy s.r.o.\"},\"image\":{\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/olvycloud\\\/\",\"https:\\\/\\\/x.com\\\/olvycloud\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/olvycloud\",\"https:\\\/\\\/mastodon.social\\\/@olvy\",\"https:\\\/\\\/www.threads.net\\\/@olvycloud\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/olvy.net\\\/blog\\\/#\\\/schema\\\/person\\\/256b8cc1d90850acce9336449b2bced1\",\"name\":\"olvywriter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ff7e0e4a07337c1c8a0c3184bd6638752265a156749d4d61e23010abe0a6abc4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ff7e0e4a07337c1c8a0c3184bd6638752265a156749d4d61e23010abe0a6abc4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ff7e0e4a07337c1c8a0c3184bd6638752265a156749d4d61e23010abe0a6abc4?s=96&d=mm&r=g\",\"caption\":\"olvywriter\"},\"url\":\"https:\\\/\\\/olvy.net\\\/blog\\\/author\\\/olvywriter\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners - Olvy Blog","description":"Learn how to easily set up and configure a web server on Debian 12 or Ubuntu 24.04 in just a few steps using Apache, MariaDB, and PHP","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/","og_locale":"en_US","og_type":"article","og_title":"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners - Olvy Blog","og_description":"Learn how to easily set up and configure a web server on Debian 12 or Ubuntu 24.04 in just a few steps using Apache, MariaDB, and PHP","og_url":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/","og_site_name":"Olvy Blog","article_publisher":"https:\/\/www.facebook.com\/olvycloud\/","article_published_time":"2025-01-31T15:50:15+00:00","article_modified_time":"2025-09-22T18:30:01+00:00","og_image":[{"width":564,"height":381,"url":"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2026\/04\/olvynet_preview.jpg","type":"image\/jpeg"}],"author":"olvywriter","twitter_card":"summary_large_image","twitter_creator":"@olvycloud","twitter_site":"@olvycloud","twitter_misc":{"Written by":"olvywriter","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#article","isPartOf":{"@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/"},"author":{"name":"olvywriter","@id":"https:\/\/olvy.net\/blog\/#\/schema\/person\/256b8cc1d90850acce9336449b2bced1"},"headline":"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners","datePublished":"2025-01-31T15:50:15+00:00","dateModified":"2025-09-22T18:30:01+00:00","mainEntityOfPage":{"@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/"},"wordCount":597,"commentCount":0,"publisher":{"@id":"https:\/\/olvy.net\/blog\/#organization"},"image":{"@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2025\/01\/amp-1.png","keywords":["apache","debian","mariadb","php","ubuntu","wordpress"],"articleSection":["Hosting Guides"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/","url":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/","name":"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners - Olvy Blog","isPartOf":{"@id":"https:\/\/olvy.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#primaryimage"},"image":{"@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2025\/01\/amp-1.png","datePublished":"2025-01-31T15:50:15+00:00","dateModified":"2025-09-22T18:30:01+00:00","description":"Learn how to easily set up and configure a web server on Debian 12 or Ubuntu 24.04 in just a few steps using Apache, MariaDB, and PHP","breadcrumb":{"@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#primaryimage","url":"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2025\/01\/amp-1.png","contentUrl":"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2025\/01\/amp-1.png","width":700,"height":366,"caption":"Apache, MariaDB, PHP"},{"@type":"BreadcrumbList","@id":"https:\/\/olvy.net\/blog\/easy-steps-to-setup-web-server-on-debian12-or-ubuntu2404-for-beginners\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/olvy.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Easy Steps to Setup Web Server on Debian 12 or Ubuntu 24.04 for Beginners"}]},{"@type":"WebSite","@id":"https:\/\/olvy.net\/blog\/#website","url":"https:\/\/olvy.net\/blog\/","name":"Olvy Blog","description":"Hosting News, Guides, Information","publisher":{"@id":"https:\/\/olvy.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/olvy.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/olvy.net\/blog\/#organization","name":"Olvy s.r.o.","alternateName":"Olvy","url":"https:\/\/olvy.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/olvy.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2023\/01\/olvy_400x400.png","contentUrl":"https:\/\/olvy.net\/blog\/wp-content\/uploads\/2023\/01\/olvy_400x400.png","width":400,"height":400,"caption":"Olvy s.r.o."},"image":{"@id":"https:\/\/olvy.net\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/olvycloud\/","https:\/\/x.com\/olvycloud","https:\/\/www.linkedin.com\/company\/olvycloud","https:\/\/mastodon.social\/@olvy","https:\/\/www.threads.net\/@olvycloud"]},{"@type":"Person","@id":"https:\/\/olvy.net\/blog\/#\/schema\/person\/256b8cc1d90850acce9336449b2bced1","name":"olvywriter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ff7e0e4a07337c1c8a0c3184bd6638752265a156749d4d61e23010abe0a6abc4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ff7e0e4a07337c1c8a0c3184bd6638752265a156749d4d61e23010abe0a6abc4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ff7e0e4a07337c1c8a0c3184bd6638752265a156749d4d61e23010abe0a6abc4?s=96&d=mm&r=g","caption":"olvywriter"},"url":"https:\/\/olvy.net\/blog\/author\/olvywriter\/"}]}},"_links":{"self":[{"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/posts\/1731","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/comments?post=1731"}],"version-history":[{"count":18,"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/posts\/1731\/revisions"}],"predecessor-version":[{"id":1994,"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/posts\/1731\/revisions\/1994"}],"wp:attachment":[{"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/media?parent=1731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/categories?post=1731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olvy.net\/blog\/wp-json\/wp\/v2\/tags?post=1731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}