約 3,764,626 件
https://w.atwiki.jp/ochamemo/pages/49.html
準備 Ubuntu8.04の日本語ローカライズ版をインストール。 ホストからゲストへ接続できるようにする。 IPを控える hostファイルの編集 ポート転送 SSHを使えるようにする 必要なものを入れていく 準備 Ubuntu8.04の日本語ローカライズ版をインストール。 インストールが終わったらとりあえず最新版にアップデートしておく。 ホストからゲストへ接続できるようにする。 ホストからゲストへ接続するには以下の2種類がある。 ポート転送 hostファイルの編集 もともとポート転送は、外部ネットワークからVMWareにつなげるために使うもの(ホストへのアクセスをVMWareのゲストOSへの接続に変換する)。 従って、外部からVMware上のサーバに接続する予定がなければわざわざポート転送で設定する必要もない。経験上、ポート転送だとうまくいかないことが多かったため、できればhostsファイルの編集のみで済ませたほうが楽。 IPを控える あらかじめVMWare上のターミナルなどで下記コマンドを実行してIPアドレスをメモしておく。 /sbin/ifconfig hostファイルの編集 以下のようhostoファイルを編集する。 C /Windows/System32/drivers/etc/hosts 192.168.133.128 ubuntu ポート転送 VMware Playerのインストールフォルダのなかに、vmnetcfg.exeというアプリケーションがあるので、これを起動します。 「NAT」というタブを開いて、[編集]ボタンをクリック。 [ポートの転送]ボタンをクリック。 「受信TCPポート」の[追加]ボタンをクリック。 転送先のIPアドレスは、ゲストOSに割り振られたIPアドレスになります。 使用したいポート(22,80など)を指定して上記IPアドレスを登録する SSHを使えるようにする Ubuntuデスクトップのターミナルからインストール。これ以降はputtyから作業する。 sudo apt-get install openssh-server 必要なものを入れていく ########################################## # emacs ########################################## sudo apt-get install emacs22 sudo apt-get install tramp ########################################## # subversion ########################################## sudo apt-get install subversion ########################################## # apacheとか ########################################## sudo apt-get install apache2 # ここでlocalhostにアクセスし確認 # http //localhost/ ########################################## # memcached # 念のため入れておく ########################################## sudo apt-get install memcached # 起動確認 ps aux|grep memcached sudo /etc/init.d/memcached start ps aux|grep memcached ########################################## # php関係 ########################################## # 基本 sudo apt-get install php5 libapache2-mod-php5 # ここでlocalhostにアクセスし確認 #下記をドキュメントルートにおいて確認する # vi /var/www/test.php ?php phpinfo() ? # 再起動 sudo /etc/init.d/apache2 restart # 以下で確認 # http //localhost/test.php # なにかと必要なので次もインストール sudo apt-get install php5-cli sudo apt-get install php-pear # phpize に必要 sudo apt-get install php5-dev # php extention のcコンパイルに必要 sudo apt-get install build-essential # extensionたち sudo apt-get install php5-mcrypt sudo apt-get install php5-memcache sudo apt-get install php5-curl ########################################## # simplate extension ########################################## mkdir php-ext cd php-ext/ sudo wget http //simplate.aimy.jp/archive/simplate-0.3.2.tar.gz tar xvfz simplate-0.3.2.tar.gz cd simplate phpize ./configure make make test sudo make install ########################################## # extensionをphp.ini追加 ########################################## sudo vi /etc/php5/apache2/php.ini extension=curl.so extension=mcrypt.so extension=memcache.so extension=pdo.so extension=simplate.so # 再起動 sudo /etc/init.d/apache2 restart ########################################## # phpinfoで確認 ########################################## # 以下のextensionが有効になっていること simplate mcrypt curl memcache ########################################## # ruby ########################################## sudo apt-get install ruby sudo apt-get install rubygems sudo apt-get install ruby1.8-dev # gemsのリポジトリの更新 sudo gem update --system # しかしアップデートしたらエラーが出るようになってしまった。。。 # http //d.hatena.ne.jp/bottleneck/20080112/1200135756 を参考にソースを修正 sudo emacs /usr/bin/gem # /usr/bin/gemの10行目(require rubygems の下の行)に下記を追加 require rubygems/gem_runner # scrapiのインストール sudo gem install scrapi ########################################## ○指定ホストを登録 hostsファイルに登録したいホスト名を記述する C /WINDOWS/system32/drivers/etc/hosts 127.0.0.1 localhost 127.0.0.1 localhost.goo.web 127.0.0.1 localhost.goo.blog 127.0.0.1 localhost.wpedia DOS窓で下記を実行 nbtstat -R Firefoxブラウザで上記のホスト名を無視するように設定 - ツール - オプション - 詳細 - ネットワークタブ - 接続設定ボタン ○ubuntu側のアパッチの設定 sudo emacs /etc/apache2/sites-available/default アパッチの起動方法など sudo /etc/init.d/apache2 start sudo /etc/init.d/apache2 restart sudo /etc/init.d/apache2 stop 確認場所 http //localhost/apache2-default/ 設定ファイルの場所 /etc/apache2/sites-available/ ドキュメントルート /var/www/ ログの場所 /var/log/apache2/ ########################################## # MySQL(triton) ########################################## cd ~ mkdir downloads cd downloads wget http //jaist.dl.sourceforge.jp/tritonn/31595/tritonn-1.0.10-mysql-5.0.51a-linux-i686.tar.gz tar xvfz tritonn-1.0.10-mysql-5.0.51a-linux-i686.tar.gz scripts/mysql_install_db cd tritonn-1.0.10-mysql-5.0.51a-linux-i686/ cd ../ sudo mv tritonn-1.0.10-mysql-5.0.51a-linux-i686 /usr/local/mysql cd /usr/local/mysql sudo groupadd mysql sudo useradd -g mysql mysql sudo chown -R root root . sudo chown -R mysql root data cd /usr/local/mysql sudo chown -R root root . sudo chown -R mysql root data # 権限データベースの初期データを生成 scripts/mysql_install_db -umysql # /etc/profileに以下を追加 export PATH=$PATH /usr/local/mysql/bin/ # 起動確認 cd /usr/local/mysql/bin ./mysqld_safe -umysql # とりあえず停止 ./mysqladmin -uroot shutdown # サービスとして登録 cd /usr/lcal/mysql sudo cp support-files/mysql.server /etc/init.d/mysql sudo /etc/init.d/mysql start sudo /etc/init.d/mysql stop #sudo chkconfig --add mysql ########################################## # MySQL/ruby(c言語ネイティブ) ########################################## cd /usr/local/src sudo wget http //tmtm.org/downloads/mysql/ruby/mysql-ruby-2.7.6.tar.gz sudo tar xvfz mysql-ruby-2.7.6.tar.gz cd mysql-ruby-2.7.6 sudo ruby extconf.rb --with-mysql-dir=/usr/local/mysql # ただmakeするとエラーが出ることがあるので、libmysqlclient.soの場所を指定して、makeする。 locate libmysqlclient.so # 表示されたパスをLD_RUN_PATHに指定してmake env LD_RUN_PATH=/usr/local/mysql/lib/ make sudo ruby ./test.rb localhost root sudo make install ########################################## # MySQLについて ########################################## # /etc/profileに以下を追加 export PATH=$PATH /usr/local/mysql/bin/ # デーモンの起動方法 sudo /usr/local/mysql/bin/mysqld_safe -umysql # クライアントの起動 /usr/local/mysql/bin/mysql -uroot # ログの場所 sudo tail -f /usr/local/mysql/data/ubuntu-vm.err # rubyによるアクセステスト test.rb #!/usr/bin/env ruby require mysql #db = Mysql new("host", "user", "passwd", "db") db = Mysql new("localhost", "root", "", "wpedia_dev") res = db.query( select * from contents ) res.each do |row| #rowは結果の配列 puts row.join("\t") end db.close ########################################## # Java ########################################## sudo apt-get install sun-java6-jdk #----------------------------------------- # java-docはなぜか特殊で、個別にzipファイルをダウンロードし、/tmpにおく必要がある。 #(apt-get するとそのようなメッセージが表示される) # とうことでhttp //java.sun.com/javase/downloads/にブラウザを使ってアクセスし、日本語版のjavadocをダウンロード # jdk-6-doc-ja.zip # ダウンロードしたら #----------------------------------------- sudo apt-get install sun-java6-doc ########################################## # tomcat ########################################## sudo apt-get install tomcat5.5-admin tomcat5.5-webapps libapache2-mod-jk #----------------------------------------- # tomcat コネクタ #----------------------------------------- sudo emacs -nw /etc/libapache2-mod-jk/workers.properties workers.tomcat_home=/usr/share/tomcat5.5 workers.java_home=/usr/lib/jvm/java-6-sun/ #----------------------------------------- # httpd.conf #----------------------------------------- sudo emacs -nw /etc/apache2/sites-available/default #先頭に以下を追加しておく ServerName 127.0.0.1 # tomcatoの設定を一番下にでも追加 IfModule mod_jk.c JkWorkersFile /etc/libapache2-mod-jk/workers.properties JkLogFile /var/log/apache2/mod_jk.log JkLogLevel info JkLogStampFormat "[%a %b %d %H %M %S %Y] " JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" #/jsp-examples/, /manager/, /admin/以下のアクセスをworkerに転送 JkMount /jsp-examples/* ajp13_worker JkMount /manager/* ajp13_worker JkMount /admin/* ajp13_worker /IfModule #----------------------------------------- #ユーザを追加する #----------------------------------------- sudo emacs -nw /usr/share/tomcat5.5/conf/tomcat-users.xml user username="admin" password="admin" roles="admin,manager"/ #----------------------------------------- # そしてApacheとTomcatの再起動 #----------------------------------------- sudo /etc/init.d/apache2 restart sudo /etc/init.d/tomcat5.5 restart #----------------------------------------- # 確認用URL #----------------------------------------- http //ubuntu/admin/ http //ubuntu/jsp-examples/
https://w.atwiki.jp/prism_party/pages/10.html
概要 5つのグループから1番人気の低いアイドルを集めたアイドルグループ。全員オーディション番組に出ていた事もあり、10代〜20代前半に人気なグループ。 キャッチコピーは「私たちをみて!」。 メンバー 担当カラー 身長 補足 みあや 深緑色 167cm リーダー、元 IMAGEメンバー もとか 群青色 174cm 元 失楽園メンバー ちまき 黄色 157cm 元 Pegasusメンバー こまり 赤色 152cm センター、元 BLACKSHEEPメンバー くるみ 薄桃色 163cm 元 EFメンバー
https://w.atwiki.jp/nicepaper/pages/176.html
フィールドデータを削除する場合のコマンドについて考えていきたいと思います。8月13日記事 目次 TRUNCATE TABLE テーブル名 DELETE FROM テーブル名 AUTO_INCREMENTの初期化 削除コマンドを走らせる以外にもデータを表示させない(消す)方法はある。 まとめ TRUNCATE TABLE テーブル名 TRUNCATEではDROP TABLEを行った上で再度同じテーブルを作成する AUTO_INCREMENTが設定されている場合はAUTO_INCREMENTの値は初期化できる。 障害がおこったときに前の状態に戻るというロールバックはできない 使用例(全フィールドデータを削除後、以前と同じテーブルの状態に戻す。) TRUNCATE TABLE テーブル名; DELETE FROM テーブル名 DELETEはTABLEデータを一つずつ削除する DELETEの場合はデータが削除されるだけでAUTO_INCREMENTの値は初期化できない。 障害がおこったときに前の状態に戻るというロールバックはできる。 使用例 DELETE FROM テーブル名 WHERE id = 1 ; AUTO_INCREMENTの初期化 AUTO_INCREMENTだけを初期化したいのであれば、 全削除後 以下のようにします。 ALTER TABLE table_name auto_increment = 1; 削除コマンドを走らせる以外にもデータを表示させない(消す)方法はある。 確かに、DELETEコマンドを走らせることでフィールドのデータを削除することができます。しかし、何度も消していると、ハードディスクのデータが飛び飛びで記録されていくようになり、フラグメンテーションを起こすようになってしまいます。そのため、ハードディスクにはエンドユーザには削除させるように見せかけるためにstatusカラムというものを作り、0は削除状態、1は下書き状態、2は公開状態というテーブル設計をすることで、見かけ上削除することができます。このようなテーブル設計の状態にしてあれば、もし、セキュリティホールをつかれて、データを削除されてしまった場合、statusカラムを0から2の状態等にすれば、データを簡単に復元することができます。 まとめ 全削除の場合はTRANCATEコマンド。 一つずつ削除の場合はDELETEコマンド。 statusカラムを設計し、statusカラムの状態2から0にするようなUPDATEコマンドを走らせることで、投稿のログを残したまま、フラグメンテーションを起こさず、データを保存することができます。(もし、ディスク領域がいっぱいになってきたらMySQLサーバにログインして、手で(管理者が独自にコマンドを走らせて)消すようにしましょう。) 以上
https://w.atwiki.jp/pangyaserver/pages/148.html
導入編 コンパイル編 MSSQL編 サーバー設定編 pak編集編 ダウンロード インストール ビルドGame Serverがコンパイルできない場合 文字コードエラーが出る場合 設定 ダウンロード Visual Studio Community 2017 https //my.visualstudio.com/Downloads?q=visual%20studio%202017 MySQL Connector (libmysql.dll) https //downloads.mysql.com/archives/c-c/ zip.dll zlib.dll https //img.atwiki.jp/pangyaserver/pub/zipdll.rar ソースコード https //github.com/Acrisio-Filho/SuperSS-Dev コンパイルが面倒な人 Server Buid -V2_1.rar BuildServerFiles.zip インストール ソースコードは緑のCodeボタンをクリックしてzipでダウンロード Visual StudioのインストールはMSアカウントのログインが必要 C++によるデスクトップ開発にチェックを入れてインストール MySQL Connectorは32bitのほうをダウンロードすること mysql-connector-c-6.1.11-win32.msiを実行してインストール ビルド Visual Studioを起動する ファイル→開く→プロジェクト/ソリューション からAuth Server.slnを開く Release x86に変更してビルド開始 終わったらReleaseフォルダにexeができあがっている ほかのソースも同じようにビルドする 以下のようなフォルダ構成になっていればよい Auth Server ├ config │ └ socket_config.ini ├ Log ├ Auth Server.exe ├ libmysql.dll ├ server.ini ├ zip.dll ├ zlib.dll Game Server ├ config │ └ socket_config.ini ├ data │ └ pangya_jp.iff ├ Log ├ csauth2.cfg ├ Auth Server.exe ├ libmysql.dll ├ server.ini ├ SMARTCALCULATORLIB.dll ├ zip.dll ├ zlib.dll GG Auth Server ├ config │ └ socket_config.ini ├ Log ├ csauth2.cfg ├ GG Auth Server.exe ├ libmysql.dll ├ server.ini ├ zip.dll ├ zlib.dll Login Server ├ config │ └ socket_config.ini ├ data │ └ pangya_jp.iff ├ Log ├ Login Server.exe ├ server.ini ├ zip.dll ├ zlib.dll Message Server ├ config │ └ socket_config.ini ├ data │ └ pangya_jp.iff ├ Log ├ libmysql.dll ├ Message Server.exe ├ server.ini ├ SMARTCALCULATORLIB.dll ├ zip.dll ├ zlib.dll Rank Server ├ config │ └ socket_config.ini ├ data │ └ pangya_jp.iff ├ Log ├ libmysql.dll ├ Rank Server.exe ├ server.ini ├ zip.dll ├ zlib.dll libmysql.dllは C \Program Files (x86)\MySQL\MySQL Connector C 6.1\lib フォルダにある configフォルダのsocket_config.ini、dataフォルダのpangya_jp.iffはすべて同じ Game Serverがコンパイルできない場合 personal_shop_manager.cppをGame Serverのプロジェクトに追加する 文字コードエラーが出る場合 ソリューションエクスプローラーから右クリックでC/C++のコマンドラインを開く /utf-8 を追加 設定 各フォルダのserver.iniファイルを編集する DBIP、DBNAME、DBUSER、DBPASSをすべてpangyaにする
https://w.atwiki.jp/intern_dictionary/pages/35.html
オラクルが開発するデータベースを管理、運用するためのシステムの一つ。 マイスキュルと読んではいけない。
https://w.atwiki.jp/sevenlives/pages/969.html
照合順序?
https://w.atwiki.jp/yumetore/pages/33.html
date Oracleに日付を取得 select sysdate from dual; 当月の末尾を取得 select last_day(sysdate) from dual; 日付方を指定して取得 select to_char(sysdate, YYYY/MM/DD hh24 mm ss ) from dual create selectを用いてテーブルをcreateするには ・MySQL: create table table_name (select * from other_table) ・Oracle: create table table_name as select * from other_table ・SQLServer: select * into table_name from other_table update delete
https://w.atwiki.jp/takaidohigasi/pages/13.html
人気商品一覧 @wikiのwikiモードでは #price_list(カテゴリ名) と入力することで、あるカテゴリの売れ筋商品のリストを表示することができます。 カテゴリには以下のキーワードがご利用できます。 キーワード 表示される内容 ps3 PlayStation3 ps2 PlayStation3 psp PSP wii Wii xbox XBOX nds Nintendo DS desctop-pc デスクトップパソコン note-pc ノートパソコン mp3player デジタルオーディオプレイヤー kaden 家電 aircon エアコン camera カメラ game-toy ゲーム・おもちゃ全般 all 指定無し 空白の場合はランダムな商品が表示されます。 ※このプラグインは価格比較サイト@PRICEのデータを利用しています。 たとえば、 #price_list(game-toy) と入力すると以下のように表示されます。 ゲーム・おもちゃ全般の売れ筋商品 #price_list ノートパソコンの売れ筋商品 #price_list 人気商品リスト #price_list
https://w.atwiki.jp/emulator/pages/28.html
フリーでオープンソースなMySQLのGUIツールです SQLDump絡みのIn/Exの使いやすさは素晴らしいです License GNU General Public License v2 Project Home Page http //code.google.com/p/sqlyog/ Subversion Repository http //sqlyog.googlecode.com/svn/ http //webyog.com/en/downloads.php ここの SQLyog MySQL GUI - Community Edition Binaries - Windows SQLyog Community Edition 6.11 (Stable) からダウンロードできます
https://w.atwiki.jp/zaku2/pages/13.html
CentOS/LAMP環境構築 [#daaee5a2]Apache [#h14e7d79] PHP [#b7abdf88] MySQL [#n5e295a1] PHPからMySQLのデータにアクセスする [#d7e16dfd] CentOS/LAMP環境構築 [#daaee5a2] ここでは、ゲストOS(CentOS)上に、LAMP環境を構築する手順を説明します。(スクリプト言語はPHPです。) インストールは、全てyumを使用しますので、特定のバージョンやコンパイルオプションが必要な場合は、rpmやソースからインストールして下さい。 Apache [#h14e7d79] Apacheをインストールします。Apacheデーモンの名前はapached、なら分かりやすいのですが、歴史的な理由?によりhttpdとなっています。 # yum install httpd インストールされたか確認します。 # yum list installed | grep -i httpd httpd.i386 2.2.3-22.el5.centos.2 installed インストールされました。 それでは、Apacheを起動してみます。 # /etc/init.d/httpd start httpd を起動中 httpd Could not reliably determine the server s fully qualified domain name, using 127.0.0.1 for ServerName [ OK ] 起動しました。が、ServerNameで、警告が出ているようです。 とりあえず、ServerNameをlocalhostと指定します。yumインストールの場合、設定ファイルは/etc/httpd/conf/httpd.confです。 # vi /etc/httpd/conf/httpd.conf #ServerName www.example.com 80 ↓ ServerName localhost では、Apacheを再起動します。 # /etc/init.d/httpd restart httpd を停止中 [ OK ] httpd を起動中 [ OK ] ついでに、OS起動時に自動起動する設定も行います。 # chkconfig httpd on # chkconfig --list | grep httpd httpd 0 off 1 off 2 on 3 on 4 on 5 on 6 off それでは、ホスト(Window)側から、ブラウザでアクセスしてみましょう。 URLにIPアドレスかホスト名を指定します。 IPアドレスの例)http //192.168.247.136/ ホスト名の例)http //centos/ Apache 2 Test Pageというタイトルのページが表示されましたでしょうか? うまくいかない場合、HTTPで利用される80番ポートがファイアーウォールで遮断されている可能性があります。ここでは、system-config-securitylevelツールでファイアーウォールの設定を行います。 # system-config-securitylevel まず、Customizeを選択してEnter。次に、WWW(HTTP)を選択(Spaceキー)してOK。再度OKで、設定完了です。 念のため、設定ができているか確認しましょう。 # cat /etc/sysconfig/iptables (略) -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT (略) さて、自宅マシンで開発環境を構築するといった用途であれば、毎回ファイアーウォールの設定に煩わされるのも何ですので、落としてしまうというのもありでしょう。 # /etc/init.d/iptables stop ファイアウォールルールを適用中 [ OK ] チェインポリシーを ACCEPT に設定中filter [ OK ] iptables モジュールを取り外し中 [ OK ] 自動起動からも除外します。 # chkconfig iptables off # chkconfig --list | grep iptables iptables 0 off 1 off 2 off 3 off 4 off 5 off 6 off それでは、もう一度、ブラウザからアクセスしてみましょう。 では、実際にHTMLを作成して確認してみましょう。 まず、ドキュメントルート(Webで公開されるディレクトリ)がどこかを確認します。 ドキュメントルートは設定ファイル(httpd.conf)のDocumentRootの値になります。 # cat /etc/httpd/conf/httpd.conf | grep ^DocumentRoot DocumentRoot "/var/www/html" /var/www/htmlとあります。では、/var/www/html以下にHTMLファイルを作ってみましょう。 # vi /var/www/html/hello.html h1 Hello Apache!! /h1 ではブラウザからアクセスしてみます。 IPアドレスの例)http //192.168.247.136/hello.html ホスト名の例)http //centos/hello.html PHP [#b7abdf88] 次にPHPをインストールしますが、yumでインストールできるPHPモジュールはたくさんあります。以下のコマンドでリストアップしてみます。 # yum list php-* Loaded plugins fastestmirror Loading mirror speeds from cached hostfile * base ftp.yz.yamagata-u.ac.jp * updates ftp.yz.yamagata-u.ac.jp * addons ftp.yz.yamagata-u.ac.jp * extras ftp.yz.yamagata-u.ac.jp Available Packages php.i386 5.1.6-23.2.el5_3 updates php-bcmath.i386 5.1.6-23.2.el5_3 updates php-cli.i386 5.1.6-23.2.el5_3 updates php-common.i386 5.1.6-23.2.el5_3 updates php-dba.i386 5.1.6-23.2.el5_3 updates php-dbase.i386 5.1.6-15.el5.centos.1 extras php-devel.i386 5.1.6-23.2.el5_3 updates php-gd.i386 5.1.6-23.2.el5_3 updates php-imap.i386 5.1.6-23.2.el5_3 updates php-ldap.i386 5.1.6-23.2.el5_3 updates php-mbstring.i386 5.1.6-23.2.el5_3 updates php-mcrypt.i386 5.1.6-15.el5.centos.1 extras php-mhash.i386 5.1.6-15.el5.centos.1 extras php-mssql.i386 5.1.6-15.el5.centos.1 extras php-mysql.i386 5.1.6-23.2.el5_3 updates php-ncurses.i386 5.1.6-23.2.el5_3 updates php-odbc.i386 5.1.6-23.2.el5_3 updates php-pdo.i386 5.1.6-23.2.el5_3 updates php-pear.noarch 1 1.4.9-4.el5.1 base php-pear-Auth-SASL.noarch 1.0.2-4.el5.centos extras php-pear-DB.noarch 1.7.13-1.el5.centos extras php-pear-Date.noarch 1.4.7-2.el5.centos extras php-pear-File.noarch 1.2.2-1.el5.centos extras php-pear-HTTP-Request.noarch 1.4.2-1.el5.centos extras php-pear-Log.noarch 1.9.13-1.el5.centos extras php-pear-MDB2.noarch 2.4.1-2.el5.centos extras php-pear-MDB2-Driver-mysql.noarch 1.4.1-3.el5.centos extras php-pear-Mail.noarch 1.1.14-1.el5.centos extras php-pear-Mail-Mime.noarch 1.4.0-1.el5.centos extras php-pear-Net-SMTP.noarch 1.2.10-1.el5.centos extras php-pear-Net-Sieve.noarch 1.1.5-2.el5.centos extras php-pear-Net-Socket.noarch 1.0.8-1.el5.centos extras php-pear-Net-URL.noarch 1.0.15-1.el5.centos extras php-pecl-Fileinfo.i386 1.0.4-3.el5.centos extras php-pecl-memcache.i386 2.2.3-1.el5_2 extras php-pgsql.i386 5.1.6-23.2.el5_3 updates php-readline.i386 5.1.6-15.el5.centos.1 extras php-snmp.i386 5.1.6-23.2.el5_3 updates php-soap.i386 5.1.6-23.2.el5_3 updates php-tidy.i386 5.1.6-15.el5.centos.1 extras php-xml.i386 5.1.6-23.2.el5_3 updates php-xmlrpc.i386 5.1.6-23.2.el5_3 updates ここから、必要なモジュールをインストールしましょう。 ここでは、PHP本体、マルチバイト対応モジュール、MySQLモジュールをインストールします。(他は必要になってからインストールします。) # yum install php php-mbstring php-mysql この時、phpの他のライブラリや、perl-DBI、mysqlといったものも同時にインストールされる場合がありますが、これは上記3つのパッケージのインストールに必要なパッケージのため同時にインストールされるためです。Perlが混入していることに驚かないで下さい。 では、インストールされたか確認します。 # yum list installed | grep -i php php.i386 5.1.6-23.2.el5_3 installed php-cli.i386 5.1.6-23.2.el5_3 installed php-common.i386 5.1.6-23.2.el5_3 installed php-mbstring.i386 5.1.6-23.2.el5_3 installed php-mysql.i386 5.1.6-23.2.el5_3 installed php-pdo.i386 5.1.6-23.2.el5_3 installed さて、次はPHPデーモンの起動だな、と思われた方。勘が良いです。 が、残念ながらPHPはその必要はありません。PHPは常時起動しておくようなデーモンではなく、Apacheデーモン上から呼び出されて動作するためです(*1)。 とりあえずは、PHPはApacheの拡張言語のようなものと認識しておくとよいかもしれません。(そういった意味では、これからApacheプログラミングをやろうとしているのです!!) ちなみに、デーモンとは常時起動していろんなことをしてくれる(英語で言うとサーブしてくれる)プログラムで、サービスとも呼ばれます。つまり、デーモン、サービス、サーバーはかなり意味的に近いものです。Linuxが初めての方は、デーモンとは24時間営業のコンビニのようなものと考えておくとよいかもしれません。 では、PHPが実際にインストールされているか確認しましょう。以下のコマンドで、PHPがインストールされていれば、PHPのバージョンを表示できます。 # php -v PHP 5.1.6 (cli) (built Apr 7 2009 08 00 04) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies うまくインストールされているようです。5.1.6はいささか古いバージョンですが、横着してyumでインストールしているので辛抱しましょう。 では、Apacheのドキュメントルートディレクトリに簡単なPHPスクリプトを作成し、ブラウザから確認してみましょう。拡張子は.phpとします。 # vi /var/www/html/hello.php h1 ?php echo "Hello PHP!!" ? /h1 ではブラウザからアクセスしてみます。 IPアドレスの例)http //192.168.247.136/hello.php ホスト名の例)http //centos/hello.php さて、どのように表示されたでしょうか?おそらくPHPが実行されず、テキストデータとしてコードそのものが表示されているはずです(何も表示されない場合はHTMLのソースを表示してみてください)。これは、ApacheがPHPを認識できていないためです。 Apache側にPHPスクリプトを動作させる設定を加えます。通常Apacheの設定はhttpd.confで行いますが、yumでPHPをインストールした場合はPHP用の設定ファイルphp.confがconf.dディレクトリ作成されていますので、こちらに設定を行います。 # vi /etc/httpd/conf.d/php.conf AddType text/html .php ↓ AddType application/x-httpd-php .php また、php5_moduleというApacheモジュールを読み込む設定も必要なのですが、 こちらは、php.conf内にすでに記述されているはずです。 LoadModule php5_module modules/libphp5.so php.confの存在を知らずに、httpd.confにこの設定を記述してしまうと、モジュールを2度読み込み、Apache起動時に以下の警告が出ますので気をつけましょう。 [warn] module php5_module is already loaded, skipping それでは、設定を反映させるために、Apacheを再起動します。 # /etc/init.d/httpd restart httpd を停止中 [ OK ] httpd を起動中 [ OK ] 再度、ブラウザからhello.phpを確認してみましょう。 次にPHPの設定を行います。上記のように、特に設定しなくても普通に動作するのですが、ここでは最低限行っておいた方がよい設定だけを抜粋します(*2)。 デフォルトでは設定ファイルは/etc/php.iniにあります。 # vi /etc/php.ini 360行目あたり(エラー報告のレベルを厳密にします) error_reporting = E_ALL ↓ error_reporting = E_ALL | E_STRICT エラー報告のレベルが厳密でなければ、間違った書き方や古い書き方をしていても通知されず、バグが混入する確立が増えてしまいます。 すべての警告を表示することは、どの言語であっても、また初心者上級者問わず、必ず行っておくべきことのひとつだと考えます(*3)。 367行目あたり(エラーを表示します) display_errors = Off ↓ display_errors = On ※この設定は、本番運用時にはOffにしなければいけません。 639行目あたり(タイムゾーンの設定をします) ;date.timezone = ↓ date.timezone = Asia/Tokyo 1125行目あたり(マルチバイト文字の設定を日本語にします) ;mbstring.language = Japanese ↓ mbstring.language = Japanese 1130行目あたり(マルチバイト文字の内部文字コードをUTF8にします) ;mbstring.internal_encoding = EUC-JP ↓ mbstring.internal_encoding = UTF-8 設定が完了したら、Apacheを再起動します。 # /etc/init.d/httpd restart MySQL [#n5e295a1] MySQLをインストールします。 # yum install mysql mysql-server ※前述のPHPインストールの手順でインストールした場合、「mysql」はすでにインストールされていますが、上記のコマンドで問題ありません。 インストールされてか確認します。 # yum list installed | grep -i mysql mysql.i386 5.0.45-7.el5 installed mysql-server.i386 5.0.45-7.el5 installed perl-DBD-MySQL.i386 3.0007-2.el5 installed php-mysql.i386 5.1.6-23.2.el5_3 installed 次に、MySQLデーモンを起動します。初回のみ、データベースの初期化が行われるので、少し時間がかかります。 # /etc/init.d/mysqld start MySQL データベースを初期化中 Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands /usr/bin/mysqladmin -u root password new-password /usr/bin/mysqladmin -u root -h test01 password new-password See the manual for more instructions. You can start the MySQL daemon with cd /usr ; /usr/bin/mysqld_safe You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script! The latest information about MySQL is available on the web at http //www.mysql.com Support MySQL by buying support/licenses at http //shop.mysql.com [ OK ] MySQL を起動中 [ OK ] 実際にどのようなプロセスが起動しているのかは、psコマンドで確認することができます。(起動オプションも確認できます。) # ps aux | grep mysql root 8433 0.0 0.1 5420 1148 pts/0 S 03 45 0 00 [↓実際は一行] /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid mysql 8493 0.0 2.3 126120 18536 pts/0 Sl 03 45 0 00 [↓実際は一行] /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock pstreeを見ると、まず、mysqld_safeが起動され、mysqld_safeからmysqldが起動されているようです。 # pstree ちなみに、mysqldはmysqlというユーザで起動されています。mysqlというユーザーは作成した覚えがないですが、どうやら自動的に作成されているようです。 # cat /etc/passwd ※ファイル最下部に追加されている。 Apacheと同様、OS起動時に自動起動する設定も行います # chkconfig mysqld on # chkconfig --list | grep mysqld httpd 0 off 1 off 2 on 3 on 4 on 5 on 6 off さて、無事、インストール・起動ができました。では実際にデータベース内を見てみたいのですが、どうしたらよいでしょう? それには、mysqlというツールを利用します。名前がまんまでややこしいですが、実はyum install時のmysqlとはこのツールのことだったのです。 mysqlを起動します。 # mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version 5.0.45 Source distribution Type help; or \h for help. Type \c to clear the buffer. するとmysqlプロンプトが立ち上がります。mysql は、シェルコマンドでなく、MySQLの命令(例えばSQL等)を入れてくださいという合図です。 例えば、データベースの一覧を見るには、SHOW DATABASES; と入力します。 mysql SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec) 現状では、MySQLにパスワードが設定されていません。ここではlocalhostからrootユーザーによってアクセスされた場合のパスワードを設定します(*4)。 mysql SET PASSWORD FOR root@localhost=PASSWORD( xxxxx ); Query OK, 0 rows affected (0.00 sec) ※xxxxxの部分は、実際に好きな文字列を入れてください(*5)。 では、一旦mysqlを終了します。 mysql exit Bye 次に、先ほどと同様にmysqlを起動してみましょう。 # mysql ERROR 1045 (28000) Access denied for user root @ localhost (using password NO) パスワードがないので、アクセスできませんと怒られました。 では、以下のオプションを付けて、mysqlを起動します。 # mysql -u root -p Enter password パスワードを聞かれますので、先ほど設定したパスワードを入力すると、mysqlプロンプトが起動します(*6)。 では、実際のデータを格納してみましょう。 まずは、lampという名前のデータベースを作成します。 mysql CREATE DATABASE lamp DEFAULT CHARACTER SET utf8; Query OK, 1 row affected (0.00 sec) 作成されたか確認します。 mysql SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | lamp | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) 以降、lampデータベースで作業するため、lampデータベースに移動します。これは、Linuxでいうカレントディレクトリを移動するようなものだと考えてください。 mysql USE lamp Database changed 次にテーブルを作成します。以下のSQLを入力しようと思います。 CREATE TABLE language ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(10) NOT NULL, note VARCHAR(100) NOT NULL ); これを、mysqlプロンプトにコピー&ペーストしましょう。 mysql CREATE TABLE language ( - id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - name VARCHAR(10), - note VARCHAR(100) - ); Query OK, 0 rows affected (0.01 sec) ちなみに、SQLは小文字大文字の区別をしませんが、MySQLの予約語を大文字に、カラム名やテーブル名を小文字にすれば、SQLの見た目が分かりやすくなります(*7)。 テーブルが作成されたか確認します。 mysql DESC language; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(10) | YES | | NULL | | | note | varchar(100) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ 3 rows in set (0.01 sec) 次にテーブルにデータを挿入します。以下SQLをmysqlプロンプトにながしてください。 INSERT INTO language (name, note) VALUES ( PHP , 初心者でも使いやすい ); INSERT INTO language (name, note) VALUES ( Perl , かつては一世を風靡した ); INSERT INTO language (name, note) VALUES ( Ruby , Railsで火がついた国産言語 ); INSERT INTO language (name, note) VALUES ( Python , 米国での利用者はとても多い ); データを確認します。 mysql SELECT * FROM language; +----+--------+-----------------------------------------+ | id | name | note | +----+--------+-----------------------------------------+ | 1 | PHP | 初心者でも使いやすい | | 2 | Perl | かつては一世を風靡した | | 3 | Ruby | Railsで火がついた国産言語 | | 4 | Python | 米国での利用者はとても多い | +----+--------+-----------------------------------------+ 4 rows in set (0.00 sec) PHPからMySQLのデータにアクセスする [#d7e16dfd] 先ほど作成した、languageテーブルを利用します。 以下のプログラムを作成し、/var/www/html/mysql.phpという名前で保存してください。 ?php $db = mysql_connect( localhost , root , password ); if (!$db) { die( MySQL接続失敗 . mysql_error()); } $db_selected = mysql_select_db( lamp , $db); if (!$db_selected) { die( データベース選択失敗 . mysql_error()); } $result = mysql_query( SELECT * FROM language , $db); if (!$result) { die( クエリ選択失敗 . mysql_error()); } while ($row = mysql_fetch_assoc($result)) { echo id . $row[ id ] . br / ; echo name . $row[ name ] . br / ; echo note . $row[ note ] . br / ; echo hr / ; } ※ちなみに、PHPのコードのみで構成される場合、ファイル末尾の「? 」は必要ありません。これは近年主流の書き方なので慣れておくと良いでしょう。 それでは、ブラウザから確認してみましょう。 もしどこかでこけた場合、エラーメッセージをたよりに、問題を解決してください。