ホームページをリニューアルしました。旧HPはこちら
ソフト・ハードウェア Linux PHP

PHP・MySQL・canvasJSを使った動的なチャート生成(その1)

現在はフラットなテキストファイルに保存している気象観測データを、MySQLでデータベース化し、データの取得期間などをWebブラウザに入力することで、ダイナミックにグラフが取得できる環境構築に取り組んだ。知らないことも多くあり、データベース化、グラフ作成を以下の順番で進めた。

1、 ローカルサーバの開発環境の設定

・Eclipseのインストールと設定
・Xdebugのインストールと設定
・phpMyAdminのインストール

2、 MySQLに気象観測データベースを作成

・MySQLの学習とデータベース設定

3、 PHPを使ったMySQLへのアクセスとクエリ設定

4、 Pythonを使ったMySQLへのアクセスとクエリ設定

5、 フォームからの送信データ取得と表示・ファイル保存

6、 MySQLデータを用いcanvasによるチャート作成

1、 ローカルサーバの開発環境の設定

使用パソコン:Let’s Note SDXC 

アーキテクチャ: x86_64
CPU 操作モード: 32-bit, 64-bitl
CPU ファミリー: 6
モデル: 42
モデル名: Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz
CPU MHz: 890.615
CPU 最大 MHz: 3300.0000
CPU 最小 MHz: 800.0000
HDD(SSD):モデル: ATA Samsung SSD 860 (scsi)
OS:Ubuntu18.04

LAMP環境:
一昨年、LAMP環境を立ち上げWordPressが動作していたが、config内容がわからなくなったので一旦アンインストールして、再度ユーザディレクトリ(/home/<user>/public_htmlで、Apacheのアクセスを許可ができるようにした。
設定方法は、ubuntu Wikiを参照。  UserDirectoryPHP
this procedure allows users to securely run PHP files from ~/public_html/ to manipulate their own files.

・Eclipseのインストールと設定

1)Eclipeseのインストール
PHPのプログラム編集のために統合開発環境(IDE)ソフトのEclipseをインストール

2)JAVAのインストール
OpenJDKをインストール(OpenJDK バージョン11)
手順は参考記事による。

3)Eclipseのランチャーの”ショートカット”をデスクトップに置く
インストール先のEclipseのランチャーをデスクトップにシンボリックリンクでショートカットとして置く。

ln -s /home/miyasan/public_html/eclipse/eclipse /home/miyasan/デスクトップ/eclipse

・XdebugをインストールしPHPと統合する

・インストールとphp.iniの編集
インストール方法はXdebugのホームページに従う。

Installation:
Ubuntu (18.04 LTS/Bionic, 20.04 LTS/Focal):
sudo apt-get install php-xdebug

その後ホームペジの指示に従って、php.iniの最後に 「zend_extension=/wherever/you/put/it/xdebug」 を追記し
sudo service apache2 restart

ところが、php -vを走らせるとエラー発生。

Failed loading /wherever/you/put/it/xdebug: /wherever/you/put/it/xdebug: cannot open shared object file: No such file or directory

そこでphpinfo()情報をコピーし、https://xdebug.org/wizardにてペーストして診断プログラムを走らせたところ、以下のインストラクションが帰ってきた。

Instructions:
Install the pre-requisites for compiling PHP extensions.
On your Ubuntu system, install them with: apt-get install php-dev autoconf automake
・・・・・・・・・
・・・・・・・・・
Update /etc/php/7.2/apache2/php.ini and change the line
zend_extension = /usr/lib/php/20170718/xdebug.so
Please also update php.ini files in adjacent directories, as your system seems to be configured with a separate php.ini file for the web server and command line.
Restart the webserver

インストラクションに従って、本来PHPをインストールする前に実行するべきだった下記のモジュールをインストール
sudo apt-get install php-dev autoconf automake

すると先程はファイルが空だったapache2のフォルダー(/etc/php/7.2/apache2/)に、cli/php.iniと同じファイルがコピーされて保存された。そこで、 /etc/php/7.2/apache2/php.ini とcli/php.iniの最終行に以下を追記

zend_extension = /usr/lib/php/20170718/xdebug.so

この後、php -v を確認すると

$ php -v
Cannot load Xdebug - it was already loaded
PHP 7.2.24-0ubuntu0.18.04.7 (cli) (built: Oct 7 2020 15:24:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
with Zend OPcache v7.2.24-0ubuntu0.18.04.7, Copyright (c) 1999-2018, by Zend Technologies

Cannot load Xdebug – it was already loadedというエラーが出る。これは、UBUNTUの場合はApacheとPHPのCLIにそれぞれphp.iniが必要で、その結果Xdebugが2回ロードされためで、機能的には問題ないので一旦「良し」と判断した。

・EclipseのDebug動作の設定
Debuggerを走らせると、PHPCLIでは問題なくBrekapointで止まるが、WebAppliでは止まらない。そこでECLIPSE Foundationの「Debugging using Xdebug」のWebページを見ると、phpinfo()のXdebug設定で、xdebug_remote_enable On になっている必要があると書いてある。(現在はOff)


しかし「設定方法はphp.iniで設定しろ」と書いてあるだけで書き方がわからない。そこでいろいろ調べたところ、phpstormの「Xdebugを構成する」というWebページにphp.iniの追加方法が載っていたので、Apache2とphp/clの両方のphp.iniに追加をしたところ、WebAppliのDebugでもBreakPOINTで止まるようになった。

[xdebug]
zend_extension="<path to xdebug extension>"
xdebug.remote_enable=1
php.iniの最終行に以下を追加

; Local Variables:
; tab-width: 4
; End:

[xdebug]
zend_extension = /usr/lib/php/20170718/xdebug.so
xdebug.remote_enable=1
・phpMyAdmin インストール

最後にphpMyAdminをインストールし、MySQLのデータベース管理作業を容易にする。

・インストール:Ubuntu Documentation phpMyAdminに従う。

sudo apt-get install phpmyadmin

・インストールするとパスワード聞かれるので;rootのパスワード<sql******* >を2回入力
・Webサーバの種類を聞かれるので「apache2」を選択2

・apache2.conf ファイルの編集
To set up under Apache all you need to do is include the following line in /etc/apache2/apache2.conf.
ファイルの最終に Include /etc/phpmyadmin/apache.conf を追記

・apache2のRestart

ところがphpMyAdminを動作させるとエラー発生。これもLAMP環境を一度アンインストールしたからrepositoryがおかしくなっているのだろうと考え、ネット検索したところ下記の解決策が見つかった。
解決策:下記URLの23番の回答を適用
https://stackoverflow.com/questions/48001569/phpmyadmin-count-parameter-must-be-an-array-or-an-object-that-implements-co

23番の回答:

Ubuntu 18.04 LTS
These are the steps which worked for me. Many, many thanks to William Desportes for providing the automatic updates on their Ubuntu PPA.

Step 1 (from William Desportes post)
$ sudo add-apt-repository ppa:phpmyadmin/ppa

Step 2
$ sudo apt-get --with-new-pkgs upgrade

Step 3
$ sudo service mysql restart

If you have issues restarting mysql, you can also restart with the following sequence
$ sudo service mysql stop;
$ sudo service mysql start;

この処理でphpMyadminのログイン画面が正常に現れ動作の確認ができた。

LAMP環境を一度削除してから、再構築したということもあり、またなぜこの必要な処理方法を理解するために、セットアップに2日もかかってしまった。

 

PHP・MySQL・canvasJSを使った動的なチャート生成 関連記事

1、 ローカルサーバの開発環境の設定

2、 MySQLに気象観測データベースを作成

3、 PHPを使ったMySQLへのアクセスとクエリ設定

4、 Pythonを使ったMySQLへのアクセスとクエリ設定

5、 フォームからの送信データ取得と表示・ファイル保存

6、 MySQLデータを用いcanvasによるチャート作成

コメント

タイトルとURLをコピーしました