钥匙要点
wget -qO- https://toolbelt.heroku.com/install.sh | sh根据官方的Heroku文档,BuildPacks提供了魔术和灵活性,使您在Heroku上运行您的应用程序如此简单。当您推动代码时,构建包是处理环境设置的组件,以便您的应用程序可以运行。 BuildPack可以安装依赖项,自定义软件,操纵资产,并执行运行应用程序所需的其他任何操作。 Heroku并不总是有构建包,它们是Cedar堆栈带来的新组件。
>您可以通过BuildPack文档获得有关这三个步骤以及更多信息的更多信息。
开始,我们在github上分配此代码。单击存储库中的“叉子”按钮。为了能够从事该项目,您需要将其克隆到本地机器。
运行以下代码:
wget -qO- https://toolbelt.heroku.com/install.sh | sh>在您的$ home/buildpack-php/bin目录中创建phalcon.sh文件,其中包含以下内容:
heroku login Enter your Heroku credentials. Email: fcopensuse@gmail.com Password: Could not find an existing public key. Would you like to generate one? [Yn] Generating new SSH public key. Uploading ssh public key /home/duythien/.ssh/id_rsa.pub此文件将安装phalcon,但是必须指示Heroku执行它。为此,您将必须编辑bin/compile文件,并在其中添加以下行:
此外,您需要将文本扩展添加= phalcon.so添加到“ conf/php/php/php.ini”的文件:
<span>mbstring </span><span>mcrypt </span><span>openssl </span><span>PDO </span><span>PDO/Mysql </span><span>PDO/Postgresql </span><span>PDO/Sqlite </span><span>PDO/Oracle</span>
现在,我们可以将新的构建包推到:
git clone https://github.com/duythien/heroku-buildpack-php.git buildpack-php cd buildpack-php
>在Heroku
上创建一个新应用程序#!/bin/bash # Build Path: /app/.heroku/php/ dep_url=git://github.com/phalcon/cphalcon.git phalcon_dir=cphalcon echo "-----> Building Phalcon..." ### Phalcon echo "[LOG] Downloading PhalconPHP" git clone $dep_url -q if [ ! -d "$phalcon_dir" ]; then echo "[ERROR] Failed to find phalconphp directory $phalcon_dir" exit fi cd $phalcon_dir/build # /app/php/bin/phpize # ./configure --enable-phalcon --with-php-config=$PHP_ROOT/bin/php-config # make # make install BUILD_DIR= ln -s $BUILD_DIR/.heroku /app/.heroku export PATH=/app/.heroku/php/bin:$PATH bash ./install cd echo "important extension phalcon into php.ini" echo "extension=phalcon.so" >> /app/.heroku/php/etc/php/php.ini>为您的应用创建一个目录,然后更改为:
>此外,您需要给Heroku指出此应用程序是PHP应用程序。为此,创建一个称为Composer.json的空文件。在UNIX系统上,您可以这样创建此文件:
>[...] source $BP_DIR/bin/phalcon [...]然后,执行以下操作以使我们的应用程序的存储库iNTAR INTAR INTAR INTAR INTICE:
>创建一个可以推动的新的Heroku应用程序,请使用CLI的CREATE命令:
[....] extension=phalcon.so ; Local Variables: ; tab-width: 4 ; End:
这将在Heroku Ready上创建应用程序,并等待我们的代码,并将GIT遥控器附加到我们本地代码库。您现在准备部署应用程序,但是尚无代码。请按照下一部分为您的应用程序添加一些内容。
git add -A git commit -m "edit php.ini and create phalcon file" git push origin master>
您的composer.json文件应该看起来像这样:
>mkdir phalcon-dev cd phalcon-dev
>它将在Heroku上自动安装McRypt,MbString等扩展名。如果您需要mongodb,memcached等,请进一步修改文件:
现在,Heroku将启用相应的PHP扩展名,并将它们放入支持/构建/扩展/no-debug-non-ZTS-20121212文件夹中。接下来,创建一个带有以下内容的test.php文件:
>touch composer<span>.json</span>
最后,让我们部署Phalcon安装:
git init git add -A git commit -m" first commit"第一个命令是指通过在buildpack_url config var中指定自定义buildpack来覆盖heroku默认的buildpack。几分钟后,结果如下:
heroku create phalcon-dev Creating phalcon-dev... done, stack is cedar http://phalcon-dev.herokuapp.com/ | git@heroku.com:phalcon-dev.git Git remote heroku added>这将我们的代码推向了Heroku,确定了它,并对它进行了构建过程,从而准备好进行部署。现在,我们的应用程序已在互联网上使用!要验证这一点,请立即打开:
<span>{ </span> <span>"require": { </span> <span>"php": "5.5.12" </span> <span>} </span><span>}</span>如果一切顺利,您应该在浏览器中看到以下屏幕:
>
<span>{ </span> <span>"require": { </span> <span>"php": "5.5.12", </span> <span>"ext-memcached": "*", </span> <span>"ext-mongo": "*" </span> <span>} </span><span>}</span>
现在是指定Web根的棘手部分。指定Web根需要更多的工作和背景信息。 Phalcon网站应用程序的根源是/app/phalcon-website/public。对于Heroku来说,默认情况下,Web根是Git-Tree的根。该目录在内部映射到 /应用程序。为了改变这一点,我们需要创建一个所谓的procfile,每次heroku应用网络节点启动时都会启动SH-Script。然后,该脚本修改了服务器配置,并包含您自己的配置,该配置将Web root设置为/App/phalcon-website/public。创建一个带有以下内容的procfile文件(如果您使用的是Apache):
>wget -qO- https://toolbelt.heroku.com/install.sh | sh
>克隆phalcon网站进入repo文件夹,完成后,git push命令将您本地主体上的所有提交发送到中央存储库。
heroku login Enter your Heroku credentials. Email: fcopensuse@gmail.com Password: Could not find an existing public key. Would you like to generate one? [Yn] Generating new SSH public key. Uploading ssh public key /home/duythien/.ssh/id_rsa.pub>访问该应用程序的公共URL,瞧,您在Heroku上有一个运行的phalconphp.com。
总结
经常询问有关在Heroku
上安装自定义PHP扩展的问题(常见问题解答)
>如何在Heroku上安装自定义PHP扩展?首先,您需要在项目root中创建一个名为“ composer.json”的文件。该文件将包含您要安装的PHP扩展名。例如,如果要安装'gd'扩展程序,则您的“ composer.json”文件应该看起来像: {}
}
创建'composer.json'文件后,您需要在终端中运行'Composer Update'命令。这将在您的项目root中创建一个“ composer.lock”文件。您需要将“ composer.json”和“ composer.lock”文件提交给您的git存储库。最后,您可以使用“ Git Push Heroku Master”命令将更改推向Heroku。 Heroku将自动安装您的“ composer.json”文件中指定的PHP扩展。
我可以在Heroku上使用自定义的php.ini文件吗? .ini在Heroku上归档。为此,您需要在项目根部创建一个“ .user.ini”文件。此文件将包含您的自定义PHP设置。例如,如果要增加最大文件上传大小,则您的'.user.ini'文件应该看起来像这样:
如何在Heroku上更新我的php版本?
>在Heroku上更新您的PHP版本涉及几个步骤。首先,您需要在“ Composer.json”文件中指定新的PHP版本。例如,如果要更新到php 7.4,则您的“ composer.json”文件应该看起来像:
{
} 要使用自定义构建包,您需要在“ app.json”文件或Heroku仪表板中指定它。例如,如果要使用“ heroku/php'buildpack,则您的'app.json'文件应该看起来像这样: >在Heroku上安装PHP扩展时,我如何故障排除问题? ,但是您可以使用一些策略。首先,您可以检查Heroku日志中是否有任何错误消息。您可以通过在终端中运行“ Heroku Logs”命令来访问日志。日志可以为您提供有关导致问题的线索的线索。 >我如何验证是否在Heroku上安装了PHP扩展?您的Heroku应用程序上的'php -m'命令。此命令列出了所有已安装的PHP扩展名。您可以在终端中使用“ Heroku Run”命令来运行此命令。例如,您可以运行以下命令以列出所有已安装的PHP扩展名: {
更新'composer.json'文件后,您需要在终端中运行'Composer Update'命令。这将更新“ composer.lock”文件。您需要将“ composer.json”和“ composer.lock”文件提交给您的git存储库。最后,您可以使用“ Git Push Heroku Master”命令将更改推向Heroku。 Heroku将自动更新您的php版本。>我可以使用自定义的构建包在Heroku上安装PHP扩展吗? BuildPack是Heroku在将更改推向平台时运行的脚本。它负责设置应用程序的环境并安装其依赖项。
{
{
“ buildpacks”:[
{
{
{
{ “ url”:“ heroku/php”
}
>]
}
} 在指定buildpack之后,您可以推动更改到埃罗子。 Heroku将自动运行BuildPack并安装其中指定的PHP扩展名。
>第二,您可以使用“ Heroku Run”命令直接在Heroku应用程序上运行命令。例如,您可以运行“ PHP -M”命令以列出所有已安装的PHP扩展名。这可以帮助您验证是否已安装了特定的扩展名。
>最后,您可以使用“ Heroku Config”命令来检查Heroku应用程序的配置。这可以帮助您验证您的自定义php.ini设置是否已应用。>我可以安装Heroku上的PECL存储库中不可用的PHP扩展名吗? Heroku的PECL存储库中无法使用的PHP扩展。 Heroku使用PECL存储库来安装PHP扩展。如果扩展名在PECL存储库中不可用,则不能在Heroku上安装。自定义构建包可以包含脚本以编译和安装来自源的PHP扩展。这需要对PHP和Unix shell脚本的高级知识。
HEROKU RUN PHP -M 如果安装了扩展名,则应显示在已安装的PHP扩展名列表中。
>我可以在Heroku上安装多个PHP扩展吗?为此,您需要指定要在“ composer.json”文件中安装的所有扩展名。例如,如果要安装'gd'和'mbString'扩展名,则您的'composer.json'文件应该看起来像这样:
{
-gd“:”*“,
” ext-mbstring“:”*“
}
}
}
更新后“ Composer.json”文件,您需要在终端中运行“ Composer Update”命令。这将更新“ composer.lock”文件。您需要将“ composer.json”和“ composer.lock”文件提交给您的git存储库。最后,您可以使用“ Git Push Heroku Master”命令将更改推向Heroku。 Heroku将自动安装您的'composer.json'文件中指定的PHP扩展名。>
以上是如何在Heroku上安装自定义PHP扩展的详细内容。更多信息请关注PHP中文网其他相关文章!