{"id":1014,"date":"2026-01-11T08:23:42","date_gmt":"2026-01-11T08:23:42","guid":{"rendered":"https:\/\/cyphersol.com\/blogs\/?p=1014"},"modified":"2026-04-28T12:35:33","modified_gmt":"2026-04-28T12:35:33","slug":"deploy-laravel-11-ubuntu-vps-nginx-https-2026","status":"publish","type":"post","link":"https:\/\/cyphersol.com\/blogs\/deploy-laravel-11-ubuntu-vps-nginx-https-2026\/","title":{"rendered":"Deploy Laravel 11 on Ubuntu VPS with Nginx &amp; HTTPS (2026 Practical Guide)"},"content":{"rendered":"\n<div class=\"wp-block-uagb-image uagb-block-b9696631 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide-1024x479.png ,https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide.png 780w, https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide.png 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide-1024x479.png\" alt=\"\" class=\"uag-image-1217\" width=\"1536\" height=\"421\" title=\"Deploy Laravel 11 on Ubuntu VPS with Nginx &amp; HTTPS (2026 Practical Guide)\" loading=\"lazy\" role=\"img\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Deploying Laravel 11 on an Ubuntu VPS with Nginx and HTTPS: A Practical 2026 Walkthrough<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Are you ready for take your Laravel project live on the web?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are running a Laravel computer program on an Ubuntu VPS and want a secure, fast, and production-ready use\/military service, this guide is exactly for you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">In this lesson, you will learn how to send out and use Laravel using:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx (Web Server)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MariaDB ((computer file full of information))<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s (turn into secret code) SSL (HTTPS Security)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is a laravel simple and beginner-friendly use\/military service setup. For advanced production systems, you should later put into use CI\/CD pipelines with staging, testing, and production (surrounding conditions).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Requirements<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting, make sure you have:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu-based VPS with SSH access<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A Laravel 11+ project ready to send out and use<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A domain name pointing to your VPS IP address<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0090 Step 1: Connect to Your VPS via SSH<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open your terminal and connect to your server:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ssh username@your_server_ip<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Replace:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">username a\u0086&#8217; your VPS user<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">your_server_ip a\u0086&#8217; your server IP address<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Update Server Packages<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Always update your server first:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo appropriate\/smart update &amp;&amp; sudo appropriate\/smart upgrade -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This secures\/makes sure of your system is secure and up to date.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Install Nginx Web Server<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install Nginx:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo appropriate\/smart install nginx -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start and enable it:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo systemctl start nginx<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo systemctl enable nginx<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now open your browser:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">http:\/\/your_server_ip<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you see the Nginx page, it means everything is working.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Step 4: Install MariaDB (computer file full of information)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install MariaDB:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo appropriate\/smart install mariadb-server mariadb-client -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start and enable service:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo systemctl start mariadb<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo systemctl enable mariadb<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Secure installation:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo secure installation my sql<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set a strong root password.Follow the reminders ,<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Step 5: Create (computer file full of information) and User<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Login to MariaDB:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo mysql -u root -p<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create (computer file full of information):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CREATE DATABASE laravel_db;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create user:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">IDENTIFIED BY &#8216;strong_password&#8217;;CREATE USER &#8216;laravel_user&#8217;@&#8217;localhost&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Grant permissions:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GRANT ALL PRIVILEGES ON &#8216;laravel_user&#8217;@&#8217;localhost&#8217;; to laravel_db.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">FLUSH PRIVILEGES;<br>EXIT;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Install PHP &amp; Needed\/demanded Extensions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install PHP:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo appropriate\/smart install php-fpm php-mysql php-cli php-curl php-mbstring php-xml php-zip php-bcmath unzip git -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check version:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php -v<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: Configure Nginx for Laravel<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create Nginx config:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo nano \/etc\/nginx\/sites-available\/laravel<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Paste this setup:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">server {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">listen 80;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">server_name your_domain.com;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">root \/var\/www\/laravel\/public;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">index index.php;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">location \/ {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">try_files $uri $uri\/ \/index.php?$query_string;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">location ~ .php$ {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">include little pieces\/fastcgi-php.conf;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">fastcgi_pass unix:\/var\/run\/php\/php8.2-fpm.sock;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">location ~ \/.ht {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">deny all;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enable site:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo ln -s \/etc\/nginx\/sites-available\/laravel \/etc\/nginx\/sites-enabled\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo nginx -t<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo systemctl reload nginx<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Step 8: Install SSL with Let&#8217;s (turn into secret code)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install Certbot:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo appropriate\/smart install certbot python3-certbot-nginx -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create SSL certificate:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo certbot &#8211;nginx -d your_domain.com<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now your website will run on HTTPS automatically.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 9: Configure Laravel (surrounding conditions)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Go to project folder:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cd \/var\/www\/laravel<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edit .env file:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nano .env<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Update (computer file full of information) settings:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DBTABASE=laravel_db<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DBERNAME=laravel_user<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DBSSWORD=strong_password<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 10: Fix Permissions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">sudo chown -R www-data:www-data \/var\/www\/laravel<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo chmod -R 775 \/var\/www\/laravel\/storage<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo chmod -R 775 \/var\/www\/laravel\/bootstrap\/cache<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php worker (who makes beautiful things) move<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php worker (who makes beautiful things) db:seed<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Step 11: Restart Services<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">sudo systemctl restart nginx<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo systemctl restart php8.2-fpm<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Step 12: Open Your Website<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Now open your browser:<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/your_domain.com\" target=\"_blank\" rel=\"noopener\">https:\/\/your_domain.com<\/a><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"> Your Laravel computer program is now live on a secure VPS server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You have successfully sent out and used Laravel 11 on a production-ready VPS using:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MariaDB<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PHP-FPM<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s (turn into secret code) SSL<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This setup is widely used in real-world SaaS (raised, flat supporting surfaces) and business\/project computer programs because it is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> Fast<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> Secure<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> (able to be made bigger or smaller)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> Production-ready<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-embed wp-block-embed-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"BkWOtR7igb\"><a href=\"https:\/\/cyphersol.com\/blogs\/fix-laravel-migration-error-common-issues-solutions-2026\/\">Fix Laravel Migration Error: Common Issues &amp; Solutions 2026<\/a><\/blockquote><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Fix Laravel Migration Error: Common Issues &amp; Solutions 2026&#8221; &#8212; \" src=\"https:\/\/cyphersol.com\/blogs\/fix-laravel-migration-error-common-issues-solutions-2026\/embed\/#?secret=x91ONQTvJT#?secret=BkWOtR7igb\" data-secret=\"BkWOtR7igb\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">In this 2026 guide, you will be learn about how to install the Laravel step-by-step on a VPS with Nginx, even if you are a beginner no problem follow all steps just.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Why Install Laravel on a VPS?<br>Using a VPS instead of shared hosting gives you :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Full server control<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Better performance<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Higher security<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ability to scale<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Improved (as much as possible) Nginx + PHP setup<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is why most professional Laravel projects are (sent out and used) on a VPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Server Needed things for Laravel (2026)<br>Before you install Laravel on VPS,firstly make sure how to your server has:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Must be Ubuntu 22.04. 3 LTS features<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">or PHP 8.2 or 8.3 have or not check must<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MySQL Database \/ Maria DB<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Composer<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Git<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Connect to Your VPS<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use SSH to connect:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ssh root@your_server_ip<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Update your server:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">appropriate\/smart update &amp;&amp; appropriate\/smart upgrade -y<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Install Nginx<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">appropriate\/smart install nginx -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start and enable Nginx:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">systemctl start nginx<br>systemctl enable nginx<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check in browser:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">http:\/\/your_server_ip<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Install PHP and Needed\/demanded Extensions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Commands they must be install<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo a\u0086&#8217; Run as manager<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">appropriate\/smart install a\u0086&#8217; Install packages<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php a\u0086&#8217; Main PHP package<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php-cli a\u0086&#8217; PHP for command line<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php-fpm a\u0086&#8217; FastCGI Process Manager (used with Nginx)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php-mysql a\u0086&#8217; Connect PHP with MySQL (computer file full of information)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php-xml a\u0086&#8217; Work with XML files<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php-mbstring a\u0086&#8217; Handle multi-byte strings (important for UTF-8)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php-curl a\u0086&#8217; Connect to external websites\/APIs<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php-zip a\u0086&#8217; Work with ZIP files<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php-bcmath a\u0086&#8217; High-(high) quality math operations<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php-gd a\u0086&#8217; Image processing support<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check PHP version:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php -v<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Download and Install Composer<br>curl -sS https:\/\/getcomposer.org\/installer | php<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">curl a\u0086&#8217; Tool to download files from internet<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">-sS a\u0086&#8217; Silent mode but show errors<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">https:\/\/getcomposer.org\/installer<br>a\u0086&#8217; Official Composer installer link<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">| php a\u0086&#8217; Run the downloaded file using PHP<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This command downloads Composer and creates a file named:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">composer.phar<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Move Composer to Worldwide Location<br>mv composer.phar \/usr\/local\/bin\/composer<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">mv a\u0086&#8217; Move file<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">composer.phar a\u0086&#8217; The downloaded Composer file<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/usr\/local\/bin\/composer a\u0086&#8217; System folder where worldwide commands are stored<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This makes Composer available everywhere in the system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After this, you can simply type:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">composer<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">from any folder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Simple Version (Easy Words)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step 1: Download Composer<br>Step 2: Move it to system folder<br>Step 3: Now Composer works around the world<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check If Composer Installed Correctly<br>composer &#8211;version<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(check for truth\/prove true):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">composer &#8211;version<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Install MySQL<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">appropriate\/smart install mysql-server -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Secure MySQL:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">mysql_secure_installation<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create (computer file full of information):<br>MySQL (computer file full of information) Setup (Easy Explanation)<br>Create (computer file full of information)<br>CREATE DATABASE laravel_db;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">laravel_db<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create (computer file full of information) User<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Username: laravel_user<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Password: password<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You should change password to a strong password.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This gives full access of laravel_db to laravel_user.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Meaning:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Can read data<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Can insert data<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Can update data<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Can delete data<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apply Changes<br>FLUSH PRIVILEGES;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This refreshes MySQL so the new user and permissions start working immediately.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Simple Summary<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create (computer file full of information)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create user<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Give user permission to (computer file full of information)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Refresh MySQL<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Where To Run These Commands?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First login to MySQL:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo mysql -u root -p<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then paste the SQL commands.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Install Laravel on VPS<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Go to web directory:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cd \/var\/www<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Install Laravel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">composer create-project laravel\/laravel laravel-app<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set permissions:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">chown -R www-data:www-data \/var\/www\/laravel-app<br>chmod -R 775 \/var\/www\/laravel-app\/storage \/var\/www\/laravel-app\/bootstrap\/cache<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: Configure (surrounding conditions) File<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">cd \/var\/www\/laravel-app<br>cp .env.example .env<br>php worker (who makes beautiful things) key:generate<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edit .env:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">APPME=Laravel<br>APPV=production<br>APPL=http:\/\/your_domain.com<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DBTABASE=laravel_db<br>DBERNAME=laravel_user<br>DBSSWORD=password<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8: Configure Nginx for Laravel<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create config file:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nano \/etc\/nginx\/sites-available\/laravel<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Paste this:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">server {<br>listen 80;<br>server_name your_domain.com;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">root \/var\/www\/laravel-app\/public;<br>index index.php;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">location \/ {<br>try_files $uri $uri\/ \/index.php?$query_string;<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">location ~ .php$ {<br>include little pieces\/fastcgi-php.conf;<br>fastcgi_pass unix:\/var\/run\/php\/php8.2-fpm.sock;<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">location ~ \/.ht {<br>deny all;<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enable site:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ln -s \/etc\/nginx\/sites-available\/laravel \/etc\/nginx\/sites-enabled\/<br>nginx -t<br>systemctl reload nginx<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 9: Fix Storage &amp; Storage (of secret things or computer data) Permissions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">php worker (who makes beautiful things) storage:link<br>php worker (who makes beautiful things) config:clear<br>php worker (who makes beautiful things) storage (of secret things or computer data):clear<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 10: Access Laravel Application<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Open browser:<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">http:\/\/your_domain.com<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Laravel is now successfully installed on your VPS using Nginx.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Common Errors &amp; Fixes<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>502 Bad Gateway<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Check PHP-FPM version<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(check for truth\/prove true) fastcgi_pass socket<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Permission Denied<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">chown -R www-data:www-data \/var\/www\/laravel-app<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SEO FAQs: Install Laravel on VPS<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Is Nginx better than Apache for Laravel?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Nginx is faster, uses fewer useful things\/valuable supplies, and is ideal for Laravel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Which PHP version is best for Laravel in 2026?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8.2 or PHP 8.3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Can I install Laravel on VPS without a domain?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, using server IP.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Thoughts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you want high performance Laravel hosting, learning how to install Laravel on VPS using Nginx is extremely important. This setup is perfect for production (surrounding conditions), SaaS apps, and business\/project projects.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><br>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deploying Laravel 11 on an Ubuntu VPS with Nginx and HTTPS: A Practical 2026 Walkthrough Are you ready for take [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1217,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"normal-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[9],"tags":[463,297,466,302,467,300,299,303,301,298,469,465,464,468],"class_list":["post-1014","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-deploy-laravel-on-vps","tag-install-laravel-on-vps","tag-laravel-11","tag-laravel-11-vps","tag-laravel-deployment","tag-laravel-deployment-vps","tag-laravel-nginx-vps","tag-laravel-php-8-3","tag-laravel-server-setup","tag-laravel-vps-installation","tag-lets-encrypt-ssl","tag-mariadb-setup","tag-nginx-server","tag-ubuntu-vps"],"uagb_featured_image_src":{"full":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide.png",1536,718,false],"thumbnail":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide-150x150.png",150,150,true],"medium":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide-300x140.png",300,140,true],"medium_large":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide-768x359.png",768,359,true],"large":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide-1024x479.png",1024,479,true],"1536x1536":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide.png",1536,718,false],"2048x2048":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide.png",1536,718,false],"web-stories-poster-portrait":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide-640x718.png",640,718,true],"web-stories-publisher-logo":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide-96x96.png",96,96,true],"web-stories-thumbnail":["https:\/\/cyphersol.com\/blogs\/wp-content\/uploads\/2026\/01\/Deploy-Laravel-11-on-Ubuntu-VPS-with-Nginx-HTTPS-2026-Practical-Guide-150x70.png",150,70,true]},"uagb_author_info":{"display_name":"csadmin","author_link":"https:\/\/cyphersol.com\/blogs\/author\/csadmin\/"},"uagb_comment_info":0,"uagb_excerpt":"Deploying Laravel 11 on an Ubuntu VPS with Nginx and HTTPS: A Practical 2026 Walkthrough Are you ready for take [&hellip;]","_links":{"self":[{"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/posts\/1014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/comments?post=1014"}],"version-history":[{"count":5,"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/posts\/1014\/revisions"}],"predecessor-version":[{"id":1221,"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/posts\/1014\/revisions\/1221"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/media\/1217"}],"wp:attachment":[{"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/media?parent=1014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/categories?post=1014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyphersol.com\/blogs\/wp-json\/wp\/v2\/tags?post=1014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}