前の記事では、Jenkinsのインストールを行って、すべてを準備しました。この記事では、実際にプロジェクトを準備することで継続します。以前からジェンキンスのセットアップを準備している場合は、前の部分を通過する必要はありません。これを非常にうまくフォローできます。
キーテイクアウト- JenkinsでPHPプロジェクトを準備するには、PHPunitやPHP-Codesnifferなどのツールを利用できるようにすることをお勧めします。これは、Jenkinsサーバーにグローバルにパッケージをインストールするか、Composer.jsonファイルで依存関係を定義することで実現できます。
- JenkinsサーバーでANTを使用して、ソフトウェアビルドプロセスを自動化します。ターゲットは構成ファイルで定義され、ANTはこれらのターゲットに基づいてアクションを実行します。 build.xmlファイルは、Jenkinsサーバーでタスクを実行するためにANTのプロジェクトに追加されます。 build.xmlファイルには、特定のプロジェクトに合わせて変更が必要になる場合があります。これには、phpunitのようなツールがどこにあるかを定義し、プロジェクトに正しく一致するようにいくつかのコマンドをクリーンアップすることが含まれます。 すべてのQAツールが予想どおりに実行されるようにするために、
- 新しいターゲットを作成する必要があります。これには、コンポーザーやバウアーによって規制されている依存関係など、ジェンキンスでプロジェクトを正しくセットアップするための要件を扱うことが含まれます。 プロジェクトを準備した後、ジェンキンスでプロジェクトを作成して構成する必要があります。手順には、Jenkins内にGitHubプラグインのインストール、新しいアイテムの作成、ソース管理の構成が含まれます。その後、プロジェクトのサイドメニューで「今すぐビルド」をクリックしてビルドを開始できます。
- 作曲家の準備
- 最初にプロジェクトを準備します。 Sebastian Bergmannが提供するプロジェクトを使用できますが、それはむしろ基本的なプロジェクトであり、Jenkinsで問題なく実行されます。この記事では、いくつかのハードルを克服する必要がある別のリポジトリを使用します。私たちは私たちの基礎としてジャンフのフォークを使用します。
- 何よりもまず、PHPunitやPHP-Codesnifferなどのツールが利用可能であることを確認する必要があります。これを2つの異なる方法で行うことができます。 Pearを介してJenkinsサーバーにパッケージをグローバルにインストールするか、Composer.jsonファイルの依存関係を定義します。後者の方法を使用することにしたので、これらのツールのバージョンを独自のローカルマシンとJenkinsで簡単に制御できます。そのため、次の行をComposer.jsonファイルに追加し、Composer Updateを実行することから始めます。
Ant
を準備しますJenkinsサーバーでは、ANTを使用します。したがって、ANTがサーバーにまだインストールされていない場合は、次のコマンドを実行してください。
"require-dev": { "squizlabs/php_codesniffer": "~1.5.*", "phpmd/phpmd": "~2.1.*", "sebastian/phpcpd": "~2.0.*", "pdepend/pdepend": "~2.0.*", "phploc/phploc": "~2.0.*", "phpunit/phpunit": "~4.3.*", "theseer/phpdox": "~0.7.*", },
Antは、ソフトウェアビルドプロセスを自動化するのに役立ちます。構成ファイルで、ターゲットと呼ばれるタスクを定義します。 ANTはこのファイルを読み取り、適切なアクションを実行します。依存関係を定義して、ANTがこれらのタスクを実行する順序を示すことができます。構成ファイルは、いわゆるbuild.xmlファイルです。これをプロジェクトに追加するので、AntはJenkinsサーバーでこれらのタスクを実行できます。ここで見つけることができるSebastian Bergmannが提供するテンプレートを使用します。これをプロジェクトのルートに追加します
アリを実行するには、コマンドラインでアリのビルドをキックオフできます。これは、ANTがビルドターゲットを実行することを意味します。パラメーターが指定されていない場合、ANTはデフォルトとして構成に示されているようにターゲットを実行します。この場合、これもビルドされます。ビルドターゲットを詳しく見てみましょう。
ターゲットは空ですが、他の多くのターゲットに依存します。最初に準備ターゲットを実行し、すべてのターゲットが実行されるまでLINTターゲットを続行します。 たとえば、phploc-ciターゲットを見てみましょう。
sudo apt-get install ant
このターゲットはかなり理解しやすいです。準備ターゲットに依存することに気付くでしょう。それはすでにビルドターゲットによって実行されていたため、再び実行されません。次に、ANTによって実行されるPHPLOCである実行可能ファイルを取得します。これを以前に作曲家にインストールしました。最後に、PHPLOC固有の引数が表示されます。 ANTは、このターゲット構成に基づいて次のコマンドライン入力を実行します。
<span><span><span><target> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></target></span></span></span>$ {toolsdir}および$ {bedistir}は2つの変数です。それらがどのように構成されているかによって、それらは全体的なコマンドライン出力に影響を与える可能性があります
build.xmlファイル全体を調べると、特定のツールの他の3つの個別の構成ファイルに依存していることがわかります。 build/phpmd.xml、build/phpdox.xml、build/phpunit.xml。これらの構成ファイルは、実際のツールによって要求されます。詳細については、それぞれのドキュメントをご覧ください。
それで、私たちは終わりましたか?残念ながら、まだ。 build.xmlファイルは非常に一般的であり、プロジェクトに完全に適していません。まず、phpunitのようなツールを見つけることができる場所を定義する必要があります。私たちの作曲家は、これらをプロジェクトのルートにあるBinディレクトリに自動的にインストールしました。 ToolsDirプロパティを正しい値に変更する必要があります。
"require-dev": { "squizlabs/php_codesniffer": "~1.5.*", "phpmd/phpmd": "~2.1.*", "sebastian/phpcpd": "~2.0.*", "pdepend/pdepend": "~2.0.*", "phploc/phploc": "~2.0.*", "phpunit/phpunit": "~4.3.*", "theseer/phpdox": "~0.7.*", },
いくつかのコマンドをクリーンアップすることもできます。現在のbuild.xmlファイルは、一方でSRCディレクトリがあり、一方でテストディレクトリがあることを定義しています。 Symfony2にはSRCディレクトリにテストが含まれているため、この例のようなテストディレクトリへのすべてのパスを削除できます。
sudo apt-get install ant
必須ではありませんが、プロジェクトを正しく一致させるために、すべてをできるだけきれいに保つことを好みます。 最後に、この記事を書いているときにbuild.xmlファイルに示されているPHPDoxの現在の構成は、私の場合の最新バージョンでは機能しません。以下のようにターゲットを変更したため、構成ファイルを正しく読み取ります。
新しいターゲットの作成すべてのQAツールが予想どおりに実行されるようにするために、すべてがセットアップされています。しかし、私たちのプロジェクトはもう少し複雑です。リポジトリを分析した場合、依存関係は作曲家とBowerによって規制されていることに気付くでしょう。 Symfonyプロジェクトであるため、デフォルトのパラメーター.ymlファイルも必要です。ジェンキンスでプロジェクトを正しくセットアップできるようにするには、これらの要件に対処する必要があります。
パラメーター.ymlファイルから始めましょう。パラメーターのデフォルトコンテンツを使用できます。Iml.Distなので、そのファイルをコピーするだけです。 CPコマンドを実行するコピーパラメーターという名前の新しいターゲットを作成することから始めます。<span><span><span><target> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></target></span></span></span>
次は作曲家とバウアーです。次のコマンドを実行して、これらをジェンキンスサーバーにグローバルにインストールすることにしました。
[ed:WindowsでホストされているVMでこれをすべて実行している場合、BowerphpはBowerよりもはるかに優れた選択肢になることに注意してください。次に、作曲家のターゲットを作成します。
<span><span><span><target> name<span>="phploc-ci"</span> depends<span>="prepare"</span> description<span>="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment."</span>></target></span> </span> <span><span><span><exec> executable<span>="${toolsdir}phploc"</span>></exec></span> </span> <span><span><span><arg> value<span>="--count-tests"</span>/></arg></span> </span> <span><span><span><arg> value<span>="--log-csv"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/build/logs/phploc.csv"</span>/></arg></span> </span> <span><span><span><arg> value<span>="--log-xml"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/build/logs/phploc.xml"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/src"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/tests"</span>/></arg></span> </span> <span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span></span></span></span></span></span>
Symfony_Envをテストするように設定することが重要です。Symfonyは、テストキャッシュディレクトリをクリアする必要があることを知っています。
bowerを続けましょう。phploc --count-tests --log-csv /build/logs/phploc.csv --log-xml /build/logs/phploc.xml /src /tests
最後にする必要があることは、これらのターゲットが実行されることを確認することです。したがって、ビルドターゲットを変更し、それらを実行する順に新しく作成された3つのターゲットを追加します。
git最後に行う必要があるのは、.gitignoreファイルを準備することです。ローカルマシンでANTターゲットを実行したい場合は、ビルドディレクトリにはリポジトリにコミットしたくないログファイルが充填されます。したがって、.gitignoreファイルに次の行を追加します。
<span><span><span><property> name<span>="toolsdir"</span> value<span>="bin/"</span> /></property></span></span></span>
おそらく、私たちが行ったすべての変更に少し混乱したでしょう。あなたの便利さのために、上記のすべての変更を伴うコミットへの直接的なリンクを次に示します。
ジェンキンスでプロジェクトを作成します
私たちのプロジェクトの準備ができました。ジェンキンスに戻って構成しましょう。これは、この記事で最も簡単な部分になります。<span><span><span><arg> path<span>="${basedir}/tests"</span>/></arg></span></span></span>
プロジェクトはGitHubにあるため、Jenkins内にGitHubプラグインをインストールすることをお勧めします。独自のGitサーバーを使用している場合は、通常のGitプラグインをインストールできます。プラグインのインストール方法が不明な場合は、前の記事を確認してください。
概要に戻るときは、左メニューで新しいアイテムをクリックする必要があります。アイテム名として、ジャンフに記入します。次に、既存のアイテムをコピーするオプションを選択し、プロジェクトとしてPHP-Templateを入力します。
このプロジェクトの構成ページにすぐに移動します。最初に、ビルドのチェックを外して、ビルドがSAVEで有効になるようにします。 GitHubプロジェクト入力フィールド内で、URLをGitHubプロジェクトに記入します。
私たちがしなければならない最後のことは、ソース管理を選択することです。私たちの場合、これはgitです。次に、リポジトリリンクに記入する必要があります。 HTTPSリンクを使用する場合、追加の資格情報を提供する必要はありません。どのブランチを構築するかを決定できますが、マスターブランチしか持っていないので、そのままにしておきます。
構成が完了しました。事前定義されたテンプレートを使用したため、とても簡単です。下にスクロールすると、テンプレートが設定したものが正確に表示されます。継続する前に構成を保存することを忘れないでくださいビルドを開始
これまでのすべての手順に従った場合、ビルドを開始できるようになりました。プロジェクトの左側のメニューで今すぐビルドをクリックして、ビルドを開始できます。左下のテーブルにビルドが表示されていることに気付くでしょう。
ビルド自体をクリックすると、この特定のビルドのオプションを備えた新しいサイドメニューが表示されます。コンソール出力をクリックして、何が起こっているのかを正確に確認してください。私の場合、最初のビルドは、いくつかのPHP拡張機能が欠落しているために失敗しました。
おそらく、ビルドが成功したときに青いボールの代わりに緑色のボールを期待していたでしょう。青いボールの代わりにグリーンボールを表示できるプラグインがあります。 結論
この記事では、ビルドを成功させるために取り組みました。私たちはプロジェクトを準備し、ジェンキンス内で仕事を作らなければなりませんでした。最後に、いくつかのライブラリをインストールするのを忘れていたので、最初の数回のビルドをデバッグする必要がありました。次の部分では、ジェンキンスが返すすべての結果を見てみましょう。 Jenkinsを使用したPHPプロジェクトの構築に関するよくある質問(FAQ) PHPプロジェクトのためにJenkinsをセットアップするにはどうすればよいですか?
Jenkinsを使用して、さまざまな展開ツールと統合してPHPアプリケーションを展開できます。たとえば、SSHプラグインを使用してアプリケーションをリモートサーバーに展開するか、DockerプラグインをDockerコンテナとして展開できます。 Jenkinsジョブでこれらのプラグインを構成する必要があります。プロジェクトを構築するたびにアプリケーションを自動的に展開します。統合は、開発者がコードを頻繁に共有リポジトリに統合するソフトウェア開発慣行です。通常は1日に複数回です。これにより、統合の問題を早期にキャッチし、ソフトウェアの更新を提供するために必要な時間と労力を短縮するのに役立ちます。 Jenkinsは、リポジトリに変更をコミットするたびにソフトウェアの構築、テスト、展開のプロセスを自動化することにより、継続的な統合をサポートします。配信は、コードの変更が自動的に構築、テストされ、生産のリリースのために準備されるソフトウェア開発慣行です。リリースのリスクを減らし、より頻繁にすることを目指しています。 Jenkinsは、統合やテストから配信と展開まで、ソフトウェアリリースプロセス全体を自動化することにより、継続的配信をサポートしています。これにより、Gitリポジトリに変更をプッシュするたびに、ソフトウェアを自動的に構築、テスト、展開できます。これを構成して、GITプラグインをインストールし、GITリポジトリにWebhookを設定して、変更がプッシュされるたびにJenkinsビルドをトリガーします。 Jenkinsは、問題のトラブルシューティングに役立ついくつかのツールを提供しています。これには、ビルドログが含まれます。これには、ビルド中に起こったことに関する詳細情報と、Jenkinsサーバーの全体的な動作に関する情報を提供できるシステムログが含まれます。 Jenkins CLIまたはREST APIを使用してJenkinsサーバーと対話して問題を診断することもできます。まず、Jenkinsサーバーが最新バージョンを実行していることを確認する必要があります。これには、最新のセキュリティパッチが含まれるためです。また、Jenkinsサーバーとユーザー間で通信を暗号化するHTTPSを使用するようにJenkinsを構成する必要があります。さらに、認証と承認メカニズムを使用してJenkinsサーバーへのアクセスを制限し、Jenkinsユーザーの許可をタスクを実行するために必要なもののみに制限する必要があります。Jenkinsを使用してPHPアプリケーションを展開するにはどうすればよいですか?
以上がジェンキンスでPHPプロジェクトの準備と構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

WebStorm Mac版
便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ホットトピック









