LoginSignup
0
1

More than 1 year has passed since last update.

SonarQube+WindowsでPHPソースをスキャンする

Last updated at Posted at 2021-10-08

間があいてしまいましたが、前回 に引き続きSonarQubeで静的解析を行うための手順を書いていきたいと思います。
今回はDockerコンテナでSonarQube立ち上げて、Windows10(ホスト)にあるCakePHPプロジェクトをSonar Scannerでスキャンしてみようと思います。

参考にした記事
https://qiita.com/takao-takass/items/5d54768ad0d315d3dad4

環境

  • Windows10 Pro
    Windows10 へDockerインストールについては コチラ を参照
  • コンテナ作成については コチラ の記事を参照
  • PHP:PHP 7.4.4
  • Cake:4.x系

SonarQubeの設定

  1. SonarQubeへアクセス
    ブラウザを開いて、SonarQubeへアクセスします。
    http://{IP or ホスト名}/
    特に設定していなければhttp://localhost:9000/でアクセスできると思います。

  2. ログイン
    ID:admin
    Password:admin
    でログイン可能です。

  3. プロジェクトの作成
    画面中央付近にある『Create new project』をクリックします。

次に『Project key』、『Display name』を入力し、『Set up』をクリックします。

そして、SonarQube ScannerからSonarQubeへログインするためのTokenを生成します。
ある程度の文字列の長さが必要です。

Tokenが生成できたら、『Continue』をクリックします。

Scannerの設定

Scannerはソースコードをスキャンするプログラムなり、スキャン結果をSonarQubeへ返します。
こちらを参考にしました

  1. プログラム言語などの選択
    今回はPHPのプロジェクトをスキャンするので、『Other』選択します。
    次にScannerを動かすOSを選択しますが、『Windows』を選択します。

  2. Scannerのダウンロードと設定
    zipファイルがダウンロードされるので、適当なフォルダで解答します。
    サンプルとして下記ファイルパスで実行します。

  • PHPプロジェクト:C:\tmp\{PHPプロジェクト}
  • Scanner:C:\tmp\{Scanner}

スキャンしてみる

  1. コマンドプロンプトを開きディレクト移動 PHPプロジェクト配下へ移動します。

cd C:\tmp\{PHPプロジェクト}

2. スキャン実行
『Execute the Scanner from your computer』に表示されているコマンドをちょっと変えて実行
環境変数にbinまでのパスを通した方がいいと思うのですが、それは割愛してbatまでのフルパスを指定する形にしました。
なので、下記を参考にScannerまでのパスだけ修正してください。

■変更前

sonar-scanner.bat -D"sonar.projectKey=php-test" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=トークンが表示されます"

■変更後

C:\tmp\sonar-scanner-4.6.2.2472-windows\bin\sonar-scanner.bat -D"sonar.projectKey=php-test" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=トークンが表示されます"

※Scanner解凍時のフォルダ名は読み替えをお願いします。

3. スキャン結果を見る(まずは成功 or 失敗)
プロンプト上にログがバーッと流れます
(ちょいちょいWARNINGがあるのは気になりますが・・・今はまぁいいでしょうw)

最終的に『EXECUTION SUCCESS』が表示されていることを確認してください。

INFO: Analysis total time: 28.439 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 30.419s
INFO: Final Memory: 14M/57M
INFO: ------------------------------------------------------------------------

SonarQubeでの結果確認

上記までの手順が順調にいけば、SonarQube側がこんな感じで表示されます。

あとがき

あとは、デフォルトの解析設定だとちょっと物足りない感じですが、『Rules』、『Quality profile』、『Quality Gates』などで解析についての設定が行えそうなので、今後調査していこうと思います。

そして、お気づきの方もいらっしゃるかと思いますが、実はちょっと日本語化してあります。
別記事で記載していこうと思います。

関連記事

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1