【QNAP】コンソールからphpコマンドを実行する方法

悩む男性

QNAP NASに、SSHでログインし、コンソールからphpコマンドを実行してみると、

[~] # php -v
-sh: php: command not found

見つからない…。

Webサーバ(LAMP)は標準で対応しているので、使えないってことはないはず。
パスが通ってないだけかな?

…と思ってからが、結構長かったので一部始終メモ。

まずはphpを探す

とりあえず、php様がどこにいらっしゃるか調べてみた。

[~] # find / -name php
:
/mnt/ext/opt/apache/bin/php

Container Stationで、仮想環境立てていたので大量にヒットしたが、ここっぽい。

ディレクトリ移動して、もう一度phpコマンドを実行してみた。

[/mnt/ext/opt/apache/bin] # php -v
-sh: php: command not found

ん?
確かにここにいるんだけどな…

その後、exportしてパス通したり、なんやかんやしたけど、結局上手くいかず…。

結局、よく分からない解決

とりあえず、以下のコマンドで実行できた。

[/mnt/ext/opt/apache/bin] # /mnt/ext/opt/apache/bin/php -v
PHP 5.6.33 (cli) (built: May 28 2018 04:51:22)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

え?なんで?

でもまぁ、動いたのでこれで行くことにした。

ついでに

実行するphpファイルの中でDateTimeクラスを使ってたら、以下のようなエラーが。

Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.'

QNAPの管理画面を確認し、php.iniの設定を見ても、ちゃんとdate.timezoneは設定されている。

これも原因はよく分からないが、言われる通りソースコード側にdate_default_timezone_set('Asia/Tokyo');を追記したら、エラーが出なくなった。

Linux周りの知識が足りないなぁ…もっと勉強しなければ。

21/05/03追記:aliasコマンドを使う

とおりすがり様からコメント頂きました!

# alias php=’/usr/local/apache/bin/php’

これでいけそうとのこと。また試したら結果を書きます!

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

「【QNAP】コンソールからphpコマンドを実行する方法」への2件のフィードバック

  1. とおりすがりのものです。

    alias php=’/usr/local/apache/bin/php’
    でいけそうなのでメモ。(自分の為にも)

    1. > とおりすがり 様
      コメント有難うございます。
      なるほど!aliasコマンドを使うのですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください