ホームにもどる      「パソコンについて」にもどる

LAMP
ubuntu 10.04
サポートが終了すると、apt-get install で Repository からインストールすることができなくなるため、Repositoryの内容をハードディスクに保存しておき、それからインストールする方法

ディレクトリ LAMP1004 をつくり、サポートのある間にファイルを保存しておく。LAMPとは直接関係ないが、よく使う、nkf   perl-docも保存しておく。
mkdir LAMP1004

sudo apt-get clean
sudo apt-get install --download-only apache2
sudo cp -ru /var/cache/apt/archives LAMP1004/Apache

sudo apt-get clean
sudo apt-get install --download-only php5 libapache2-mod-php5
sudo cp -ru /var/cache/apt/archives LAMP1004/PHP

sudo apt-get clean
sudo apt-get install --download-only mysql-common
sudo cp -ru /var/cache/apt/archives LAMP1004/MySQL_common

sudo apt-get clean
sudo apt-get install --download-only mysql-server
sudo cp -ru /var/cache/apt/archives LAMP1004/MySQL_server

sudo apt-get clean
sudo apt-get install --download-only php5-mysql
sudo cp -ru /var/cache/apt/archives LAMP1004/PHP_mysql

sudo apt-get clean
sudo apt-get install --download-only nkf
sudo cp -ru /var/cache/apt/archives LAMP1004/NKF

sudo apt-get clean
sudo apt-get install --download-only perl-doc
sudo cp -ru /var/cache/apt/archives LAMP1004/Perl_Doc

sudo chmod --recursive 777 LAMP1004

次のPerlファイルをホームディレクトリに作成する。
repositoryhenko.pl
#!/usr/bin/perl
use strict;
use warnings;

system("sudo cp /etc/apt/sources.list /etc/apt/sources_moto.list");
system("sudo cp /etc/apt/sources.list sources_list.txt");
open(FILE,'sources_list.txt') or die "$!";
my @file=<FILE>;
close(FILE);
foreach my $line(@file){
	$line=~s|jp.archive.ubuntu.com/ubuntu|localhost/download|;
}
open(NEWFILE, '>henkogo_sources_list.txt') or die "$!";
print NEWFILE @file;
close(NEWFILE);
system("sudo cp henkogo_sources_list.txt /etc/apt/sources.list");

php_ini_henko.pl
#!/usr/bin/perl
use strict;
use warnings;

system("mkdir Backup_koshinmaei");

open(FILE,'copy_php_ini.txt') or die "$!";
my @file=<FILE>;
close(FILE);
foreach my $line(@file){
	$line=~s|;date.timezone =|date.timezone = Asia/Tokyo|;
	$line=~s|;output_handler =|output_handler=mb_output_handler|;
	$line=~s|;mssql.charset = "ISO-8859-1"|mssql.charset = "UTF-8"|;
	$line=~s|;mbstring.language = Japanese|mbstring.language = Japanese|;
	$line=~s|;mbstring.internal_encoding = EUC-JP|mbstring.internal_encoding = UTF-8|;
	$line=~s|;mbstring.http_input = auto|mbstring.http_input = auto|;
	$line=~s|;mbstring.http_output = SJIS|mbstring.http_output = UTF-8|;
	$line=~s|;mbstring.encoding_translation = Off|mbstring.encoding_translation = On|;
	$line=~s|;mbstring.detect_order = auto|mbstring.detect_order = auto|;
	$line=~s|;mbstring.substitute_character = none|mbstring.substitute_character = none|;
	$line=~s|;   extension=msql.so|extension=msql.so|;
}
open(NEWFILE, '>copy_php_ini2.txt') or die "$!";
print NEWFILE @file;
close(NEWFILE);

system("sudo cp copy_php_ini2.txt /etc/php5/apache2/php.ini");

drd_henko.pl
#!/usr/bin/perl
use strict;
use warnings;

system("mkdir www");
system("sudo cp /etc/apache2/sites-enabled/000-default /etc/apache2/sites-enabled/copy_000-default");
system("sudo cp --no-preserve ownership /etc/apache2/sites-enabled/000-default copy_000-default.txt");
#権限を保護せずにコピー
open(FILE,'copy_000-default.txt') or die "$!";
my @file=<FILE>;
close(FILE);
foreach my $line(@file){
	$line=~s|/var/www|/home/akira/www|;
	$line=~s|/usr/lib|/home/akira/www|;
}
open(NEWFILE, '>henkogo_000-default.txt') or die "$!";
print NEWFILE @file;
close(NEWFILE);
system("sudo cp henkogo_000-default.txt /etc/apache2/sites-enabled/000-default");

次の手順でインストールする。ホームディレクトリがtaroであるとする。
Apacheをdpkgでインストールする。
sudo dpkg -i --recursive LAMP1004/Apache

ブラウザを立ち上げ、URLに
http://localhost/
と入力して、"It works!"と表示されることを確認する。

Repositoryを変更する。
perl repositoryhenko.pl

sudo mkdir /var/www/download

sudo cp -ru LAMP1004/PHP/* /var/www/download
sudo cp -ru LAMP1004/PHP_mysql/* /var/www/download

PHPをリポジトリよりインストールする。
sudo apt-get install php5 libapache2-mod-php5

sudo /etc/init.d/apache2 restart

sudo gedit /var/www/Shiken.php
で/var/www/Shiken.phpを開き、下記を記入し保存する。
<?php
phpinfo();
?>

URLに
http://localhost/Shiken.php
と入力して、PHPの状態を示す画面が出ることを確認する。

ySQLをdpkgでインストールする。
sudo dpkg -i --recursive LAMP1004/MySQL_common
sudo dpkg -i --recursive LAMP1004/MySQL_server

php.iniを書き換える。
perl php_ini_henko.pl

sudo /etc/init.d/apache2 restart

リポジトリよりphp5-mysqlをインストールする。
sudo apt-get install php5-mysql

sudo /etc/init.d/apache2 restart

端末に
mysql -u root -p
と打ち込んでMyAQLコマンドが入力できることを確認する。
show databases;
でデフォルトのデータベースが表示されることを確認する。

Apacheのdocument root directoryを/home/taro/wwwに変更する。
/usr/lib/cgi-binを/home/taro/wwwcgi-binに変更する。
perl drd_henko.pl

ySQLの文字コードの設定をutf8に変更しておく必要がある。
文字コードの設定はmy.cnfでする。
sudo cp /etc/mysql/my.cnf /etc/mysql/my_copy.cnf
でコピーをとる。
sudo gedit /etc/mysql/my.cnf
で開いて、
my.cnfの
[client]
の項目の所に
default-character-set=utf8
を書き加え、
[mysqld]
の項目の所で下記を書き加える。
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
再起動する。

yAQLコマンドを開き、
show variables like 'character_set%';
で使用言語がutf8になっていることを確認する。

nkfインストール
sudo dpkg -i --recursive LAMP1004/NKF

perl-docインストール
sudo dpkg -i --recursive LAMP1004/Perl_Doc

リポジトリを元に戻しておく。
sudo cp /etc/apt/sources_moto.list /etc/apt/sources.list

再起動する。

apt-get install によるubuntu 10.04へのLAMPインストール
Apacheをインストールする。
	sudo apt-get install apache2

URLに http://localhost/ を入力して、	It works! と表示されるのを確認する。

PHPをインストールする。
	sudo apt-get install php5 libapache2-mod-php5

Apacheを再起動する。
	sudo /etc/init.d/apache2 restart

/var/www/Shiken.php を開く。
	sudo gedit /var/www/Shiken.php
Shiken.php に下記のように記入し、保存する。
<?php
phpinfo();
?>

URLに http://localhost/Shiken.php と入力し、PHPの状態が画面に表示されるのを確認する。

ySQLをインストールする。
	sudo apt-get install mysql-server

/etc/php5/apache2/php.ini を変更する前にoriginalのコピーをとる。
	sudo cp /etc/php5/apache2/php.ini ubuntu10_04/php_ini_original

/etc/php5/apache2/php.ini を開く。
	sudo gedit /etc/php5/apache2/php.ini
; extension=msql.so の ; を削除削除する。

Apacheを再起動する。
	sudo /etc/init.d/apache2 restart

ySQLコマンドを開き、データベースが表示されるのを確認する。
	mysql -u root -p
	show databases;
	quit;

php5-mysql をインストール
	sudo apt-get install php5-mysql

sudo cp /etc/php5/apache2/php.ini copy_php_ini.txt
perl php_ini_henko.pl
sudo cp copy_php_ini.txt /etc/php5/apache2/php.ini

と書き、php_ini_henko.bash と名づけてホームフォルダに保存する。

#!/usr/bin/perl
use strict;
use warnings;

open(FILE,'copy_php_ini.txt') or die "$!";
my @file=<FILE>;
close(FILE);
foreach my $line(@file){
	$line=~s|;date.timezone =|date.timezone = Asia/Tokyo|;
	$line=~s|;output_handler =|output_handler=mb_output_handler|;
	$line=~s|;mssql.charset = "ISO-8859-1"|mssql.charset = "UTF-8"|;
	$line=~s|;mbstring.language = Japanese|mbstring.language = Japanese|;
	$line=~s|;mbstring.internal_encoding = EUC-JP|mbstring.internal_encoding = UTF-8|;
	$line=~s|;mbstring.http_input = auto|mbstring.http_input = auto|;
	$line=~s|;mbstring.http_output = SJIS|mbstring.http_output = UTF-8|;
	$line=~s|;mbstring.encoding_translation = Off|mbstring.encoding_translation = On|;
	$line=~s|;mbstring.detect_order = auto|mbstring.detect_order = auto|;
	$line=~s|;mbstring.substitute_character = none|mbstring.substitute_character = none|;
	$line=~s|;   extension=msql.so|extension=msql.so|;
}

と書き、php_ini_henko.pl と名づけてホームフォルダに保存する。

php_ini_henko.bash を実行する。
	sh php_ini_henko.bash

/etc/php5/apache2/php.ini を開く。
	gedit /etc/php5/apache2/php.ini
/etc/php5/apache2/php.ini がきちんと変更されているか確認する。

/etc/mysql/my.cnf を変更する前にoriginalのコピーをとる。
	sudo cp /etc/mysql/my.cnf コード/ubuntu10_04//my_cnf_original

/etc/mysql/my.cnf を開く。
	sudo gedit /etc/mysql/my.cnf
[client]
の項目の所に
default-character-set=utf8
を書き加え、
[mysqld]
の項目の所に
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
を書き加える。

パソコンを再起動する。

ySQLコマンドを開き、データベースを作成する。
	mysql -u root -p
	create database Shiken;
	use Shiken;

文字コードを表示する。
	show variables like 'character_set%';
次のように表示されるのを確認する。
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
デフォルトの設定では、Apacheのドキュメントルートはhtml php は/var/www cgi は /usr/lib/cgi-bin になっている。var や usr にドキュメントを置くと、ドキュメントを作成する時に、いちいち管理者権限で開かなければならない。それでドキュメントルートをホームフォルダに変更する。ホームフォルダを taro とすると
/etc/apache2/sites-enabled/000-default を変更する前にoriginalのコピーをとる。
	sudo cp /etc/apache2/sites-enabled/000-default 000-default_original
/etc/apache2/sites-enabled/000-default を開く。
	sudo gedit /etc/apache2/sites-enabled/000-default
/var/www を /home/taro/www に変更
/usr/lib/cgi-bin を /home/taro/www/cgi-bin に変更

ダウンロードしたファイルをLinux_Download にバックアップを取っておく。
	mkdir Linux_Download
	sudo cp -au /var/cache/apt/archives/* Linux_Download

ubntu 7.10
 LAMP環境とは、OSのLinuxにApache(A)、MySQL(M)、PHP(P) (Perlのこともある) をインストールしたものである。それぞれのソフトは、独立に開発されたものだが、これを連係させてひとつのアプリケーション開発環境をつくろうとするものである。この4つのソフトはすべてオープンソフトであり、無償で提供されている。
 Linuxにubuntu 7.10を用い、どのようにLAMP環境をつくったらよいのかを考えてみる。
 ubuntuはパッケージの中にすでに、Apache、MySQL、PHP が含まれている。だから新しくダウンロードする必要はない。インストールするだけである。ただし、インターネットに接続できる環境でインストールしないと、すべてをインストールできない。
 メニューバーから、アプリケーション→アクセサリ→端末 で 端末を開く。文字が小さい時はAltキーを押したままvキーをを押し、次にAltキーとvキーを離してiキー を押すと文字が大きくなる。
 メニューバーから、アプリケーション→アクセサリ→テキスト・エディタ でgeditを開く。geditはubuntuについている優れたテキストエディターである。geditで開いた文書に適当な名前をつけて保存する。この場合はLAMPインストール.txtという名前をつける。 .txtはテキストファイルの拡張子である。
 まず、Apache をインストールする。LAMPインストール.txt に
   sudo apt-get install apache2
と書く。これを、コピーして、端末に貼り付ける。なおgeditのコピーはCtrlキーを押したままでc キーを押すことできるが、端末の貼り付けはCtrlキーを押したままでvキーを押すことではできない。ShiftキーとCtrキーを押したままで、v キーを押すことで貼り付けができる。一度geditで書いて端末に貼り付けているのは、geditに書いたものは当然保存ができるが、端末に書いたものは保存ができないからである。一度書いたコマンドは保存しておいたほうが、後にコピーして利用できるから便利である。
 sudo apt-get install apache2 はLinuxコマンドである。 sudoは管理者権限を必要とするコマンドの時につけるコマンドである。パッケージのインストールということは当然管理者権限を必要とするのである。 apt-get installは「パッケージをインストールしろ」というコマンドである。 apache2はパッケージの名前である。だから sudo apt-get install apache2というコマンドは「管理者権限で、apache2というパッケージをインストールしろ。」という意味である。
 sudo apt-get install apache2を端末にコピーしてEnterキーを押すと、パスワードをきいてくる。パスワードをキーで打ち込む。この時パスワードを打ち込んでも端末には何も表示されない。パスワードを打ち込み終わるとまたEnterキーを押す。パスワードに間違いがなければインストールが始まる。もしパスワードを打ち間違えていると、もう一度パスワードをきいてくる。その時はもう一度正確にパスワード打ち込んで、Enterキーを押す。
 Apacheが正常にインストールされたかどうかを確かめるには、LAMPインストール.txtにhttp://localhost/と書く。ブラウザ(ubuntuに標準でついているのは、Mozilla Firefoxだが、他のブラウザでも問題ない。) を開く。URLを記述する所にhttp://localhost/をコピーして貼り付ける。Enterキーを押すと、"It works!"と表示されるなら正常にインストールされている。WindowsにApacheをインストールした場合は同じことをすると、「あなたの予想に反して、このページが見えているでしょうか?」という文章のある画面が出てくる。
 次にPHPをインストールする。LAMPインストール.txtに
   sudo apt-get install php5 libapache2-mod-php5
  と書き、端末にコピーする。これは、「管理者権限で、php5 libapache2-mod-php5というパッケージをインストールしろ。」という意味である。Enterキーを押すとインストールが実行される。
   PHPのインストールが終わると、ApacheをPHPと適合させるために、Apacheを再起動する。LAMPインストール.txtに
   sudo /etc/init.d/apache2 restart
   と書き、端末にコピーし、Enerを押す。/etc/init.d/は apache2のあるフォルダを示している。etcフォルダの中の init.dフォルダにあるのである。restarは「再起動しろ」という意味のコマンドである。 
 PHPが問題なくインストールされたかどうかを見るには、次のようにする。LAMPインストール.txtに
   sudo gedit /var/www/Shiken.php
  と書き、端末にコピーして、Enterキーを押す。これは、「varフォルダの中の wwwフォルダにある Shiken.phpをgeditで開け。」という意味である。「.php」はPHPのファイルにつける拡張子である。 Shikenは試験と言う意味で適当につけた文書名である。
 PHPの文書名は何でもよいが、ひらがなや漢字は使わない。 Shikenという名の文書が/var/www/になければ、その文書名をつけてgeditで開いてくれる。勿論中には何も書かれていない。/var/www/は、Apacheで開く文書を置くフォルダである。WindowsにApacheをインストールした時は、Apacheで開く文書は\Program Files\Apache Group\Apache2\htdocsに置く。Windowsは権限が緩く、htdocsに簡単にコピーできるが、ubuntuは権限が厳しく、/var/www/にコピーができない。/var/www/の中の文書を開くのも管理者権限が必要であり、sudoを記入しなければならないのである。
 Shiken.phpと名付けた文書に
<?php
phpinfo();
?>
と書き、保存する。<?phpはPHPコードを始めますという意味で、?>はPHPコードを終わりますという意味である。PHPコードは<?php と ?>の間に記述される。phpinfo()は現在のPHPの状態を示すPHP関数である。「;」はPHPコードの文末に置かれる。また置かなければならない。セミコロンなしで上のコードを実行すると、エラーが出る。 Visual Basicは文末に「;」を置かないため、Visual Basicに慣れていると、よく「;」を忘れ、エラーになる。上のコードは「現在のPHPの状態を示せ」という命令をPHPで書いてあるのである。LAMPインストール.txtにhttp://localhost/Shiken.phpと書き、これをブラウザのURLを表示する所にコピーする。Enterキーを押し、上のコードを実行する。PHPが正常にインストールされておれば、PHPの状態が画面に示される。
 次にMySQLをインストールする。LAMPインストール.txtに
 sudo apt-get install mysql-server
と書き、端末にコピーする。これは、「管理者権限で、mysql-serverというパッケージをインストールしろ。」という意味である。Enterキーを押すとインストールが実行される。インストール途中でパスワードを設定するかどうかきいてくる。適当なパスワードを打ち込む。
 次にLAMPインストール.txtに
 sudo gedit /etc/php5/apache2/php.ini
と書き、端末にコピーし、Enterキーを押して実行する。これは、「管理者権限で、/etc/php5/apache2/にあるphp.iniという文書をgeditで開け」という意味である。php.iniはPHPの設定をしてあるファイルである。これを変更することで、PHPの設定を変えることができる。 PHPをインストールした既定の設定では、PHPでMySQLが使える設定になっていない。PHPでMySQLが使えるように設定変更する必要があるのである。geditでphp.iniを開いた状態でCtrlキーを押したままでfキーを押すと検索画面が出る。 extension=msql.so と打ち込み検索する。 
 ;        extension=msql.so となっている所を捜す。この「; 」を削除する。セミコロンをはずすことは、その設定を有効にするという意味になる。この場合は「MySQLが使える設定を有効にする」という意味になる。php.iniを保存して閉じる。これでPHPの最低限の設定変更はできたが、自分の環境に合うようにPHPの設定を変更する必要があれば、php.iniを変更する。
 次にApacheを再起動する。前にしたように、LAMPインストール.txt の sudo /etc/init.d/apache2 restartをコピーし端末に貼り付け、Enterキーを押せばよいのである。
 次にMySQLが正常にインストールされたかどうかを確認する。LAMPインストール.txtに
 mysql -u root -p
と書く。uはuserの略で、pはpasswordの略である。これは「MySQLを rootユーザーで開け」という意味のLinuxコマンドである。これを端末にコピーしてEnterキーを押すと、パスワードをきいてくるからパスワードを打ち込む。正常にインストールされておればmysql>が端末に表示される。次にLAMPインストール.txtにshow databases; と打ち込み、端末にコピーする。show databases; は「つくられているデータベースを表示しなさい。」という意味のMySQLコマンドである。MySQLコマンドも文末に」セミコロンをつける。Enterキーを押すとすでに入っているデータベース名が表示される。MySQLのパスワードを変えるには、
set password for root@localhost=password('新しいパスワード');
のコードで新しいパスワードの所に新しいパスワードを入れればよい。MySQLコマンドを閉じるには、quitと書いて、Enterキーを押す。
 これでApache PHP MySQLのインストールが完了した。端末は×をクリックすることで閉じることができる。最後にLAMPインストール.txtを保存して閉じる。
 以上の設定でmysql_connect() 関数を使うとエラーが出ることがあった。その時は
sudo apt-get install php5-mysql
でphp5-mysqlをインストールすると解決した。
 初期の設定では、Apacheで開く文書は/var/www/に置くようになっている。/varにあるということは、ここの文書を開くのに、いちいち管理者権限を必要とする。また簡単にコピーすることもできない。Webアプリケーションを開発する時、動作を確認し、不都合があれば何回も文書を開いて修正しなければならないのだから、簡単に文書を開くことができないというのは不便である。、それでApacheで開く文書を置くフォルダを変更する。
 rootユーザー名をzhangとすると、ホームフォルダは/home/zhangになる。ホームフォルダに例えばwwwというフォルダをつくり、ここにApacheで開く文書を保存することにする。新しいフォルダはメニューバーからもちろんつくることができるが、これでフォルダをつくると、なぜかわからないが、Apacheがそのフォルダを認識しなかった。それでLinuxコマンドでフォルダをつくる。フォルダをつくるコマンドはmkdirだから、mkdir /home/zhang/www と端末に打ち込みEnterキーを押す。 
 Apacheの設定ファイルは /etc/apache2/sites-enabled/000-default にあるから、
sudo gedit /etc/apache2/sites-enabled/000-default
と端末に打ち込み、gedit で開く。管理者権限で開かないと変更ができない。検索すると、/var/www/ と書いてある場所が2ヶ所出てくる。これを上の設定だと、/home/zhang/www/に置き換える。これで/home/zhang/www がWebのルートになり、Apacheはここの文書を開く。

参考文献
  1. 「Installing LAMP On Ubuntu For Newbies」 <https://www.howtoforge.com/ubuntu_lamp_for_newbies >  (2008/7/20アクセス)
  2. 「PHP」 <https://jp2.php.net/>  (2008/7/25アクセス)
  3. 「Felix-laboのラボラトリ」 https://felix-labo.jp/pukiwiki/?Ubuntu%2Fpdt%20prado%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83 (2008/8/22 アクセス)

ホームにもどる      「パソコンについて」にもどる