質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2775閲覧

phpmdのインストール方法がわからん。

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/10/20 03:33

編集2016/10/20 03:47

下記サイトを参考にphpmdの導入を行なっております。下記コードまでは多分うまくいってます。

$ php composer.phar install

しかし、下記コードからは失敗してます。そもそもパスを通すとか意味がよくわかってないのですが、自分のパソコンでのパスに置き換えなきゃいけない感じでしょうか。その辺りも含めて解決方法をご教示お願いします。

$ sudo ln -s /vagrant/vendor/phpmd/phpmd/src/bin/phpmd /usr/bin/phpmd $ sudo chmod ugo+x /usr/bin/phpmd $ phpmd -bash: phpmd: command not found

PHPの静的コード解析ツール『PHPMD』を使ってみた。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

「パスを通す」とは、コマンド(プログラム)実行時にフルパス名を指定しなくてもいい(つまり短い入力で済む)ように、事前にコマンド(プログラム)を検索するパスを登録しておくことです。

登録済のパスは以下のコマンドで確認できます。

echo $PATH

例えば"ifconfig"コマンドを実行する時、パスが通っていなければフルパスで"/sbin/ifconfig"と入力する必要があります。
しかし先の確認コマンドの結果に"/sbin"が含まれていれば、"ifconfig"と入力するだけで"/sbin/ifconfig"を呼び出します。

一方パスが通っていても新しいコマンド(プログラム)が追加されたら、そのことを認識させないといけません。
bashの場合、以下のコマンドでコマンドの追加を認識させます。

hash -r

一般にLinux/Unixで"/usr/bin"にパスが通っていないというのは考えにくく、また今回の場合はlnで/usr/binの下にコマンドを追加しているので、まずは"hash -r"をしてみてはいかがでしょうか。

もちろん、前述の通りフルパスを指定すればコマンドを実行できます。

投稿2016/10/20 04:23

編集2016/10/20 12:56
ynakano

総合スコア1894

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ynakano

2016/10/20 12:56

済みません。最初の回答がやっつけで分かりにくいと思ったので修正しました。
退会済みユーザー

退会済みユーザー

2016/10/20 13:03

わざわざありがとうございました。ちょっと今試せてないので後日ご連絡します。
退会済みユーザー

退会済みユーザー

2016/10/20 23:16 編集

ご回答ありがとうございます。やっとこできました。ちなみに"hash -r"に関しては、よく分からなかったのですが、よろしければお答え頂けないでしょうか。 "sudo ln -s"でシンボリックリンク(ショートカットみたいの?)を設定して、 "sudo chmod"でシンボリックの権限を変更?みたいなことして動く様になりました。"hash -r"は"sudo ln -s"の変わりって感じでしょうか?
ynakano

2016/10/20 23:44

上手くいったようでよかったです。 ただ、ちょっと私の意図とは違います。 hashコマンドとlnコマンドには関連はないです。 先にchmodについてお話しします。 まずシンボリックリンク自体にはパーミッションはありません。 シンボリックリンクを"ls -l"で見てみると、作成時点で既に"lrwxrwxrwx"となっているはずです。 シンボリックリンクにchmodをすると、リンク先の実体に反映されます。 しかし最初の時点で"sudo chmod ugo+x /usr/bin/phpmd"とあるので、10/21 08:16のコメントで書いていただいたシンボリックリンクへのchmodは結果的には効果がない(すでに行った設定の繰り返し)と思われます。 次に"hash -r"ですが、シェル(bashと想定しています)が持っているコマンドのハッシュテーブル(フルパスのキャッシュ?この部分ちょっとあやふやです)を再構築(クリアして作り直す、はず)するコマンド処理です。 今回のケースではインストール直後でphpmdがハッシュテーブルになかったので、コマンド名単体を指定しても「どこにあるか分からない」となっていた訳です。 ただ、よくよく考えるとハッシュテーブルは自動的に更新されますし、また、ログイン時にも更新がかかるはずなので、最初の回答として「一度ログアウトしてログインし直してみたら」と言ってもよかったのかもしれません。 ※いくつかの点でうろ覚えです…
退会済みユーザー

退会済みユーザー

2016/10/21 00:04

ご回答ありがとうございます。ちゃんと登録されていれば"hash -r"でコマンド認識されるってことですね。理解しました。
guest

0

私みたいな人いるか分からないけど、一応解決方法を記載します。参考サイトは中級者向けなのか私だからはまるのか疑問が残る・・・。

$ sudo ln -s /vagrant/vendor/phpmd/phpmd/src/bin/phpmd /usr/bin/phpmd

上記のコマンドに関しては、インストールしたphpmdの実行ファイルに対して、usr/binにシンボリックリンクを追加する処理の様です。なので"/vagrant/vendor/phpmd/phpmd/src/bin/phpmd"は自分のインストールしたphpmdの実行ファイルのpathに置き換えないとダメです。どこかわからなければFinderでphpmdで検索してください。私はアホなのでコピペしてました。
一度コピペして変なpathのシンボリックを設定しちゃうと正しいpathを入れ直す時に上書きできないので(私が方法知らんだけかもしんないけど・・)削除してから入れ直してください。あとはコピペで大丈夫です。

投稿2016/10/20 23:35

編集2016/10/20 23:36
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ynakano

2016/10/20 23:49

補足します。 ・lnの前に"ls /vagrant/vendor/phpmd/phpmd/src/bin/phpmd"をしてファイルが本当にそこにあるか確認する。 ・見つからなければ"find / -name phpmd"でファイルを探し、以降の手順で読み替える。 ですかね。
退会済みユーザー

退会済みユーザー

2016/10/20 23:53

補足ありがとうございます。なるほど、ターミナルでファイルを探すべきですよね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問