FreeBSD10でphpMyAdmin導入
phpMyAdminをダウンロードし、コピーすればOK!!
# wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.3.12/phpMyAdmin-4.3.12-all-languages.tar.gz/download
# tar zxvf phpMyAdmin-3.5.5-all-languages.tar.gz
# cp phpMyAdmin-4.3.12-all-languages /www/my.net/phpMyAdmin
あれ、エラー画面です。
「phpMyAdmin -エラー:mysqli/mysql拡張がありません。PHPの設定をチェックしてみてください。」とのこと。
これは、PHPがmysqlを使用する前提で構築されていないのが原因。
configureのオプションを増やし、PHPを再度makeしなおします。
% cd (php-5.6.7のディレクトリ)
% ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
% make
% make test
% su
# make install
# /usr/local/apache2/bin/apachectl restart
FreeBSD10にmySQLをインストール
開発環境が壊れたため久しぶりに環境構築。
OSはFreeBSD10.1を採用。
相変わらず必要最小限環境の構築を行います。
・wget 16.1 (最新の16.3はnettleを構築できなかったのでとりあえず16.1を採用) ⇒ ここを参考
・apache2 2.2.29 ⇒ ここを参考
・PHP 5.6.7⇒ ここを参考
(libxml2は2.9.2、perlは5.20.2を使用)
は過去と同じようにインストール。
cmakeにインストール
MySQLをmakeするのにcmakeが必要。
% wget http://www.cmake.org/files/v3.2/cmake-3.2.1.tar.gz
% tar zxvf cmake-3.2.1.tar.gz
% cd cmake-3.2.1
% ./configure
% make
% make test
% su
# make install
mysqlのインストール
続いて目的のmysql
% wget http://downloads.mysql.com/archives/get/file/mysql-5.5.41.tar.gz
% tar zxvf mysql-5.5.41.tar.gz
% cd mysql-5.5.41
% cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
% make
% make test
% su
# make install
mysql userを作成する
# adduser
Username: mysql
Full name: mysql database user
Uid (Leave empty for default):
Login group [mysql]:
Login group is mysql. Invite mysql into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/mysql]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : mysql
Password : *****
Full Name : mysql database user
Uid : 1002
Class :
Groups : mysql
Home : /home/mysql
Home Mode :
Shell : /bin/sh
Locked : no
OK? (yes/no): y
adduser: INFO: Successfully added (mysql) to the user database.
Add another user? (yes/no): n
Goodbye!
#
mysql userが資材を操作できるようにする。
# chown -R mysql:mysql /usr/local/mysql/
データディレクトリの作成
# mkdir /var/lib/mysql
初期化
↑は /usr/local/mysql/bin/ から場所が変わっていました。
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql -basedir=/usr/local/mysql
/usr/local/mysql/scripts/ で ./mysql_install_db とかやってもうまくいかない。絶対パスで実行しないとならないらしい。
データディレクトリの権限を変更する。
# chown -R mysql:mysql /var/lib/mysql/*
自動起動設定を行う
なぜかsh拡張子を付けないと自動起動してくれなかった???
# cp /usr/local/mysql/support-files/mysql.server /usr/local/etc/rc.d/mysqld.sh
FreeBSDって拡張子関係するんだっけ???
データベース起動してみる
# service mysqld.sh start
ユーザーを作成する
# /usr/local/mysql/bin/mysqladmin -uroot password パスワード
# /usr/local/mysql/bin/mysql -uroot -p
(パスワード入力)
mysql>
(↑になれば成功)
HDD激遅 PIOモード
この所、HDDアクセスがメチャクチャ遅い???!!!
確認したらHDDデバイスの転送モードがPIOとなっていました。
確認のしかたは「コントロールパネル」⇒「システム」⇒「ハードウェア」⇒「デバイスマネージャー」⇒「IDE ATA/ATAPIコントローラー」⇒「プライマリ(セカンダリ)IDEチャネルのプロパティ」⇒「詳細設定」
このモードはHDDアクセスエラーが6回起きると、自動的になるとのことです。
が、解除しないと遅くてやってられないので、この「プライマリ(セカンダリ)IDEチャネル」を右クリックして「削除」します。
⇒windows再起動を求められるので再起動します。
⇒起動してすぐ、ドライバ再インストールが始まり、再度再起動を求められますので再起動します。
ベンチマークテストもかなり改善されました^^
apache2にmod_rewriteの組み込み
Wordpressのパーマリンク設定をデフォルト以外に変更するにはこのモジュールが必要となります。
configureからやり直すのはつらいので、apxsで組み込みを行います。
sourceはmodules/mappersの中にあるのでこれをコンパイルします。
httpdをインストールしたときに使用したsourceが残っていればそれを資材として使用します。
削除してしまっていたら、同じバージョンのsourceを取得してきましょう。
# cd httpd-2.2.23/modules/mappers
# /usr/local/apache2/bin/apxs -c mod_rewrite.c
# su
$ /usr/local/apache2/bin/apxs -i -a -n rewrite mod_rewrite.la
$
このさぎょうでhttpd.confの中に以下の1行が追加されているはずです
LoadModule rewrite_module modules/mod_rewrite.so
これでモジュールは使用できるようになったのですが実はhttpd.confか.htaccessで
AllowOverride All
などを入れる必要があります。(AllではなくFileInfoなどにしたほうがなおBest)
設定例:/usr/local/apache2/conf/extra/httpd-vhosts.conf
<Directory "/www/">
# AllowOverride None
AllowOverride All
Order allow,deny
Allow from allphp_value post_max_size 104857600
php_value upload_max_filesize 104857600
</Directory>
FreeBSD9.xにmysql5.0.xを導入
http://dev.mysql.com/downloads/mysql/5.0.html#downloads
からsourceを取得。
5.5系とか5.6系などはcmakeとかよくわからないので検討事項にする…
テンプレートをコピー
# tar zxvf mysql-5.0.96.tar.gz
# cd mysql-5.0.96
# ./configure --prefix=/usr/local/mysql \
--enable-assembler \
--with-charset=utf8 \
--with-unix-socket-path=/var/lib/mysql/mysql.sock \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-embedded-mysqli \
--with-embedded-server \
--with-extra-charsets=binary,utf8,cp932,eucjpms,ujis,ucs2,latin1,sjis \
--without-readline \
# make
# su
$ make install
my.cnfに以下を追加
# cp support-files/my-medium.cnf /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /var/lib/mysql/mysql.sock
pid_file = /var/lib/mysql/mysql.pid
default-character-set=utf8
skip-character-set-client-handshake[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
mysqlグループを作成する
初期DBの作成
# adduser
Username: mysql
Full name: user for mysql database
Uid [1003]:
Login group [mysql]:
Login group is mysql. Invite mysql into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/mysql]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : mysql
Password : *****
Full Name : user for mysql database
Uid : 1003
Class :
Groups : mysql
Home : /home/mysql
Home Mode :
Shell : /bin/sh
Locked : no
OK? (yes/no):y
Add another user? (yes/no):n
# install -d -o mysql -g mysql -m 2750 /usr/local/mysql/data
# install -d -o mysql -g mysql -m 2755 /var/lib/mysql
データベース起動
# /usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
rootユーザーのパスワード設定と接続確認
# /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-networking &
# /usr/local/mysql/bin/mysqladmin -uroot password パスワード
# /usr/local/mysql/bin/mysql -uroot -p
(パスワード入力)
mysql>
(↑になれば成功)
自動起動を設定する
$ vi /usr/local/etc/rc.d/mysqld.sh
#!/bin/sh
echo -n ' mysql start shell!'case "$1" in
start)
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-networking &
;;
stop)
kill `cat /usr/local/mysql/data/xxx.pid`
;;*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esacexit 0
再起動してプロセスが動いていればOK
$ chomod 755 /usr/local/etc/rc.d/mysqld.sh
$ reboot
# ps -ax | grep mysql
1009 ?? I 0:01.18 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/u
935 v0- I 0:00.02 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-networking
1151 0 R+ 0:00.00 grep mysql
#
apache2.2.x系 VirtualHost設定
apache2.2.x系ではhttpd.confではなくhttpd-vhosts.confに設定を行うようになっていた
$ vi /usr/local/apache2/conf/httpd.conf
下記のようにコメントアウトを解除
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
続いてhttpd-vhosts.confを設定
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
下記のように<VirtualHost>タグを作成
$ vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
(miyokawa.netはローカルでしか閲覧できません)
<VirtualHost *:80>
ServerAdmin miyokawa@miyokawa.net
DocumentRoot "/www/miyokawa.net"
ServerName miyokawa.net
ErrorLog "logs/miyokawa.net-error_log"
CustomLog "logs/miyokawa.net-access_log" common
</VirtualHost>
apache再起動
$ /usr/local/apache2/apachectl restart
Nameサーバーなり端末のhostsファイルを変更しmiyokawa.netに接続
なぜか403 Forbiddenエラーになってしまう。
ディレクトリを閲覧する権限が無いということである。
/wwwを777に設定してみても変わらない。
なぜ????
httpd.confにこんな記述がありました。
「Deny from all:すべての接続を拒否」って!
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
とりあえずhttpd-vhosts.confに以下を記述
<Directory "/www/">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
FreeBSD9.xにSamba3.6.xをインストール
configureはどこに??
# wget ftp://ftp.samba.gr.jp/pub/samba/samba-3.6.10.tar.gz
# tar zxvf samba-3.6.10.tar.gz
# cd samba-3.6.10
source3の中にあるらしい。
source4の中はsamba4のソースが試験的に入っている模様。
設定ファイルをコピー
# cd source3
# ./configure
# make
# su
$ make install
$ cp ../examples/smb.conf.default /usr/local/samba/lib/smb.conf
/usr/local/samba/libの中にあるファイルをシェアードファイルとして登録します。
$ vi /etc/ld.so.conf.d/samba.conf
/usr/local/samba/lib
だめだった・・・
# ldconfig
# /usr/local/samba/sbin/smbd -D
Shared object "libtalloc.so.2" not found, required by "smbd"
しょうがない、無理やりリンク張ってみる
$ ln -s /usr/local/samba/lib/libtalloc.so.2 /usr/local/lib/libtalloc.so.2
$ ln -s /usr/local/samba/lib/libtdb.so.1 /usr/local/lib/libtdb.so.1
$ ln -s /usr/local/samba/lib/libwbclient.so.0 /usr/local/lib/libwbclient.so.0
$ /usr/local/samba/sbin/smbd -D
$ /usr/local/samba/sbin/nmbd -D
プロセスを確認します
正常に動作しているようです。
$ ps -ax | grep smbd
25477 ?? Ss 0:00.11 ./smbd -D
25478 ?? S 0:00.00 ./smbd -D
25480 0 R+ 0:00.00 grep smbd
25460 1 S+ 0:00.01 tail -f log.smbd
$ ps -ax | grep nmbd
25482 ?? Ss 0:00.02 ./nmbd -D
25484 0 R+ 0:00.00 grep nmbd
$
# vi /usr/local/etc/rc.d/samba.sh
実験してみます
#!/bin/sh
#
smbspool=/var/spool/samba
pidfiledir=/usr/local/samba/var/locks
smbd=/usr/local/samba/sbin/smbd
nmbd=/usr/local/samba/sbin/nmbd
winbindd=/usr/local/samba/sbin/winbindd
# start
if [ "x$1" = "x" -o "x$1" = "xstart" ]; then
if [ -f $smbd ]; then
if [ -d $smbspool ]; then
rm -f $smbspool/*
fi
echo -n ' Samba'
$nmbd -D
$smbd -D
$winbindd
fi
# stop
elif [ "x$1" = "xstop" ]; then
kill `cat $pidfiledir/smbd.pid`
kill `cat $pidfiledir/nmbd.pid`
kill `cat $pidfiledir/winbindd.pid`
# restart
elif [ "x$1" = "xrestart" ]; then
$0 stop
$0 start
fi
echo
できればFreeBSDのrebootもしてみてください。
$ /usr/local/etc/rc.d/samba.sh stop
$ ps -ax | grep smbd
25542 0 R+ 0:00.00 grep smbd
$ ps -ax | grep nmbd
25544 0 RV 0:00.00 grep nmbd (csh)
$ /usr/local/etc/rc.d/samba.sh start
$ ps -ax | grep smbd
25549 ?? Ss 0:00.03 /usr/local/samba/sbin/smbd -D
25551 ?? S 0:00.00 /usr/local/samba/sbin/smbd -D
25555 0 R+ 0:00.00 grep smbd
25460 1 S+ 0:00.01 tail -f log.smbd
$ ps -ax | grep nmbd
25547 ?? Ss 0:00.01 /usr/local/samba/sbin/nmbd -D
25557 0 RV 0:00.00 grep nmbd (csh)
$
接続してみます。
windowsのエクスプローラー(マイコンピューター)などで\\192.168.11.30など
サーバーのアドレスを入力。
おそらくユーザー名とパスワードを聞かれますが何を入れてもログインできないと思います。
samabaユーザーを登録します
# ./smbpasswd -a miyokawa
New SMB password: xxxx
Retype new SMB password: xxx
Added user miyokawa.
#
今度はちゃんと接続できたのではないでしょうか。