This topic describes how to deploy a ThinkPHP application to Function Compute. Function Compute provides a method different from traditional deployment methods. You can deploy a traditional ThinkPHP application to Function Compute and use the application for production without performing operations such as purchasing a server. The deployed ThinkPHP application can use the auto-scaling, pay-as-you-go, and O&M-free features of Function Compute.

Background information

ThinkPHP is an open source, fast, simple, lightweight, and object-oriented PHP development framework. ThinkPHP is designed to develop agile web applications and simplify enterprise application development. For more information, visit the ThinkPHP official website. Based on the guidelines of simplicity and practicality, ThinkPHP is characterized by excellent performance, simple in code, but also pays more attention to ease of use. You can use ThinkPHP free of charge because it is distributed under the Apache2 open source license. You can release applications that you develop in ThinkPHP as open source projects or commercial products.

Step 1: Prepare the environment

  1. Install Funcraft. For more information, see Install Funcraft.
    Note You do not need to install Docker but only Funcraft. The easiest way to install Funcraft is to download the executable binary files. You can run the fun --version command to check whether the installation is successful.
  2. Configure Funcraft. For more information, see Configure Funcraft.
  3. Install Composer. For more information, visit the Composer official website.

Step 2: Migrate an application

  1. Run the following command to create a ThinkPHP application. If a ThinkPHP application has been created, you can skip this step.
    composer create-project topthink/think tp                        
  2. Run the following command to open the application:
    cd <project-name>            
  3. Run the following command to run the on-premises application:
    php think run           
  4. Run the fun deploy -y command to deploy the application to Function Compute.

    Funcraft automatically begins to deploy the application.

    fun deploy -y
    The following code is returned:
    current folder is not a fun project.
    downloading nginx and php7.2 zip from https://gosspublic.alicdn.com/fun/frameworks/support/fun-support-custom-php-d73a6bd6.zip to /private/var/folders/wl/_2ngtj291wx1cj55xlnn290w0000gn/T/fun-support-custom-php-d73a6bd6.zip...
    extract nginx and php7.2 zip to custom runtime...
    Generating 
    ... ... ...
            trigger httpTrigger deploy success
        function tp deploy success
    service tp deploy success
    Detect 'DomainName:Auto' of custom domain 'Domain'
    Request a new temporary domain ...
    The assigned temporary domain is 15631862-XXX.test.functioncompute.com, expired at 2020-04-10 13:17:42, limited by 1000 per day.
    Waiting for custom domain Domain to be deployed...
    custom domain Domain deploy success         

    After the application is deployed, you can check the logs to find the temporary domain name that Function Compute generated. You can use this temporary domain name to access the deployed application.

    Note The temporary domain name is used only for demonstration and development purposes. It is valid for a limited period of time. To use an application in a production environment, you must bind the application to a domain name that has obtained an Internet Content Provider (ICP) filing from Alibaba Cloud. For more information, see Bind a custom domain name.