CentOS6.2(32bit)にrpmでMySQL5.5.3以降(5.6.5)のバージョンをインストールするのに悪戦苦闘したメモ。

5.5.3以降が使いたいのは、文字コードutf8mb4(4バイトUTF8文字=iOS5以降の絵文字)が使いたい為。
yumでは、epel,remiリポジトリでも5.5.24までしかなくて、utf8mbが使えなかった。

嘘。5.5.24で、my.cnfのcharacter-set-serverをutf8mb4にして起動出来た。
どうやら5.5.24のテストをしていた時はutf8mbとタイプミスしていた模様。


パッケージを指定してインストール。

rpm -ivh http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.5_m8-1.linux2.6.i386.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/

パッケージの在り処は、MySQL :: Download MySQL Community Server
Development Releases > Select Platform > Linux - Generic と選んで、
Linux - Generic 2.6 (x86, 32-bit), RPM Package
MySQL Server
これのDownloadを選ぶとミラーサイトに飛ぶ。
ユーザ登録すべしみたいなのが出るけど、下の
» No thanks, just take me to the downloads!
を選択するとミラー一覧が出てくる。
↑のURLはそこのリンクのうちひとつをコピペしたもの。

エラーが出た。

エラー: 依存性の欠如:
libaio.so.1 は MySQL-server-5.6.5_m8-1.linux2.6.i386 に必要とされています
libaio.so.1(LIBAIO_0.1) は MySQL-server-5.6.5_m8-1.linux2.6.i386 に必要とされています
libaio.so.1(LIBAIO_0.4) は MySQL-server-5.6.5_m8-1.linux2.6.i386 に必要とされています

のでインストール。

yum -y install libaio

以下の様な大量のエラーが。

 ファイル /usr/share/mysql/charsets/README (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.i386 から) は、パッケージ mysql-libs-5.1.52-1.el6_0.1.i686 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/Index.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.i386 から) は、パッケージ mysql-libs-5.1.52-1.el6_0.1.i686 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/armscii8.xml (パッケージ MySQL-server-5.6.5_m8-1.linux2.6.i386 から) は、パッケージ mysql-libs-5.1.52-1.el6_0.1.i686 からのファイルと競合しています。
...

↓を参考に、競合するmysql-libsを削除。
Scientific LinuxにMySQL5.5をインストール - cyber_snufkinの日記

rpm -qa|grep mysql

mysql-libs-5.1.52-1.el6_0.1.i686

yum remove mysql-libs

yumで入れた時と違ってmy.cnfが無かったので、↓とyumでインストールした時のmy.cnfを参考に作成。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.10.1.2 MySQL を自動的に起動および停止する

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
port=3306
character-set-server=utf8mb4

[mysqld_safe]
log-error=/var/log/mysqld.log

[mysql.server]
# basedir= What's this?

basedirが良くわからないので指定なし。

yumで入れた時はmysqldだったが、今回はmysqlで/etc/init.dに起動スクリプトがインストールされていた。

service mysql start

起動成功!!

mysql_secure_installation

Can't find a 'mysql' client in PATH or ./bin
クライアント入ってねーのかyp…

インストール

rpm -ivh http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.5_m8-1.linux2.6.i386.rpm/from/http://ftp.jaist.ac.jp/pub/mysql/

パッケージは
Linux - Generic 2.6 (x86, 32-bit), RPM Package
Client Utilities

もう一度。

mysql_secure_installation

...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

成功!

mysql -uroot -p

接続完了!!

後はphpとかはyumで入れたものでも動くのかとか、iOSから接続して実際に絵文字を保存して取り出せるのかとか…試さないと。

Samba覚書その2

Sambaで共有した(ホーム)ディレクトリに、そのディレクトリ外のディレクトリ(具体的には/var/www/html)への
シンボリックリンクを貼ってアクセス出来なかったのを出来るようにしたメモ。

SELinux

いつものヤツ。

setsebool -P samba_export_all_rw true

samba_export_all_roをtrueにしても、アクセスは出来るが書き込みが出来なかった。
そろそろSELinuxはデフォOFFでもいいんじゃないかという気がしてきた…。
http://okuma-shinkan.cocolog-nifty.com/newshinkan/2008/03/fedora8samba2_621e.html

ちなみに、「-P」オプションを付けないと、再起動した時に再び前の値に戻る。

smb.conf

vi /etc/samba/smb.conf

Samba 3.4.7 上のシンボリック・リンク参照先に Windows クライアントがアクセスできない

[global]
...
unix extensions = no
wide links = yes
...
globalでいいのかなぁ。homesにした方がいいのかも?
でもSambaのポートを外部に公開する事はあんまないだろうしいいかな。

再起動

service smb restart

CentOS6.2(32bit)にyumでMySQL5.5をインストールする。

rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/i386/epel-release-6-5.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum --enablerepo=epel,remi list mysql-server

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* epel: ftp.riken.jp
* extras: ftp.riken.jp
* remi: rpms.famillecollet.com
* updates: ftp.riken.jp
remi | 2.9 kB 00:00
remi/primary_db | 247 kB 00:03
Available Packages
mysql-server.i686 5.5.24-1.el6.remi remi
5.5キターこれでutf8mb4使える!

yum --enablerepo=epel,remi -y install mysql-server

CentOS 5.5にyumで MySQL 5.5をインストールする - hrendohの日記
http://wdsdx.com/yum_repo_epel

ブリッジ接続の設定

  • 設定 > ネットワーク > アダプタ2
    • 割り当て:ブリッジアダプタ
    • 名前:ホストOSに接続してあるNIC
  • centosを起動して
vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"
HWADDR="xx:xx:xx:xx:xx:xx" #アダプタ2のMACアドレス
NM_CONTROLLED="yes"
ONBOOT="yes"
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0

TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes

/etc/init.d/network restart

簡単だったしこっちのが色々便利だった。

↓の設定でもいけた。

DEVICE="eth1"
HWADDR="xx:xx:xx:xx:xx:xx" #アダプタ2のMACアドレス
NM_CONTROLLED="yes"
ONBOOT="yes"
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1 #デフォルトゲートウェイのアドレス

CentOSでphpでmemcache。

memcached

yum -y install memcached
chkconfig memcached on
service memcached start

php-pecl-memcache

yum -y install php-pecl-memcache

コード。

<?php

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die("接続できませんでした。");

echo("接続しました。");

$memcache->close();
	
?>

これだけだと繋がらなかった。
phpのエラーログを出してみる。

vi /etc/php.ini

以下を追記。

error_log=php_errors.log
こんなログが出てた。
[04-May-2012 03:12:48] PHP Notice:  Memcache::connect(): Server localhost (tcp 11211, udp 0) failed with: Permission denied (13) in /var/www/html/memcache_test.php on line 4
[04-May-2012 03:12:48] PHP Warning: Memcache::connect(): Can't connect to localhost:11211, Permission denied (13) in /var/www/html/memcache_test.php on line 4
Permission deniedだとう…。

SELinuxの設定

ググったところ、SELinuxの設定じゃね?ていう海外サイトの記事を見つけたので、
早速見てみる。

getsebool -a | grep mem
allow_execmem --> on
allow_nsplugin_execmem --> on
allow_xserver_execmem --> off
httpd_can_network_memcache --> off
httpd_execmem --> off

httpd_can_network_memcache コレかーー!!

setsebool -P httpd_can_network_memcache true

解決。

Sambaの覚書。

ポートを開ける。

iptables -I INPUT -p tcp -m tcp --dport 139 --syn -j ACCEPT
service iptables save
service iptables restart

sambaで利用するポート|samba|@OMAKASE

起動

service smb start
service nmb start

ホームディレクトリにアクセス出来ない時

SELinuxの設定がなんとかかんとか。

getsebool -a | grep samba

samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
use_samba_home_dirs --> off
virt_use_samba --> off
samba_enable_home_dirsがoffだとダメっぽい。

setsebool -P samba_enable_home_dirs true

実行には結構時間かかるので注意。

[覚書]sambaを使ってホームディレクトリにアクセスしようとしたら拒否されたとき[SElinuxの場合] « Deginzabi163's Blog below 60%
http://homepage2.nifty.com/t-1000/linux/samba.html
CentOS 5インストールメモ

共有ディレクトリの追加

phpとかをWindowsから書き換えたいのでドキュメントルートを共有にした。
実際にどれが最低限必要な項目なのかはわかんない。

vi /etc/samba/smb.conf

[html]
path=/var/www/html
public=yes
read only=no
writable=yes
ディレクトリのパーミッションも変えておく。

chmod -R 777 /var/www/html

またまたSELinuxの設定。これをやらないとアクセス拒否される。

setsebool -P samba_export_all_rw true

VirtualBoxにCentOSを入れてWebサーバを叩くまでメモ

Windows/mac両方で確認。

VirtualBox

VirtualBoxを適当に落としてくる。
起動して新規。

CentOS(ゲストOS)

isoを適当に落としてくる。
http://mirrors.sin3.sg.voxel.net/centos/6.2/isos/i386/CentOS-6.2-i386-bin-DVD1.iso

後は適当に。

解像度とフォントの設定

vi /etc/sysconfig/i18n

SYSFONT="lat0-10"と追記。

vi /etc/grub.conf

kernel〜で始まる行(カーネルオプション指定)の最後(rd_NO_DM)に半角スペースを付けて、vga=789と追記。

reboot

ネットワーク設定その1(NAT)

vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT="yes" #noなのでyesに変更。
BOOTPROTO=dhcp #追記。

/etc/init.d/network restart

これで外のサーバを叩ける。

ping www.yahoo.co.jp

ネットワーク設定その2(ホストオンリーアダプタ)

VirtualBoxマネージャーの方で、

  • ファイル > 環境設定 > ネットワーク > ホストオンリーネットワーク > 右の+アイコン
  • centosをシャットダウンしておく。
/sbin/shutdown -h now
  • 設定 > ネットワーク > アダプタ2
    • 割り当て:ホストオンリーアダプタ
    • 名前:VirtualBox Host-Only Ehternet Adapter
  • centosを起動して
vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"
HWADDR="xx:xx:xx:xx:xx:xx" #アダプタ2のMACアドレス
NM_CONTROLLED="yes"
ONBOOT="yes"
IPADDR=192.168.56.10
NETMASK=255.255.255.0
NETWORK=192.168.56.0

TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes

/etc/init.d/network restart

これでホストOSからssh接続出来る。

Apache

yum -y install httpd
/etc/init.d/httpd start

80番ポートを開ける。

iptables -I INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
service iptables save
service iptables restart

これでホストOSからhttp://192.168.56.10/でアクセス可能。