文字

如何在好雨云部署ThinkPHP框架程序

前言

好雨支持源码及各种框架的自动识别和自动部署,我们可以直接提交github的仓库地址,也可以将代码提交到好雨git代码仓库。

语言识别

平台会根据代码根目录下的index.php或者composer.json文件,将代码自动识别为php语言。

代码构建

好雨会根据composer.json的配置进行依赖的下载构建,如下面我们给出的示例,我们推荐您使用php5.6以上的版本可以更好的支持ThinkPHP5

composer.json文件示例:

{
    "name": "topthink/think",
    "description": "the new thinkphp framework",
    "type": "project",
    "keywords": [
        "framework",
        "thinkphp",
        "ORM"
    ],
    "homepage": "http://thinkphp.cn/",
    "license": "Apache-2.0",
    "authors": [
        {
            "name": "liu21st",
            "email": "liu21st@gmail.com"
        }
    ],
    "require": {
        "php": ">=5.6.0",
        "topthink/framework": "^5.0.4",
        "topthink/think-captcha": "^1.0.7",
        "topthink/think-testing": "^1.0"
    }, 
    "extra": {
        "think-path": "thinkphp"
    },
    "config": {
        "preferred-install": "dist"
    }
}

如果代码的根目录下有composer.lock文件,务必删掉,否则平台将从这里读取版本信息。好雨云在构建的过程中会自动生成这个文件。

存在多个composer.json问题

某项目大概结构如下:

index.php
composer.json
app/
vendor/
vendor/topthink/
vendor/topthink/think-captcha/
vendor/topthink/think-captcha/
vendor/topthink/think-captcha/composer.json

默认composer.json为主配置文件,不会去依赖加载次级目录下的vendor/topthink/think-captcha/composer.json文件。需在根目录下的主配置文件composer.json里添加

"config": {
        "preferred-install": "dist"
    },
# 添加如下:
"scripts":{
    "composer install": "vendor/topthink/think-captcha"
    }

web服务器的选择

您无需自已安装和配置web服务器,好雨会自动提供apachenginx服务器供您选择使用,因为ThinkPHP框架会使用.htaccess文件来自定义apache的跳转规则,所以您应该选择apache做为web服务器。
更多关于web服务器的内容请参见自定义Web Server

设置Document Root

按照ThinkPHP5默认,入口文件位于public/index.php,入口文件位置的设计是为了让应用部署更安全,public目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面。

很多用户的应用并不是将代码跟目录作为Web Server的主目录,例如ThinkPHP5框架要求Document rootpublic目录。这就需要我们将Document root设置到 跟目录中下的public二级目录中。

配置的方法是在代码的根目录下写一个Procfile文件,内容如下:

web: vendor/bin/heroku-php-apache2 public/

这段配置是告诉平台用apache来做为web服务器,并将public目录做为web根目录。

更多内容

如果您想了解更多内容,如php的调优,web服务器的配置,请参见好雨文档

上一篇: 下一篇:
  页面正在加载中