Apache Mysql php5 インストール

Debian GNU/Linux徹底入門第3版 Sarge対応
Debian GNU/Linux徹底入門第3版 Sarge対応
12.04でphp5.5 Apache2.4にしたので、そのままのがおおいかな? Apache、php、mysql を一気にインストールできます。PRADOに必要なsqlite、pukiwiki advのインストール環境である、curl mecab モジュールも入れます。
$ sudo apt-get install php5 libapache2-mod-php5 mysql-server php5-mysql php5-sqlite php5-cli php5-dev php5-curl g++ mecab mecab-jumandic-utf8 libmecab-dev php-pear
途中で Mysql の root 用のパスワードを聞いてきますので入力します。

でもって php-mecab のインストール
$ sudo pear channel-discover pecl.opendogs.org
$ sudo pear remote-list -c opendogs
$ sudo pear install opendogs/mecab-beta
最後のコマンドで途中 specify pathname to mecab-config [no] : がでるけどここは Enter でいいらしい。Build process completed successfully 最後の方に出てればokかな.. エラーが出たら、パッケージ足りないのが分かるはず。それはapt-get 。macab.so を設置しろとでるね
$ sudo vi /etc/php5/apache2/conf.d/mecab.ini
新しいファイルができるので、
extension=mecab.so

Apache 設定変更

できるPRO Apache Webサーバー Apache2/1.3対応 (できるPROシリーズ)
できるPRO Apache Webサーバー Apache2/1.3対応 (できるPROシリーズ)
Default のルートの位置を変更。
$ cd /home/felix
$ mkdir www
$ mkdir ./www/default
$ cd /etc/apache2/sites-enabled/
$ sudo vi ./000-default
$ sudo vi /etc/apache2/sites-enabled/000-default
ここで、9行目あたりから変更 Requre all granted は、2.4 からの書き方みたいよ
       ServerName felix-labo.org
       ServerAdmin webmaster@localhost
       DocumentRoot /home/felix/www/default
       <Directory /home/felix/www/default/>
               Options FollowSymLinks MultiViews
               AllowOverride None
               Require all granted
       </Directory>

つづいて....

sudo vi /etc/apache2/envvars

export APACHE_RUN_USER=felix
export APACHE_RUN_GROUP=felix

開発環境なので自パソコン以外からはアクセスできないようにしておきます。

$ sudo vi /etc/apache2/ports.conf

で9行目あたりを   

Listen 127.0.0.1:80

に変更します。

Could not reliably determine the server's fully qualified domain name のエラーが...

ホストに明示的にホスト名を記入しないとだめらしい。×××.×× みたいなやつ

$ sudo vi /etc/hosts

で、

127.0.0.1       localhost
127.0.1.1       felix-labo.org felix-IN-WIN

こんな風にしとくとOK

再起動はおきまり

$ sudo /etc/init.d/apache2 restart

テスト表示

$ vi /home/felix/www/default/index.php

<?php
  phpinfo();
?>

これで localhost でphpinfo みえるかな? curl mecab 有効なら大成功

php.ini の設定

php.iniの内容を書き換え。PHP5.5では初なので、あやしい
$ sudo vi /etc/php5/apache2/php.ini
書き換える内容は以下。コメント化をはずすだけのものもあります。
(396行目付近)
memory_limit=-1  マイナス1 メモリリミットなし
(469行目付近)
display_errors=On  PDT環境なのでエラー表示させる
(541行目付近)
html_errors=On   HTML成型されてエラー表示:
(774行目付近)
default_charset = "UTF-8"
(869行目付近)
date.timezone ="Asia/Tokyo"   timezone指定しないとエラーがでるときあり。
(1657行目付近)
mbstring.language = Japanese
(1663行目付近)
mbstring.internal_encoding = UTF-8

ここまでの内容を /etc/php5/cli/php.ini の方も書き換える必要があります。以下でコピー

$ cd /etc/php5/apache2/
$ sudo cp -a ./php.ini ../cli/php.ini

Mysql の設定

MySQL5構築ガイド オープンソース高速データベースとApache、PHP、Perl、Javaを使ったWeb+DBプログラミン
MySQL5構築ガイド オープンソース高速データベースとApache、PHP、Perl、Javaを使ったWeb+DBプログラミン
mysqlのデフォルト文字コードを設定しておきます。でないとUTF-8で文字化けします。/etc/mysql/my.cnf を編集します。
$ cd /etc/mysql
$ sudo vi ./my.cnf
以下の2行を[mysqld]の最後([mysqldump]の前)に追加します。118行目付近に追加します。出力をUTF8に揃えるためです。Ver5.5から記述が少し変わっている様です。:q
character-set-server=utf8
skip-character-set-client-handshake
mysqlをリスタートします。
$ sudo /etc/init.d/mysql restart
初期設定状態では、mysqlはユーザー名:root だけが上記で設定したパスワードで設定されています。一度、実際にパスワード付きでログインしてみます。
$ mysql -u root -p
パスワードを入力して、ログインできたら、Webコンテンツ用のデータベース実行ユーザーを設定をします。
mysql> create database webkintai;
mysql> create user felix@localhost identified by 'pppppppq';
mysql> grant usage on *.* to felix@localhost;
mysql> grant all on webkintai.* to felix@localhost;
簡単に解説をすると一行目でウェブページ用のデータベースを作成し、二行目で実行ユーザーを作ります。三行目で作ったユーザーに対するすべての権限を剥奪(usage)します。その後、Webkintai に対してだけすべての権限を付与します。終わったらログアウトします。
mysql>quit

PhpMyAdmin のインストール

apt-get でいけるのはありがたいけど。。。 ここにもApache2.4の余波がw
$ sudo apt-get install phpmyadmin 
$ sudo vi /etc/phpmyadmin/apache.conf
で最後の方を書き換え
<Directory /usr/share/phpmyadmin/libraries>
   #Order Deny,Allow
   #Deny from All
   Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
   #Order Deny,Allow
   #Deny from All
   Require all denied
</Directory>
このファイルも中途半端に2.4の書き方だったりして、ちょっと嫌ね。。。
Apache2.4は、sites-enables/ に登録して、a2endonf しないと、読み込まないみたい..
$ sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
$ sudo a2enconf phpmyadmin
これで、あとは、
$ sudo /etc/init.d/apache2 restart

リンクテーブルを処理するための追加機能を有効化

エラー出てるのは知っていたけど... たしかsqlブックマークできたりするんだっけかな。。。

$ cd /usr/share/doc/phpmyadmin/examples/
$ sudo zcat create_tables.sql.gz>/home/felix/create_tables.sql
$ cd /home/felix/
$ mysql -uroot -p < ./create_tables.sql
$ mysql -uroot -p

mysqlにはいったら、ユーザー設定

grant all on phpmyadmin.* to felix@localhost;
quit

続いて、config.inc.php を編集

$ sudo vi /etc/phpmyadmin/config.inc.php

以下のように編集 118行目あたりから、ユーザー情報更新して、コメント化して、最後の二行は追加

/* Optional: User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'flabo';
$cfg['Servers'][$i]['controlpass'] = 'flabo';

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';

最後の行に以下を追加

$cfg['blowfish_secret'] = 'hoge-hoge';

これでエエんやないかな。。。

mcrypt 拡張がありません。php の設定をチェックしてみてください

どうもコピー忘れだとかww 
$ cd /etc/php5/mods-available
$ sudo cp -a ./mcrypt.ini /etc/apache2/mods-available/
$ sudo php5a2enmods mcrypt
$ sudo /etc/init.d/apache2 restart
これでOK

PostgreSQL phpPgAdmin のインストール

改訂第5版 PC UNIXユーザのための Postgre SQL 完全攻略ガイド
改訂第5版 PC UNIXユーザのための Postgre SQL 完全攻略ガイド
$ sudo apt-get install postgresql php5-pgsql
PostgreSQLはサーバーユーザーではなくデータベースユーザを管理していて、デフォルトではpostgresというユーザのみが登録されています。このユーザーのパスワードを設定してログインし、その後、一般的に使用するユーザーを一人登録します。
$ sudo passwd postgres
(ここでパスワードを設定します。)
$ su - postgres
(以下で一般的に使用するユーザーを作ります。username を任意の名前にしてください)
postgres@mv1c3e:~$ createuser -P username
(ここでパスワード設定)
postgres@mv1c3e:~$ logout
続いて、Web上で操作ができるphpPgAdminをインストールします。
$ sudo apt-get install phppgadmin
Apache設定が...
$ sudo vi /etc/apache2/conf.d/phppgadmin
で、8行目付近を以下の様に変更...2.4対応でねww
# order deny,allow
# deny from all
# allow from 127.0.0.0/255.0.0.0 ::1/128
# allow from all
Require ip 192.168.11 127.0.0.1
postgresqlはほとんどつかっていないので、LAN内アクセスで充分なので、この書き方 で、ここでもApache2.4の設定...
$ cd /etc/apache2
$ sudo cp -r ./conf.d/phppgadmin ./conf-available/phppgadmin.conf
$ sudo a2enconf phppgadmin
$ sudo /etc/init.d/apache2 restart

これで、 localhost/phppgadmin でページ表示されるんじゃまいか ログインは、上記で作った ユーザー名とパスワードで行います。

xdebag のインストール

デバッカです。apt-get だけでいけるみたいです。
sudo apt-get install php5-xdebug
apache リスタート
sudo /etc/init.d/apache2 restart

JDK のインストール

PDT(Eclpse)を動かすにはJavaが必要です。Oracle がSunを買収した影響がでてますね。。 JRE もしくは、JDKを入れます。
$ sudo apt-get install openjdk-7-jdk

PDT(PHP Develop Tool)のインストール

all-in-one を手動でダウンロード&解凍しました。http://www.eclipse.org/pdt/downloads/ 解凍は
$ tar xvf ./eclipse-php-luna-R-linux-gtk.tar.gz
という感じ。実行は、
$ cd /home/felix
$ ./eclipse-php/eclipse-php
でOK。