phpMyAdminを使う(ユーザー作成編) [WEBサービス]
1. ユーザーの作成
「ユーザ」タブを押すと、ユーザ管理画面が現れる。
すでに6名のユーザが登録されています。現在ログインしている"root"以外はパスワードの設定が「いいえ」となっている。パスワードを設定するか、削除するか対応が必要。
既存ユーザの処理は後回しとし、新規にユーザを追加してみる。
「ユーザを追加する」を選択すると、ユーザ作成画面が表示されます。
①ログイン情報の登録
ここで、「sample_user」という名前のデータベースユーザー、パスワード「sample_pass」で作成する。外部サーバーからの接続は行わないので、ホスト名は「localhost」を選択します。
② 権限の登録
画面を下に送ると「権限の登録」画面が現れる。今回はすべての権限を与えます。
グローバル特権(すべてチェックする/据えてのチェックを外す)の「すべてチェックする」を選択しました。
最後に「ユーザを追加する」ボタンを押すとデータベースユーザが追加されました。
参考サイト
phpMyAdminを使う(データベース作成編) [WEBサービス]
1. データベースの作成
「データベース」タブを押すと、データベース管理画面が現れる。
新規にデータベースを作成する場合、「新規にデータベースを作成する」と書かれたテキストボックスにデータベースの名前を入力する。
照合順序はデフォルトのままで「作成」ボタンを押す。
データベース"sample_db"が作成されました。
照合順序に関しては以下を参照してください。
ちなみにデータベースの削除は、削除したいデータベースのチェックボックスをチェックし削除ボタンを押す。
参考サイト
レイシスト [生活]
phpMyAdminを使う(インストール編) [WEBサービス]
1. インストール
① 下記サイトから、ファイルをダウンロードする。
http://www.phpmyadmin.net/home_page/index.php
② ダウンロードしたZIPファイルをアパッチのドキュメントルートにコピーして解凍する。
アパッチのドキュメントルート: /var/www/html
解凍後のフォルダー名を、”phpMyAdmin”に変更しておく。
② ブラウザからアクセスする。
http://localhost/phpMyAdmin/index.php
以下のエラーが出たら、PHPアプリケーション用モジュール「php-mysql」がインストールされているか確認し、インストールされていない場合はインストールする。
確認方法
# yum list installed php*
インストール方法
# yum install php-mysql
インストール後、アパッチを再起動する。
# /etc/rc.d/init.d/httpd reload
再度、http://localhost/phpMyAdmin/index.php にアクセスすると以下の表示に代わりました。
ブラウザのリロードを数回繰り返しているうちに、エラーはなくなりました。アパッチの設定が反映されるまでに時間がかかるようです。
2. MySQLの設定
はじめての利用なのでユーザーは"root"、パスワードは””でログイン使用したが、「パスワードなしでのログインはできない」とのメッセージで先へすすめない。
コマンドラインからrootのパスワードを設定することもできるが、今回はパスワードなしでphpMyAdminログインできるように、phpMyAdmin設定ファイルを準備する。
phpMyAdminをインストールしたフォルダにある、"config.sample.inc.php"を"config.inc.php"にコピーしパスワードなしでログインできるように以下の行を編集する。
$cfg['Servers'][$i]['AllowNoPassword'] = true;
パスワードなしでログインできましたが、いくつかのメッセージが出ています。
最初の「環境保護領域」については、警告なのでとりあえず後回しとし、次の「rootのパスワード」の対応を行う。
「ユーザ」タブから"root" "localhost" の特権を編集からパスワードを設定して再起動してOK。なお”AllowNoPassword”は”false”に変更しておく。
次に3つ目の「mbstring拡張」は、インストールします。これもアパッチの再起動が必要です。
# yum install php-mbstring
# /etc/rc.d/init.d/httpd reload
最後の「mcrypt拡張」は以下のコマンドでインストール出来るはずですが、”No package php-mcrypt available.”とでてパッケージが見つからないようです。
# yum –eneblerepo=epel install php-mcrypt
# /etc/rc.d/init.d/httpd reload
ここまでで、エラーは消えました。
最後の「環境保護領域」警告については、解決方法がわからないし、残っていても問題なさそうなのでこのままとします。
参考サイト
- http://www.dbonline.jp/phpmyadmin/
- http://q.hatena.ne.jp/1313943198
- http://www.happytrap.jp/blogs/2012/04/08/8779/
- http://mrs.suzu841.com/tebiki/centos55/phpmyadmin.html
- http://forums.contribs.org/index.php?topic=47816.0
Bing API を使う 「断念の巻」 [WEBサービス]
Bing APIを利用すると,検索サービスのBingと同質の検索結果を得ることができる。
1. ユーザーIDの取得
①Bing-開発者のページからログインし、検索APIの「今すぐ開始」を選択する。
② Windows Azure Marketplace へのサインアップ
ここ、5,000トランザクション/月にサインアップするとユーザーアカウント登録画面となる。
氏名、電子メールアドレスを登録し、使用条件に同意すると、サインアップが完了します。
③ アカウント情報を選択すると、情報を確認できる。顧客ID(ユーザーID)を確認できる。
2. アプリケーションIDの取得
① アプリケーションの登録を選択
② 情報の入力
③ 登録完了
アプリケーションIDはどこ?
これ以上探すのが面倒になったので、Bing APIを使うのは断念します。Windows Azure Marketplaceへ移行したため、このような事になったと考えられますが、直観的に欲しい機能にアクセスできないと、それ以上使うのが嫌になりますね!
CentOS 6.3 にWebサーバーを構築する [WEBサービス]
Perlの開発環境として準備した。
レンタルサーバーにアップする前の動作確認およびデバッグするために、CentOS 6.2上にApache とMySQLの使える環境を構築した。
各ソフトのバージョンは以下
- Apache : 2.2.15
- MySQL : 5.1.67
- PHP : 5.3.3
- Perl : 5.10.1
開発ユーザー名は”webs”として構築
1. Apache
① CentOSインストール時に導入済みなので設定のみ
/etc/httpd/conf/httpd.conf の編集
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
UserDir disable
↓
#UserDir disable ← #を追加(コメントアウト)#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disable" line above, and uncomment
# the following line instead:
#
#UserDir public_html
↓
UserDir public_html ← 行頭の#を削除(コメント解除)
AliasMatch ^/centos(.*) /home/centos/public_html/$1
← centosユーザーのみhttp://centossrv.com/centos/のように~(チルダ)なしでアクセスできるようにする
AliasMatch ^/userdir/([^/]+)/(.*) /home/$1/public_html/$2
← 全てのユーザーでhttp://centossrv.com/userdir/ユーザー名/でアクセスできるようにする
</IfModule>#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
以下の全行追加
<Directory /home/*/public_html>
AllowOverride All ← .htaccessの許可
Options IncludesNoExec ExecCGI FollowSymLinks ← CGI,SSI(Exec命令以外)の許可
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
② Webサーバーの設定反映と起動設定
# /etc/rc.d/init.d/httpd reload start ←サーバー起動
# /etc/rc.d/init.d/httpd reload stop ←サーバー停止
# /etc/rc.d/init.d/httpd reload ←サーバー再起動
# chkconfig httpd on ←自動起動オン
③ ユーザーディレクトリ作成(~/public_htmlディレクトリ)
以下のスクリプトを作成、実行そして削除
作成: # gedit userdirmake
#!/bin/bash
for user in `ls /home`
do
id $user > /dev/null 2>&1
if [ $? -eq 0 ] && [ ! -d /home/$user/public_html ]; then
mkdir -p /home/$user/public_html
chown $user. /home/$user/public_html
chmod 711 /home/$user
echo $user
fi
done
実行: # sh userdirmake
削除: # rm –f userdirmake
新規ユーザー追加時にユーザーディレクトリが自動で作成されるようにする:
# mkdir /etc/skel/public_html
④ Webページ表示確認 : http://127.0.0.1:~webs/index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>テスト</title>
<body>
テスト
</body>
</html>
「Forbidden Forbidden You don't have permission to access …」発生時の原因
- そのディレクトリのトップページ(index.html など)が存在しない。
- そのディレクトリのアクセス許可を,制作者が設定し間違えた。
- 現在更新作業中で,一時公開中止している。
- アクセス拒否されている。
確認:
httpd.conf 設定ファイル<Directory /home/*/public_html> ~ </Directory> 間の再確認
- /home, /home/public_html, /home/public_html/index.html パーミッション(755)確認
- SELinux 停止状態
# getenforce
Enforcing の場合、無効にする
# gedit /etc/sysconfig/selinux
SELLINUX=disabled に修正
⑤ CGI確認 : http://127.0.0.1/~webs/test.cgi
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n";※システムの文字コードがUTF-8の場合
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=euc-jp\">\n";※システムの文字コードがEUCの場合
print "<title>テスト</title>\n";
print "</head>\n";
print "<body>\n";
print "CGIテスト\n";
print "</body>\n";
print "</html>\n";
「CGIプログラムそのまま表示」時の対応
httpd.confで「#AddHandler cgi-script .cgi」の行のコメントアウトを解除する
「Internal Server Error」発生時の原因
- 改行コードの違い(LFのこと)
- Perl のパスの間違え
- CGIプログラムのパーミッション間違え
確認:
- エディターの改行コード設定の確認
- # which perl で場所確認 ←CentOSの場合、/usr/bin/perl が正しい
- パーミッション755の確認
⑥ SSI(Server Side Include)確認 : http://127.0.0.1/~webs/test.shtml
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8<meta http-equiv="Content-Type" content="text/html; charset=euc-jp
<title>テスト</title>
<body>
SSIテスト
<!--#config timefmt="%Y/%m/%d %H:%M:%S" -->
<!--#echo var="DATE_LOCAL" -->
</body>
</html>
⑦ PHP確認 : http://127.0.0.1/~webs/test.php
<?php
phpinfo();
?>
以上で環境構築は完了、これからアプリ開発を続行する。
参考サイト
- http://kajuhome.com/apache.shtml
- http://centossrv.com/apache-userdir.shtml
- http://www.searchman.info/linux/1090.html
- http://www.jitaku-server.net/apache_cgi_trouble.html
- http://www.aconus.com/~oyaji/faq/apache_cgi3.htm
- http://saminnet.dip.jp/servercomputer/Lmemo/net/apache03.html
Mojolicious(モジョリシャス) [WEBサービス]
Mojoliciousとは
- 素晴らしいMVCのWebフレームワーク。Mojolicious::Liteを通じて簡略した単一ファイルモードをサポート。
強力なツールを同梱。レストフルなルート(routes)、Perlスタイルのテンプレート、セッション管理、署名つき(signed)クッキー、テストフレームワーク、静的ファイルサーバ、I18N、最上のUnicodeサポート。その他探せばもっと見つかります。
- とてもクリーンで、ポータブルで、オブジェクト指向の純粋なPerl API(隠れた魔術は使われていません)。必要な要件はPerl 5.10.1以上であることだけ。 (ですが5.12以上をおすすめします。インストールされていれば、オプショナルなCPANモジュールが、より高度な機能を提供するために利用されるでしょう。)
- フルスタックのHTTP 1.1とWebSocketを実装したクライアントとサーバの実装。IPv6、TLS, Bonjour, IDNA, Comet (long polling),チャンキング(chunking)、マルチパート(multipart)をサポート。
- 組み込みの非同期IOとプリフォークサーバ。libev、ホットデプロイメント。これらすべてが完全に埋め込まれています。
- 自動的なCGIとPSGIの検知。
- JSONとCSS3セレクタを持つXML/HTML5パーサをサポート。
- Catalystを開発した長年の経験の上に構築された新鮮なコード
以上 https://github.com/yuki-kimoto/mojolicious-guides-japanese/wiki より
- Mojolicious : 中規模以上用
- Mojolicious::Lite : 小規模用
インストール
以下のコマンドで完了。
$ sudo sh -c "curl -L cpanmin.us | perl - Mojolicious"
起動
以下のファイルを作成しコマンドラインから起動します。
use Mojolicious::Lite;
get '/' => {text => 'Hello World!'};
app->start;
サーバーが立ち上り、ブラウザからのアクセス状況を報告しています。
ブラウザにはこのように表示されました。
ここまでは簡単にできました。これから使い込んでみます。
Perlの結果をHTMLに出力させる方法 [WEBサービス]
プロキシ環境でWEBアプリを開発していると、頻繁にHTMLエラーが発生して中断することが多く効率が悪い。スクリプトをサーバーにアップし、そこからPerl スクリプトの処理結果をWeb上で確認する方法が可能か調べた。
以下のようにスクリプトを書いてブラウザから呼び出せば表示できる。ただしファイルの属性を755にしておくことを忘れないように。
#!/usr/bin/perl
my $text = "これはCGIからHTMLに文字を出力するPerlスクリプトです。";
#// HTML 出力
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<P>";
print $text;
print "</P>\n";
print "</HTML>\n";#// 終了
exit(0);
実行例:
http://kazu-oyaji.com/projects/cgi/index.cgi
LWP::UserAgent をプロキシ環境で使用する。[perl] [WEBサービス]
以下のコードを実行すると、”500 Can't connect to gihyo.jp:80 (Bad hostname 'gihyo.jp')”となる。プロキシサーバー環境のため、Linuxコンソールの環境変数にプロキシを設定したが解決できない。
use URI;
use LWP::UserAgent;my $uri = URI->new('http://gihyo.jp/');
my $ua = LWP::UserAgent->new();
my $res= $ua->get( $uri );
die $res->status_line if $res->is_error;my ($title) = $res->content =~ m!<title>(.+?)</title>!i;
print "$title\n";
WEB情報を調べた結果、 $ua->env_proxy; というコードを見かけたので追加してみた。
my $uri = URI->new('http://gihyo.jp/');
my $ua = LWP::UserAgent->new();
$ua->env_proxy;
my $res= $ua->get( $uri );
die $res->status_line if $res->is_error;my ($title) = $res->content =~ m!<title>(.+?)</title>!i;
print "$title\n";
これで解決!
トップページ|gihyo.jp … 技術評論社
が返ってきました。