共用サーバ に “PEAR” をインストール そして・・・バーコード出力
【目的】
PEAR ライブラリを使って、バーコードを出力したい。
どうやって共用サーバにインストールすれば良いのか・・・
書きたいと思います。
【お願い】
共用サーバでpearライブラリが使用出来る・出来ないがあります。。。
今回、バーコードは上手く出来ましたが、別でQEコードのパッケージを試したところ上手く出来ないことが判明しました。
また、解決策があれば探してみたいと思いますが。。。
大変恐縮ですが、共用サーバですべてpearライブラリが使えるというのは、現時点では確認が出来ていないのでご了承下さい。。。
【前提条件】
・共用レンタルサーバー:starserver (有料サービス) に契約している。
・サブドメインの設定が出来ている。
今回は、自分のドメインなので、設定する場合は個々に設定をお願いします。
・FTPクライアントソフト(接続できる状態)
【開発環境】
・phpバージョン:PHP7.4.25 (当時)
【ディレクトリ図】
設定方法が色々ありますが・・・
今回は自分が設定した方法で書きます。
/ └home └[契約ID] ├~省略~ └tmyinsight.net ├~省略~ ├PEAR_SYSTEM │ ├~省略~ │ ├OS │ ├scripts │ └PEAR │ ├~省略~ │ └Image │ ├Barcode2.php │ └Barcode2 │ │ │ └public_html ├~省略~ ├index.html ├www2.tmyinsigt.net │ ├~省略~ │ └index.php │ └create.tmyinsight.net └barcode ├~省略~ ├pic (パーミッション707) └index.php
【設定方法】
1. PEARパッケージをインストール
1.1 作業PCにPEARをダウンロードする。
“download" をカーソルに合わせて、右クリックして “名前を付けてリンク先を保存" する。
1.2 “PEAR-1.10.13.tgz"(当時) を解凍する。
1.3 “PEAR-1.10.13.tar"(当時) を解凍する。
1.4 “PEAR-1.10.13" の中身を確認する。
OS(ディレクトリ) PEAR(ディレクトリ) scripts(ディレクトリ) INSTALL LICENSE package.dtd PEAR.php README.rst System.php template.spec
1.5 FTPクライアントを起動する。共用サーバに接続する。
1.6 “PEAR_SYSTEM" というディレクトリを作成する。作成後、移動する。
1.7 “1.4" で解凍した “ディレクトリ" と “ファイル" の一式をアップロードする。
以上、インストールが完了。
2. Image_Barcode2パッケージをインストール
2.1 Image_Barcode2をダウンロードする。
“download" をカーソルに合わせて、右クリックして “名前を付けてリンク先を保存" する。
2.2 “Image_Barcode2-0.2.3.tgz"(当時) を解凍する。
2.3 “Image_Barcode2-0.2.3.tar"(当時) を解凍する。
2.4 “Image_Barcode2-0.2.3" の中身を確認する。
docs(ディレクトリ) Image(ディレクトリ) tests(ディレクトリ) build.xml phpunit.xml README
2.5 FTPクライアントを起動する。共用サーバに接続する。
2.6 “PEAR_SYSTEM" → “PEAR" に移動する。
2.7 “2.4" で解凍した “Image" だけアップロードする。
以上、インストールが完了する。
3. php とPEAR の設定 と starserver -サーバ管理ツール- の設定
【警告】
現在のサーバ環境の情報を知る必要があります。
情報をするファイルを作成しますが、契約IDまで出力されてしまいますので、完了後は必ず削除するようにお願いします。
また、"FTPの設定の作業" と “starserver -サーバ管理ツール- の設定" いったりきたりと設定することになりますので注意して下さい。
3.1 FTPクライアントを起動する。共用サーバに接続する。
3.2 “public_html" → “create.tmyinsight.net" に移動する。
3.3 “barcode" のディレクトリを作成する。また、移動する。
3.4 サーバ環境 かつ phpの情報を確認する。
3.4.1 “php_info.php" のファイルを作成して、以下のソースコードを入力する。
<?php phpinfo( ); ?>
3.4.2 “create.tmyinsight.net/barcode/php_info.php" をブラウザで開く。サーバ環境とphpバージョンを確認する。
3.4.3 サーバ環境の情報より “include_path" の値を確認してメモする。
.:/opt/php-7.4.25/data/pear
運営会社より phpバージョンが変更された場合は、設定を変更する必要がありますので注意して下さい。
3.4.4 FTPクライアントの設定を一時停止します。
3.5 starserver -サーバ管理ツール- をブラウザで接続してログインする。
3.5.1 項目:ホームページ → PHP環境設定 → ドメイン名:tmyinsight.net “選択" → "phpini直接編集" をクリックする。
テキストボックスに色々な設定された値が出力されます。
【php】の項目の最後に追加文を入れます。
【変更前】
【php】 ~~~~~~~省略~~~~~~ enable_dl = On default_socket_timeout = 60
【変更後】
【php】 ~~~~~~~省略~~~~~~ enable_dl = On default_socket_timeout = 60 include_path = .:/opt/php-7.4.25/data/pear:/home/[契約ID]/tmyinsight.net/PEAR_SYSTEM/PEAR'
3.5.2 “設定する(確認)" をクリックする。
3.5.3 間違えが無ければ “設定する(確定)" をする
3.5.4 これで設定が完了になります。
3.6 3.4.4の続きになります。
3.6.1 もう1度 “create.tmyinsight.net/barcode/php_info.php" をブラウザで開く。サーバ環境とphpバージョンを確認する。
3.6.2 サーバ環境の情報より “include_path" の値を確認する。
【変更前】
.:/opt/php-7.4.25/data/pear
【変更後】
.:/opt/php-7.4.25/data/pear:/home/[契約ID]/tmyinsight.net/PEAR_SYSTEM/PEAR
“変更後" の値であれば設定が完了になります。
3.6.3 “php_info.php" を削除する。
FTPクライアントに接続する。
“public_html" → “create.tmyinsight.net" → “barcode" に移動する。
“php_info.php" のファイルを削除する。
3.7 実際にバーコード出力する。
3.7.1 FTPクライアントを起動する。共用サーバに接続する。
3.7.2 “pic" というディレクトリを作成する
また、パーミッション を"707″ にする。
3.7.3 “index.php" というファイルを作成し、以下のソースコードを入力して上書き保存する。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>バーコード13桁生成</title> <!-- BootstrapのCSS読み込み --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- jQuery読み込み --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <!-- BootstrapのJS読み込み --> <script src="js/bootstrap.min.js"></script> </head> <body> <div class="container"> <h3>バーコード13桁生成</h3> <h6>Ver1.0.0</h6> <!-- <div class="container"> --> <form class="form-horizontal" action="index.php" method="get"> <div class="form-group"> <div class="col-xs-10"> <label>EOSコード(13桁入力)</label> <input type="text" class="form-control input-lg" name="comment" placeholder="0000000000000"> </div> </div> <div class="form-group"> <div class="col-xs-10"> <button type="submit" class="btn btn-default btn-lg">変換</button> </div> </div> </form> <!-- </div> --> <?php #13文字入力 $comment = $_GET['comment']; if($comment == ""){ ; exit(1); } if(!preg_match('/^[0-9]+$/', $comment)){ print "<font size=\"4\">関係ない文字列があります。<br />数字を入力してください。</font>"; exit(2); } #文字列の数の判定 if(strlen($comment) != 13){ print "<font size=\"4\">文字数が13文字ではありません。<br />必ず13文字入力して下さい。</font>"; exit(3); } $eoscord13 = $comment; print "<font size=\"4\">".$eoscord13."</font><br /><br /><br />"; #バーコード生成 require_once 'Image/Barcode2.php'; $gd = Image_Barcode2::draw($eoscord13, 'Ean13', 'jpeg', false, 70, 3, true); #保存先 imagejpeg($gd, 'pic/gd.jpeg'); #画像消去 imagedestroy($gd); ?> <img src="pic/gd.jpeg"> </div> </body> </html>
これで完了になる。
実際に https://create.tmyinsight.net/barcode/index.phpをブラウザで確認する。
※CSS・scriptなどの設定がされていますが、その設定しなくても動きます。。。
大学の卒論でバーコードを利用したかったんだけど・・・思うように出来なくて断念しました。
大学卒業後、VPSサーバで試したところ直ぐに出来ました。
久々に共用サーバでチャレンジしてみようとおもってやってみたら、やっと出来ました。。。
10年掛かったw
【参考文献】
IT号外さん -PHPのバージョン7系、または8系でPEARライブラリー、パッケージを使う方法-
【商標情報】
PEAR さん -公式サイト-
【使用サービス情報】
star saver さん -公式サイト-
ディスカッション
コメント一覧
まだ、コメントがありません