Deploy Laravel
This article will teach you how to deploy your Laravel project on Zeabur.
Step 1: Environment Configuration
You can test and build locally first to make sure your project can run normally. You must apply your PHP version in composer.json for Zeabur to deploy.
{
  "require": {
        "php": "8.1"
  }
}Step 2: Create a Project (Optional)
First, you need to initialize a Laravel project in your local development environment. We can follow the instructions in the Laravel official document to complete this step
After creation, initialize a Git repository for it and deploy it to your GitHub.
Step 3: Deploy Laravel Project
In your project, click the Deploy service or Add new service button, and select Deploy your source code.

Search for the Laravel Boot code repository you want to deploy, and click Import. Your Laravel Boot application will automatically start deploying.
Step 4: Add an APP_KEY for you Laravel project
Generating an application key or APP_KEY is one of the most important initial steps every time a Laravel developer creates or clones a Laravel application.
Switch to project variable setting page and enter your environment parameter.
You can generate a APP_KEY by enter this command under your Laravel project:
php artisan key:generate
Connect to MySQL Database
Typically, your Laravel project will need to connect to a MySQL database. You can connect to a MySQL database using the following steps.
- 
You need to first install the ext-pdo_mysqlextension on your Laravel project so that Zeabur can enable MySQL PHP support for you. Install this extension in your local environment using the following command:composer require ext-pdo_mysqlThen commit the new composer.jsonand lock files and push them to your GitHub repository.
- 
Create a MySQL service and then, in your local environment, run the following command to migrate your tables to Zeabur: export DATABASE_URL=mysql://<username>:<password>@<host>:<port>/<database> php artisan migrateThe <username>,<password>,<host>,<port>, and<database>mentioned above are your MySQL service details, which you can find in the “Instruction” section of the MySQL service page.
- 
On your Zeabur Laravel service page, set a DATABASE_URL environment variable with the following content: mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}The meanings of ${MYSQL_USER}and other variables can be found in the MySQL documentation’s environment variable section.
Automatic Optimization
When building a Laravel service, Zeabur runs these optimization commands 1:
php artisan optimize
php artisan config:cache
php artisan event:cache
php artisan route:cache
php artisan view:cacheYou can disable these automatic optimization commands by setting the PHP_OPTIMIZE=false variable. Then, use custom build commands to fine-tune your optimization process.
Vite / Laravel Mix Support
Zeabur automatically runs npm install and npm run build if a build script exists in your package.json. Since both Vite and Laravel Mix define a build script in package.json by default, Zeabur automatically compiles these assets when building a Laravel application.