- Meet Laravel
- Your First Laravel Project
- Next Steps
Meet Laravel
Add even more value to cPanel & WHM, the hosting platform of choice, using a wide variety of third-party applications in the cPanel App Catalog. To get started, you only need to install Docker Desktop. Laravel Sail is a light-weight command-line interface for interacting with Laravel's default Docker configuration. Sail provides a great starting point for building a Laravel application using PHP, MySQL, and Redis without requiring prior Docker experience. Already a Docker expert? I'm not sure if this is relevant but I suspect the php versions are the problem, in cpanel I have set the php version of this domain to PHP 7.1 (ea-php71) and these errors still persist, however the PHP System Default is set as 5.6 (I don't know how to change it).
Laravel is a web application framework with expressive, elegant syntax. A web framework provides a structure and starting point for creating your application, allowing you to focus on creating something amazing while we sweat the details.
Laravel strives to provide an amazing developer experience, while providing powerful features such as thorough dependency injection, an expressive database abstraction layer, queues and scheduled jobs, unit and integration testing, and more.
Whether you are new to PHP or web frameworks or have years of experience, Laravel is a framework that can grow with you. We'll help you take your first steps as a web developer or give you a boost as you take your expertise to the next level. We can't wait to see what you build.
Why Laravel?
Install Laravel App Cpanel Free
There are a variety of tools and frameworks available to you when building a web application. However, we believe Laravel is the best choice for building modern, full-stack web applications.
A Progressive Framework
We like to call Laravel a 'progressive' framework. By that, we mean that Laravel grows with you. If you're just taking your first steps into web development, Laravel's vast library of documentation, guides, and video tutorials will help you learn the ropes without becoming overwhelmed.
If you're a senior developer, Laravel gives you robust tools for dependency injection, unit testing, queues, real-time events, and more. Laravel is fine-tuned for building professional web applications and ready to handle enterprise work loads.
A Scalable Framework
Laravel is incredibly scalable. Thanks to the scaling-friendly nature of PHP and Laravel's built-in support for fast, distributed cache systems like Redis, horizontal scaling with Laravel is a breeze. In fact, Laravel applications have been easily scaled to handle hundreds of millions of requests per month.
Need extreme scaling? Platforms like Laravel Vapor allow you to run your Laravel application at nearly limitless scale on AWS's latest serverless technology.
A Community Framework
Laravel combines the best packages in the PHP ecosystem to offer the most robust and developer friendly framework available. In addition, thousands of talented developers from around the world have contributed to the framework. Who knows, maybe you'll even become a Laravel contributor.
Your First Laravel Project
We want it to be as easy as possible to get started with Laravel. There are a variety of options for developing and running a Laravel project on your own computer. While you may wish to explore these options at a later time, Laravel provides Sail, a built-in solution for running your Laravel project using Docker.
Docker is a tool for running applications and services in small, light-weight 'containers' which do not interfere with your local computer's installed software or configuration. This means you don't have to worry about configuring or setting up complicated development tools such as web servers and databases on your personal computer. To get started, you only need to install Docker Desktop.
Laravel Sail is a light-weight command-line interface for interacting with Laravel's default Docker configuration. Sail provides a great starting point for building a Laravel application using PHP, MySQL, and Redis without requiring prior Docker experience.
{tip} Already a Docker expert? Don't worry! Everything about Sail can be customized using the docker-compose.yml
file included with Laravel.
Getting Started On macOS
If you're developing on a Mac and Docker Desktop is already installed, you can use a simple terminal command to create a new Laravel project. For example, to create a new Laravel application in a directory named 'example-app', you may run the following command in your terminal:
Of course, you can change 'example-app' in this URL to anything you like. The Laravel application's directory will be created within the directory you execute the command from.
After the project has been created, you can navigate to the application directory and start Laravel Sail. Laravel Sail provides a simple command-line interface for interacting with Laravel's default Docker configuration:
The first time you run the Sail up
command, Sail's application containers will be built on your machine. This could take several minutes. Don't worry, subsequent attempts to start Sail will be much faster.
Once the application's Docker containers have been started, you can access the application in your web browser at: http://localhost.
{tip} To continue learning more about Laravel Sail, review its complete documentation.
Getting Started On Windows
Before we create a new Laravel application on your Windows machine, make sure to install Docker Desktop. Next, you should ensure that Windows Subsystem for Linux 2 (WSL2) is installed and enabled. WSL allows you to run Linux binary executables natively on Windows 10. Information on how to install and enable WSL2 can be found within Microsoft's developer environment documentation.
{tip} After installing and enabling WSL2, you should ensure that Docker Desktop is configured to use the WSL2 backend.
Install Laravel On Cpanel
Next, you are ready to create your first Laravel project. Launch Windows Terminal and begin a new terminal session for your WSL2 Linux operating system. Next, you can use a simple terminal command to create a new Laravel project. For example, to create a new Laravel application in a directory named 'example-app', you may run the following command in your terminal:
Of course, you can change 'example-app' in this URL to anything you like. The Laravel application's directory will be created within the directory you execute the command from.
After the project has been created, you can navigate to the application directory and start Laravel Sail. Laravel Sail provides a simple command-line interface for interacting with Laravel's default Docker configuration:
The first time you run the Sail up
command, Sail's application containers will be built on your machine. This could take several minutes. Don't worry, subsequent attempts to start Sail will be much faster.
Once the application's Docker containers have been started, you can access the application in your web browser at: http://localhost.
{tip} To continue learning more about Laravel Sail, review its complete documentation.
Developing Within WSL2
Of course, you will need to be able to modify the Laravel application files that were created within your WSL2 installation. To accomplish this, we recommend using Microsoft's Visual Studio Code editor and their first-party extension for Remote Development.
Once these tools are installed, you may open any Laravel project by executing the code .
command from your application's root directory using Windows Terminal.
Getting Started On Linux
If you're developing on Linux and Docker is already installed, you can use a simple terminal command to create a new Laravel project. For example, to create a new Laravel application in a directory named 'example-app', you may run the following command in your terminal:
Of course, you can change 'example-app' in this URL to anything you like. The Laravel application's directory will be created within the directory you execute the command from.
After the project has been created, you can navigate to the application directory and start Laravel Sail. Laravel Sail provides a simple command-line interface for interacting with Laravel's default Docker configuration:
The first time you run the Sail up
command, Sail's application containers will be built on your machine. This could take several minutes. Don't worry, subsequent attempts to start Sail will be much faster.
Once the application's Docker containers have been started, you can access the application in your web browser at: http://localhost.
{tip} To continue learning more about Laravel Sail, review its complete documentation.
Installation Via Composer
If your computer already has PHP and Composer installed, you may create a new Laravel project by using Composer directly. After the application has been created, you may start Laravel's local development server using the Artisan CLI's serve
command:
The Laravel Installer
Or, you may install the Laravel Installer as a global Composer dependency:
Make sure to place Composer's system-wide vendor bin directory in your $PATH
so the laravel
executable can be located by your system. This directory exists in different locations based on your operating system; however, some common locations include:
- macOS:
$HOME/.composer/vendor/bin
- Windows:
%USERPROFILE%AppDataRoamingComposervendorbin
- GNU / Linux Distributions:
$HOME/.config/composer/vendor/bin
or$HOME/.composer/vendor/bin
Initial Configuration
All of the configuration files for the Laravel framework are stored in the config
directory. Each option is documented, so feel free to look through the files and get familiar with the options available to you.
Laravel needs almost no additional configuration out of the box. You are free to get started developing! However, you may wish to review the config/app.php
file and its documentation. It contains several options such as timezone
and locale
that you may wish to change according to your application.
Environment Based Configuration
Since many of Laravel's configuration option values may vary depending on whether your application is running on your local computer or on a production web server, many important configuration values are defined using the .env
file that exists at the root of your application.
Your .env
file should not be committed to your application's source control, since each developer / server using your application could require a different environment configuration. Furthermore, this would be a security risk in the event an intruder gains access to your source control repository, since any sensitive credentials would get exposed.
{tip} For more information about the .env
file and environment based configuration, check out the full configuration documentation.
Next Steps
Now that you have created your Laravel project, you may be wondering what to learn next. First, we strongly recommend becoming familiar with how Laravel works by reading the following documentation:
How you want to use Laravel will also dictate the next steps on your journey. There are a variety of ways to use Laravel, and we'll explore two primary use cases for the framework below.
Laravel The Full Stack Framework
Laravel may serve as a full stack framework. By 'full stack' framework we mean that you are going to use Laravel to route requests to your application and render your frontend via Blade templates or using a single-page application hybrid technology like Inertia.js. This is the most common way to use the Laravel framework.
If this is how you plan to use Laravel, you may want to check out our documentation on routing, views, or the Eloquent ORM. In addition, you might be interested in learning about community packages like Livewire and Inertia.js. These packages allow you to use Laravel as a full-stack framework while enjoying many of the UI benefits provided by single-page JavaScript applications.
If you are using Laravel as a full stack framework, we also strongly encourage you to learn how to compile your application's CSS and JavaScript using Laravel Mix.
{tip} If you want to get a head start building your application, check out one of our official application starter kits.
Install Laravel App Cpanel Download
Laravel The API Backend
Laravel may also serve as an API backend to a JavaScript single-page application or mobile application. For example, you might use Laravel as an API backend for your Next.js application. In this context, you may use Laravel to provide authentication and data storage / retrieval for your application, while also taking advantage of Laravel's powerful services such as queues, emails, notifications, and more.
If this is how you plan to use Laravel, you may want to check out our documentation on routing, Laravel Sanctum, and the Eloquent ORM.
- Server Configuration
- Optimization
Introduction
When you're ready to deploy your Laravel application to production, there are some important things you can do to make sure your application is running as efficiently as possible. In this document, we'll cover some great starting points for making sure your Laravel application is deployed properly.
Server Requirements
The Laravel framework has a few system requirements. You should ensure that your web server has the following minimum PHP version and extensions:
- PHP >= 7.3
- BCMath PHP Extension
- Ctype PHP Extension
- Fileinfo PHP Extension
- JSON PHP Extension
- Mbstring PHP Extension
- OpenSSL PHP Extension
- PDO PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
Server Configuration
Nginx
If you are deploying your application to a server that is running Nginx, you may use the following configuration file as a starting point for configuring your web server. Most likely, this file will need to be customized depending on your server's configuration. If you would like assistance in managing your server, consider using a first-party Laravel server management and deployment service such as Laravel Forge.
Please ensure, like the configuration below, your web server directs all requests to your application's public/index.php
file. You should never attempt to move the index.php
file to your project's root, as serving the application from the project root will expose many sensitive configuration files to the public Internet:
Optimization
Autoloader Optimization
When deploying to production, make sure that you are optimizing Composer's class autoloader map so Composer can quickly find the proper file to load for a given class:
{tip} In addition to optimizing the autoloader, you should always be sure to include a composer.lock
file in your project's source control repository. Your project's dependencies can be installed much faster when a composer.lock
file is present.
Optimizing Configuration Loading
When deploying your application to production, you should make sure that you run the config:cache
Artisan command during your deployment process:
This command will combine all of Laravel's configuration files into a single, cached file, which greatly reduces the number of trips the framework must make to the filesystem when loading your configuration values.
Install Laravel App Cpanel Login
{note} If you execute the config:cache
command during your deployment process, you should be sure that you are only calling the env
function from within your configuration files. Once the configuration has been cached, the .env
file will not be loaded and all calls to the env
function for .env
variables will return null
.
Optimizing Route Loading
If you are building a large application with many routes, you should make sure that you are running the route:cache
Artisan command during your deployment process:
This command reduces all of your route registrations into a single method call within a cached file, improving the performance of route registration when registering hundreds of routes.
Optimizing View Loading
When deploying your application to production, you should make sure that you run the view:cache
Artisan command during your deployment process:
This command precompiles all your Blade views so they are not compiled on demand, improving the performance of each request that returns a view.
Debug Mode
The debug option in your config/app.php configuration file determines how much information about an error is actually displayed to the user. By default, this option is set to respect the value of the APP_DEBUG environment variable, which is stored in your .env file.
In your production environment, this value should always be false
. If the APP_DEBUG
variable is set to true
in production, you risk exposing sensitive configuration values to your application's end users.
Deploying With Forge / Vapor
Laravel Forge
If you aren't quite ready to manage your own server configuration or aren't comfortable configuring all of the various services needed to run a robust Laravel application, Laravel Forge is a wonderful alternative.
Install Laravel App Cpanel Online
Laravel Forge can create servers on various infrastructure providers such as DigitalOcean, Linode, AWS, and more. In addition, Forge installs and manages all of the tools needed to build robust Laravel applications, such as Nginx, MySQL, Redis, Memcached, Beanstalk, and more.
Laravel Vapor
If you would like a totally serverless, auto-scaling deployment platform tuned for Laravel, check out Laravel Vapor. Laravel Vapor is a serverless deployment platform for Laravel, powered by AWS. Launch your Laravel infrastructure on Vapor and fall in love with the scalable simplicity of serverless. Laravel Vapor is fine-tuned by Laravel's creators to work seamlessly with the framework so you can keep writing your Laravel applications exactly like you're used to.