共用サーバ ーに “phpqrcode” をインストール そして・・・QRコード出力
自分のことになりますが・・・本日、ちょっとうれしいことがありました。
なんとなーく、PHPでQRコードを出力ができないか・・・再挑戦してみたところ上手く出力ができました。
そのことについて書きたいと思います。
【目的】
phpqrcode ライブラリを使って、QRコードを出力ができないか。
また、共有レンタルサーバーで動かすことができないか。
【お願い】
共用サーバーでpearライブラリではなく、phpqrcodeライブラリを使用します
pearライブラリではないので注意になります。
【前提条件】
・共用レンタルサーバー:さくらのレンタルサーバー (有料サービス) に契約している。
・サブドメインの設定が出来ている。
今回は、自分のドメインなので、設定する場合は個々に設定をお願いします。
・FTPクライアントソフト(接続できる状態)
【開発環境】
・phpバージョン:PHP8.3.8 (当時)
【ディレクトリ図】
設定方法が色々ありますが・・・
今回は自分が設定した方法で書きます。
/ └home └[契約ID] ├www ├~省略~ └tmyinsight.net ├~省略~ ├PEAR_SYSTEM ├QRCODE_SYSTEM │ └phpqrcode │ ├bindings │ ├cache │ ├tools │ ├~省略~ │ └qrlib.php │ │ │ │ │ └public_html ├~省略~ ├index.html ├www2.tmyinsigt.net │ ├~省略~ │ └index.php │ └create.tmyinsight.net └qr_code ├~省略~ ├pic (パーミッション707) └index.php
【設定方法】
1. phpqrcodeをインストール
1.1 作業PCにPHP QR Codeより、"download" を左クリックし、" releases"を左クリックする。
1.2 “phpqrcode-2010100721_1.1.4.zip"(当時) をダウンロードする。
1.3 “phpqrcode-2010100721_1.1.4.zip"(当時) を解凍する。
1.4 “phpqrcode" の中身を確認する。
bindings(ディレクトリ) cache(ディレクトリ) tools(ディレクトリ) ~~省略~~ qrlib.php
1.5 FTPクライアントを起動する。共用サーバに接続する。
1.6 “QRCODE_SYSTEM" というディレクトリを作成する。作成後、移動する。
1.7 “1.4" で解凍した “ディレクトリ" と “ファイル" の一式をアップロードする。
以上、インストールが完了。
2. php と PHP8.3.8 の設定 と さくらのレンタルサーバー -サーバーコントロールパネル- の設定
【警告】
現在のサーバ環境の情報を知る必要があります。
情報をするファイルを作成しますが、契約IDまで出力されてしまいますので、完了後は必ず削除するようにお願いします。
また、"FTPの設定の作業" と さくらのレンタルサーバー -サーバーコントロールパネル- の設定" いったりきたりと設定することになりますので注意して下さい。
2.1 FTPクライアントを起動する。共用サーバに接続する。
2.2 “public_html" → “create.tmyinsight.net" に移動する。
2.3 “qr_code" のディレクトリを作成する。また、移動する。
2.4 サーバ環境 かつ phpの情報を確認する。
2.4.1 “php_info.php" のファイルを作成して、以下のソースコードを入力する。
<?php phpinfo( ); ?>
2.4.2 “create.tmyinsight.net/qr_code/php_info.php" をブラウザで開く。サーバ環境とphpバージョンを確認する。
2.4.3 サーバ環境の情報より “include_path" の値を確認してメモする。
.:/usr/local/php/8.3/lib/php
運営会社より phpバージョンが変更された場合は、設定を変更する必要がありますので注意して下さい。
2.4.4 FTPクライアントの設定を一時停止します。
2.5 さくらのレンタルサーバー -サーバーコントロールパネル- をブラウザで接続してログインする。
2.5.1 項目:スクリプト設定 → PHP.ini設定
テキストボックスに色々な設定された値が出力されます。
【変更前】
extension = imagick.so apc.enable_cli = 1 memory_limit = 512M output_buffering = off include_path = .:/usr/local/php/8.3/lib/php
【変更後】
extension = imagick.so apc.enable_cli = 1 memory_limit = 512M output_buffering = off include_path = .:/usr/local/php/8.3/lib/php:/home/[契約ID]/www/tmyinsight.net/PEAR_SYSTEM/PEAR:/home/[契約ID]/www/tmyinsight.net/QRCODE_SYSTEM
2.5.2 “保存する" をクリックする。
2.5.3 これで設定が完了になります。
2.6 “2.4.4" の続きになります。
2.6.1 もう1度 “create.tmyinsight.net/qr_code/php_info.php" をブラウザで開く。サーバ環境とphpバージョンを確認する。
2.6.2 サーバ環境の情報より “include_path" の値を確認する。
【変更前】
.:/usr/local/php/8.3/lib/php
【変更後】
.:/usr/local/php/8.3/lib/php:/home/[契約ID]/www/tmyinsight.net/PEAR_SYSTEM/PEAR:/home/[契約ID]/www/tmyinsight.net/QRCODE_SYSTEM
“変更後" の値であれば設定が完了になります。
2.6.3 “php_info.php" を削除する。
FTPクライアントに接続する。
“public_html" → “create.tmyinsight.net" → “qr_code" に移動する。
“php_info.php" のファイルを削除する。
2.7 実際にQRコードを出力する。
2.7.1 FTPクライアントを起動する。共用サーバに接続する。
2.7.2 “pic" というディレクトリを作成する
また、パーミッション を"707″ にする。
2.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>QRcode生成</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>QRcode生成</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>QRcode生成</label> <input type="text" class="form-control input-lg" name="comment" placeholder="Hallo World"> </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 #文字入力 $comment = $_GET['comment']; if($comment == ""){ ; exit(1); } $qrcode = $comment; print "<font size=\"4\">".$qrcode."</font><br /><br /><br />"; #ライブラリ読み込み require_once 'phpqrcode/qrlib.php'; #保存先 $filepath = 'pic/qr.png'; #qrcode生成 QRcode::png($qrcode, $filepath, QR_ECLEVEL_M, 6); ?> <img src="pic/qr.png"> <?php #画像消去 imagedestroy($filepath); ?> </div> </body> </html>
これで完了になる。
実際に https://create.tmyinsight.net/qr_code/index.phpをブラウザで確認する。
※CSS・scriptなどの設定がされていますが、その設定しなくても動きます。。。
【参考文献】
QUIITさん -PHPでcomposerを使わずにQRコードを作成する (@kaitaku
(Takumi Kaibara さん))-
【商標情報】
PHP Qr Code さん -公式サイト-
【使用サービス情報】
さくらのレンタルサーバー さん -公式サイト-
ディスカッション
コメント一覧
まだ、コメントがありません