Skip to main content
PHP Blog

Back to all posts

How to Deploy A Yii 2 Application to A Production Server?

Published on
7 min read

Table of Contents

Show more
How to Deploy A Yii 2 Application to A Production Server? image

To deploy a Yii 2 application to a production server, you need to follow the steps mentioned below:

  1. Prepare the server: Ensure that the server meets the requirements for hosting a Yii 2 application. This includes having PHP installed, necessary extensions enabled, and the required web server (such as Apache or Nginx) properly configured.
  2. Set up the server environment: Create a new directory on the server where you want to host the application. This directory will serve as the project's root directory.
  3. Transfer application files: Upload all the files from your local development environment to the server's project directory using FTP, SCP, or any other file transfer method.
  4. Configure the application: Open the project's root directory on the server and locate the environments folder. Inside, you'll find different sub-folders, such as dev, prod, etc. Copy the example configuration files from dev to prod and modify them according to your production environment.
  5. Install dependencies: Access the server via SSH and navigate to the project's root directory. Run the following command to install the application dependencies using Composer: composer install --no-dev --optimize-autoloader
  6. Set up the database: Configure the database connection by editing the db component in the main.php configuration file located in the config directory. Provide the correct credentials and database details.
  7. Apply migrations: Run the necessary database migrations to set up the required schema for the application. Execute the following command from the project's root directory: php yii migrate/up --interactive=0
  8. Configure the web server: Set up the web server to point to the project's web directory as the document root. This allows the web server to serve the application.
  9. Set file permissions: Make sure that the web server has enough permissions to read and write certain directories like runtime and assets. Adjust the permissions accordingly to ensure the application functions properly.
  10. Test the deployment: Access the application's URL through a web browser to verify if it is working as expected. Make sure to resolve any errors or issues encountered during this testing phase.

That's it! Your Yii 2 application should now be deployed and running on the production server successfully.

How to enable and configure cron jobs in a Yii 2 application?

To enable and configure cron jobs in a Yii 2 application, follow these steps:

  1. Create a new console command class: Create a new class that extends the yii\console\Controller class. This class will contain the code that needs to be executed by the cron job.

namespace app\commands;

use yii\console\Controller;

class CronController extends Controller { public function actionIndex() { // the code to be executed by the cron job } }

  1. Configure the console application: Open the console/config/main.php file and configure the console application component by adding the following code:

'remoteCron' => [ 'class' => 'yii\console\Application', 'controllerMap' => [ 'cron' => 'app\commands\CronController', ], ],

  1. Define cron job schedule: Open the config/console.php file to define the cron job schedule using the cron syntax. Add the following lines of code inside the params array:

'cron' => [ 'jobName' => [ 'class' => 'app\commands\CronController/actionIndex', 'schedule' => '* * * * *', // the cron schedule (e.g., every minute) ], ],

  1. Create a script to run cron jobs: Create a new file called cron.php in the project's root directory. Add the following code to the file: