キーテイクアウト
Phalconはサードパーティの拡張機能であるため、PHPにバンドルされていません。 Phalconには、次のコンポーネントが必要です
wget -qO- https://toolbelt.heroku.com/install.sh | 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
BuildPackドキュメントを通じて、これらの3つのステップなどについて詳細を確認できます。
始めるために、このコードをGitHubでフォークします。リポジトリの[フォーク]ボタンをクリックします。プロジェクトに取り組むことができるようにするには、地元のマシンにクローンする必要があります。
次のコードを実行します:
wget -qO- https://toolbelt.heroku.com/install.sh | sh
このファイルはPhalconをインストールしますが、Herokuを実行するように指示する必要があります。そのためには、ビン/コンパイルファイルを編集し、そこのどこかに次の行を追加する必要があります。
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
新しいbuildpackを押し上げることができます:
<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>
Heroku
git clone https://github.com/duythien/heroku-buildpack-php.git buildpack-php cd buildpack-php
アプリのディレクトリを作成して変更します:
#!/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アプリケーションを作成するには、CLIの作成コマンドを使用してください。
[...] source $BP_DIR/bin/phalcon [...]
これにより、Herokuのアプリケーションが作成され、コードを待っているアプリケーションが作成され、Local CodeBaseにGitリモートを添付します。これでアプリケーションを展開する準備ができましたが、まだコードはありません。次のセクションに従って、アプリケーションにコンテンツを追加してください。
composer.jsonファイルは次のようにするように作る必要があります:[....] extension=phalcon.so ; Local Variables: ; tab-width: 4 ; End:
HerokuにMcRypt、Mbstringなどの拡張機能を自動的にインストールします。 mongodb、memcachedなどが必要な場合は、ファイルをさらに変更します。
git add -A git commit -m "edit php.ini and create phalcon file" git push origin master
Herokuは、対応するPHP拡張機能を有効にし、サポート/ビルド/拡張機能/No-Debug-non-zts-20121212フォルダーに入れます。次に、次のコンテンツを使用してtest.phpファイルを作成します
mkdir phalcon-dev cd phalcon-dev
最初のコマンドは、buildpack_url config var。数分後、結果は次のとおりです
touch composer<span>.json</span>
git init git add -A git commit -m" first commit"
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
今では、Webルートを指定しているトリッキーな部分が登場します。 Webルートを指定するには、もう少し作業と背景情報が必要です。 Phalcon Webサイトアプリケーションのgitツリーのルートは/App/Phalcon-Website/publicです。 Herokuの場合、デフォルトでは、WebルートはGit-Treeのルートです。そのディレクトリは、 /アプリに内部マッピングされています。これを変更するには、Heroku App Web-Nodeが起動するたびにSH-Scriptを起動するいわゆるProcfileを作成する必要があります。次に、そのスクリプトはサーバー構成を変更し、Webルートを/app/phalcon-website/publicに設定する独自の構成を含みます。次のコンテンツを含むprocfileファイルを作成します(Apacheを使用している場合):
wget -qO- https://toolbelt.heroku.com/install.sh | sh
Phalcon Webサイトをレポフォルダーにクローン化し、それが完了したら、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
結論
HerokuにカスタムPHP拡張機能をインストールするには、HerokuにカスタムPHP拡張機能をインストールするには、いくつかのステップが含まれます。まず、プロジェクトルートに「composer.json」という名前のファイルを作成する必要があります。このファイルには、インストールするPHP拡張機能が含まれます。たとえば、「GD」拡張機能をインストールする場合、「composer.json」ファイルは次のようになります。 "*"
}}
HerokuにPHP拡張機能をインストールしようとするときにエラーが発生した理由がいくつかあります。一般的な理由の1つは、インストールしようとしている拡張機能が、使用しているPHPバージョンと互換性がないことです。端末で「PHP -V」コマンドを実行して、PHPバージョンを確認できます。拡張機能がPHPバージョンと互換性がない場合は、PHPバージョンを更新するか、PHPバージョンと互換性のある拡張機能のバージョンを見つける必要があります。拡張機能はPECLリポジトリでは利用できません。 HerokuはPECLリポジトリを使用してPHP拡張機能をインストールします。拡張機能がPECLリポジトリで使用できない場合は、Herokuにインストールできません。 Herokuの.iniファイル。これを行うには、プロジェクトルートに「.user.ini」ファイルを作成する必要があります。このファイルには、カスタムPHP設定が含まれます。たとえば、最大ファイルのアップロードサイズを増やす場合、 '.user.ini'ファイルは次のようになります。 '.user.ini'ファイルでは、gitリポジトリにコミットし、変更をherokuにプッシュする必要があります。 Herokuは、「.user.ini」ファイルで指定された設定を自動的に適用します。まず、「composer.json」ファイルで新しいPHPバージョンを指定する必要があります。たとえば、PHP 7.4を更新する場合、「composer.json」ファイルは次のようになります。
}
}
はい、カスタムビルドパックを使用してHerokuにPHP拡張機能をインストールできます。 BuildPackは、変更をプラットフォームにプッシュするときにHerokuが実行するスクリプトです。アプリケーションの環境を設定し、その依存関係をインストールする責任があります。
カスタムビルドパックを使用するには、「app.json」ファイルまたはherokuダッシュボードで指定する必要があります。たとえば、「heroku/php」buildpackを使用する場合、「app.json」ファイルは次のようになります。 "url": "heroku/php"
}
]
}
buildpackを指定した後、変更をプッシュすることができますヘロク。 Herokuは、BuildPackを自動的に実行し、指定されたPHP拡張機能をインストールします。 、しかし、使用できるいくつかの戦略があります。まず、エラーメッセージについてHerokuログを確認できます。端末で「Herokuログ」コマンドを実行してログにアクセスできます。ログは、問題の原因についての手がかりを与えることができます。
次に、「Heroku Run」コマンドを使用して、Herokuアプリでコマンドを直接実行できます。たとえば、「PHP -M」コマンドを実行して、インストールされているすべてのPHP拡張機能をリストできます。これにより、特定の拡張子がインストールされているかどうかを確認するのに役立ちます。
最後に、「Heroku Config」コマンドを使用してHerokuアプリの構成を確認できます。これにより、カスタムPHP.ini設定が適用されているかどうかを確認するのに役立ちます。 HerokuのPECLリポジトリで利用できないPHP拡張機能。 HerokuはPECLリポジトリを使用してPHP拡張機能をインストールします。拡張機能がPECLリポジトリで使用できない場合は、Herokuにインストールすることはできません。
" ext-mbstring ":"*"
heroku run php -m
拡張機能がインストールされている場合、インストールされたPHP拡張機能のリストに表示されます。
はい、Herokuに複数のPHP拡張機能をインストールできます。これを行うには、「composer.json」ファイルにインストールするすべての拡張機能を指定する必要があります。たとえば、「GD」と「MbString」拡張機能をインストールする場合、「composer.json」ファイルは次のようになります。 -gd ":"*"、
}
}
更新後「Composer.json」ファイルでは、端末で「Composer Update」コマンドを実行する必要があります。これにより、「Composer.Lock」ファイルが更新されます。 gitリポジトリに「composer.json」と「composer.lock」ファイルの両方をコミットする必要があります。最後に、「Git Push Heroku Master」コマンドを使用して、Herokuに変更をプッシュできます。 Herokuは、「composer.json」ファイルで指定されたPHP拡張機能を自動的にインストールします。
'php.ini'ファイルを使用して、herokuにphp拡張機能をインストールできますか? 「Php.ini」ファイルを使用して、HerokuにPHP拡張機能をインストールします。 Herokuは、PHP拡張機能をインストールするための「PHP.ini」ファイルをサポートしていません。代わりに、「Composer.json」ファイルを使用して、インストールするPHP拡張機能を指定する必要があります。 Herokuは、変更をプラットフォームにプッシュすると、「Composer.json」ファイルで指定されたPHP拡張機能を自動的にインストールします。
以上がHerokuにカスタムPHP拡張機能をインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。