共用サーバ ーに “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 さん -公式サイト-
【使用サービス情報】
さくらのレンタルサーバー さん -公式サイト-

ディスカッション
コメント一覧
まだ、コメントがありません