The following is a list of plugins I have installed to help with Laravel Development, I will add to them as I go, I will also remove the ones i don’t think were worth it from the list as well
Plugin
What for
Publisher
PHP IntelliSense
Advanced Autocompletion and Refactoring support for PHP
Felix Becker
PHP Namespace Resolver
Import and expand php namespaces
Mehedi Hassan
laravel-blade
Laravel blade syntax highlighting
Christian Howe
Laravel Blade Snippets
Laravel blade snippets and syntax highlight support
This part of the tutorial is a hands on setup to have Laravel working on nginx under Linux. this is not the only way to run Laravel, for all the options, see here
NOTE: Most if not all of the popular development tools are available for Linux and Windows, so If this setup is for development, you might want to install Debian Linux with the Gnome GUI so that you can install the development tools used in the next part of this tutorial, if you are going to be developing on a different machine or this is for production, then you shouldn’t.
STEP 1: Install Debian 11 (Bullseye) on a computer.
STEP 2: Install the basic Laravel environment with the following commands, Laravel 9 requires PHP 8, which at the time of writing is not available in Debian 11 repositories, so we will need to add the repositories from the guy who manages PHP for Debian anyway
The last line above should show you what version of composer you have just installed
Now, remember to never run composer as root, but rather as a regular user, from this point on I am assuming you are running the terminal as a regular user.
I understand that Debian puts the web root in /var/www/html, but i usually like to create a separate directory called /var/vhosts and put all my web projects in it
mkdir /var/vhosts
Now, we need to create a sample project for our learning and training experience
cd /var/vhosts
composer create-project laravel/laravel laraveltestapp
chmod -R 0777 /var/vhosts/laravelapp/storage
Next, We would need to setup nginx to serve this website (“Would like to” actually, because there are alternatives, but I’m keeping it simple), here is an almost standard template for nginx, modify the host name and project name to match your project and preferences.
NGINX vhost config file (In my case /etc/nginx/sites-available/laraveltestapp)
The following are things that are commonly used with Laravel. broken down by category
Environment tools and solutions
PHP composer (Mandatory)
Docker – Sail (Optional)
Relevant / Compatible server side software
Apache2 (2.4) (Web Server)
Nginx (Web Server)
PHP (PHP8.x for Laravel 9)
redis (Data structure store)
memcache (in-memory, distributed cache)
MeiliSearch (Search application)
MailHog (email-testing tool with a fake SMTP server)
Selinium (browser automation)
MySQL/Mariadb (Database engine, most common)
PostgreSQL (Database Engine, very powerful)
Development environments
Microsoft Visual Studio Code (Free): built-in support for JavaScript, TypeScript and Node.js, extensions include PHP
Sublime text (Not free, works but nags)
Apache beans (Free)
IntellijIDEA (Not free, one month trial)
PHPStorm (Same as IntellijIDEA without the other languages support, Not Free, one month trial)
Database Management
MAC: Sequel Pro and sequel ace
ALL: PHPMyAdmin, mysql workbench (Oracle),
sqlyog (Windows and Linux)
Other
Node.js
NPM (Installed with node.js): npm is a package manager for the JavaScript to work with front end stuff like node.js, react.js, bootstrap, tailwind CSS,