現在はフラットなテキストファイルに保存している気象観測データを、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を使った動的なチャート生成 関連記事
コメント