TOP ▲
itcore TOP
> TIPS
> php_ikou.php
 タグ:php5.3 centos 移行  古いPHPシステムをCentOS+PHP5.3へ移行する。 | itcore 2017
●PHPの設定
mysql_xxx()関数を有効にする。
# yum -y install php-mysql
# yum -y install mysql-devel
# service httpd restart
# cd /home/www/xxx/htdocs
# vi .htaccess
以下を入力
# <? を有効にする。
php_flag short_open_tag on
# PHPの拡張子変更
AddType application/x-httpd-php .php .phtml .html
●HTMLの移行
新サーバより
# rsync -av root@10.0.0.30:/home/xxx/ /home/xxx/
オーナーとパーミッションの変更
# chown -R オーナ.グループ /home/www/xxx
# find /home/www/xxx -type d -print | xargs chmod 755
# find /home/www/xxx -type f -print | xargs chmod 644
●DBの移行
現サーバから対象データベースをダンプ
mysqldump -uroot -p -B xxx > /home/xxx/xxx_`date "+%Y%m%d"`.sql
ユーザアカウントをダンプ
echo use mysql > xxx_`date "+%Y%m%d"`user.sql
mysqldump -uroot -p -ct mysql --tables db user --where="User='xxx'" >> xxx_`date "+%Y%m%d"`user.sql
新サーバにて取り込み
# rsync -av root@10.0.0.30:/home/xxx/xxx_*.sql /home/xxx/.
# yum -y install nkf
# nkf --utf8 < /home/xxx/xxx_`date "+%Y%m%d"`.sql > /home/xxx/xxx_`date "+%Y%m%d"`-utf8.sql
# mysql -uroot -p < /home/xxx/xxx_`date "+%Y%m%d"`-utf8.sql
# mysql -uroot -p < /home/xxx/xxx_`date "+%Y%m%d"`user.sql
# service mysqld restart
確認
# mysql -uxxx -p
現サーバのmysql xxxアカウントのパスワード
# mysql> show databases;
●漢字コードの変換
現在のファイルの漢字コードとファイル数を確認する。(ファイルが多いと時間がかかる)
# yum -y install nkf
# find . -type f -print | xargs nkf -g | cut -d: -f2 | sort | uniq -c | sort -k1 -n -r
   5426 UTF-8 (LF)
   4918 ASCII
   2784 BINARY
   2735 ASCII (LF)
   1832 UTF-8 (CR)
   1695 ASCII (CR)
   1610 Shift_JIS (LF)
     12 Shift_JIS (CR)
     10 EUC-JP (LF)
      4 UTF-8
# Shift_JISのファイルをUTF-8に変換する。(上書き変換)
# vi s2u.sh
以下を入力
# SJISファイルをUTF-8に変換する。
# 標準入力からファイル一覧を読み込む。
while read LINE1; do
  #echo file = $LINE1
  KANJI=`nkf -g $LINE1 | cut -d'(' -f1`
  #echo kanji = $KANJI
  if test "Shift_JIS" = $KANJI; then
    echo nkf --utf8 --overwrite $LINE1
    nkf --utf8 --overwrite $LINE1
fi
done
# chmod +x s2u.sh
# find . -type f -print | ./s2u.sh
変換後のファイルを確認
# find . -type f -print | xargs nkf -g | cut -d: -f2 | sort | uniq -c | sort -k1 -n -r
   7036 UTF-8 (LF)
   4918 ASCII
   2784 BINARY
   2735 ASCII (LF)
   1844 UTF-8 (CR)
   1695 ASCII (CR)
     10 EUC-JP (LF)
      4 UTF-8
HTML漢字コード設定確認 charset=xxx
# find . -type f -print | xargs grep -io charset=.* | cut -d: -f2 | cut -d\> -f1 | sort | uniq -c | sort -k1 -n -r
1033 charset=UTF-8
    735 charset=binary
    630 charset=binary
    581 charset=Shift_JIS
    441 charset=utf-8
    441 charset=us-ascii
    378 charset=utf-8
    378 charset=us-ascii
    304 charset=Shift_JIS"
    249 charset=MS932" /
     43 charset="UTF-8"
     18 charset=utf-8"
     15 charset=UTF-8" http-equiv="Content-Type"
     13 charset=\"iso-2022-jp\"\n";
     13 charset="iso-2022-jp"
     11 charset="utf-8"
      8 charset=iso-2022-jp";
      8 charset=UTF-8"
      7 charset=Shift_JIS" /
      3 charset=Shift_JIS" http-equiv=Content-Type
      3 charset=SHIFT-JIS"
      1 charset=utf-8" /
      1 charset=Shift_JIS\"
      1 charset=Shift_JIS" http-equiv="Content-Type"
      1 charset=ISO-2022-JP\n";
HTML漢字コード置き換え
# find . -type f -print | xargs grep -il charset=Shift_JIS | xargs perl -pi -e 's/Shift_JIS/UTF-8/gi'
# find . -type f -print | xargs grep -il charset=SHIFT-JIS | xargs perl -pi -e 's/SHIFT-JIS/UTF-8/gi'
# find . -type f -print | xargs grep -il charset=MS932 | xargs perl -pi -e 's/MS932/UTF-8/gi'
# find . -type f -print | xargs grep -io charset=.* | cut -d: -f2 | cut -d\> -f1 | sort | uniq -c | sort -k1 -n -r
   1618 charset=UTF-8
    735 charset=binary
    630 charset=binary
    443 charset=utf-8
    443 charset=us-ascii
    378 charset=utf-8
    378 charset=us-ascii
    318 charset=UTF-8"
    258 charset=UTF-8" /
     44 charset="UTF-8"
     19 charset=utf-8"
     18 charset=UTF-8" http-equiv="Content-Type"
     14 charset=\"iso-2022-jp\"\n";
     14 charset="iso-2022-jp"
     12 charset="utf-8"
      9 charset=iso-2022-jp";
      4 charset=UTF-8" http-equiv=Content-Type
      2 charset=utf-8" /
      2 charset=UTF-8\"
      2 charset=ISO-2022-JP\n";
●.htaccessの中の絶対ファイルパスを修正する。
# find . -type f -print | grep .htaccess$
各ファイルの内容を見てviで修正する。
●廃止された関数エイリアスの置き換え
# vi alias.sh
以下を入力
#!/bin/bash -x
# 自分を変換しないように
mb="mb"; j18n="j18n";
name1=("${mb}strlen"); name2=("mb_strlen");
name1+=("${mb}strpos"); name2+=("mb_strpos");
name1+=("${mb}strrpos"); name2+=("mb_strrpos");
name1+=("${mb}substr"); name2+=("mb_substr");
name1+=("${mb}strcut"); name2+=("mb_strcut");
name1+=("${j18n}_internal_encoding"); name2+=("mb_internal_encoding");
name1+=("${j18n}_http_input"); name2+=("mb_http_input");
name1+=("${j18n}_http_output"); name2+=("mb_http_output");
name1+=("${j18n}_convert_encoding"); name2+=("mb_convert_encoding");
name1+=("${j18n}_detect_encoding"); name2+=("mb_detect_encoding");
name1+=("${j18n}_encode_mimeheader"); name2+=("mb_encode_mimeheader");
name1+=("${j18n}_decode_mimeheader"); name2+=("mb_decode_mimeheader");
name1+=("${j18n}_convert_kana"); name2+=("mb_convert_kana");
#echo ${#name1[*]}
last_no=`expr ${#name1[*]} - 1`
start_no=0
#last_no=2
#echo $last_no
for i in `seq $start_no $last_no`; do
  #echo "i = $i ${name1[$i]} ${name2[$i]}";
  #echo  "$i find . -type f -print | xargs grep -il ${name1[$i]} | xargs perl -pi -e \"s/${name1[$i]}/${name2[$i]}/g\""
  find . -type f -print | xargs grep -il ${name1[$i]}
  find . -type f -print | xargs grep -il ${name1[$i]} | xargs perl -pi -e "s/${name1[$i]}/${name2[$i]}/g"
done
ここまで
chmod +x alias.sh
./alias.sh
●非推奨になってエラーになる関数の置き換え。
split($sep, $data) → explode($sep, $data)
ereg("$reg", $data) → preg_match("($reg)", $data)