カテゴリー別アーカイブ: Ubuntu

WordPressの移行メモ

自宅サーバーにて運営していたブログですが、家庭の事情でネットが切断されることが多かったり、DDNSがうまく動作してくれないことがたまにあったりで、使いたいときに使えないことが多かったので、この度レンタルサーバーを借りて、そちらに移転することにしました。

1.レンタルサーバーの申し込み

レンタルサーバーはSaaSesという所のVPSサービス、Osukiniサーバーを選びました。
2012年4月30日までは初期費用0円キャンペーン中だったので一番安い月450円のLTプランを選びました。
OSはCentOS 64bitを選びました。

SaaSes

2.WordPressのコアファイルを抜き出す

旧サーバーのWordPressのコアファイルはApacheのドキュメントルート下のwordpressディレクトリに配置してました。
このディレクトリごと、新サーバーのApacheドキュメントルート下にごっそりと移植します。
僕はあまり小難しいことはできないのでSFTPを使って、いったん作業しているローカルにフォルダをコピーした後、またSFTPで新サーバーにコピーして、ドキュメントルート下に配置しました。

3.MySQLよりWordPressのデータベースを移植する

このデータベースの移植に昨夜インストールしたphpMyAdminを利用しました。
まず旧サーバーのデータベースをエクスポート。


これでデータベースがエクスポートされ、localhost.sqlというファイルがダウンロードできます。
この.sqlファイルは、テーブルのCreate文や、Insert文などのSQLが書かれています。
このダウンロードされたファイルを新サーバーのphpMyAdminでインポートします。

ここで問題が発生。php.iniがデフォルトなので、upload_max_filesizeが2M。
先ほどダウンロードしたlocalhost.sqlは2.9M。アップロードに失敗しました。
なので、php.iniを編集。

# vi /etc/php.ini

以下の部分を編集。

; Maximum allowed size for uploaded files.
; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
; upload_max_filesize = 2M デフォルト値
upload_max_filesize = 4M

Apache2のリスタート

# /etc/rc.d/init.d/httpd restart

これでアップロードでき、新サーバーのMySQLにデータベースを取り込むことができました。

4.PHPのアップデート

データの移行が完了したので、t-wata.com(新サーバー)/wordpress/にアクセスしてみました。
しかし、PHPのバージョンが古いため対応してないとのメッセージが表示されました。
移行するWordpressのバージョンは3.3。
デフォルトでインストールされているPHPのバージョンは5.1.6。

そのため、以下の方法でPHPのバージョンを5.3.3にアップデート。
PHPのアップデート

5.WordPressのデータベースの設定を変更

PHPのアップデートをしたので、再びt-wata.com(新サーバー)/wordpress/にアクセスしてみました。
するとデータベースエラーが発生して、見ることができない。
これはWordPressの設定ファイル無いの、データベースの設定項目の情報が古いままであったことが原因でした。

# vi /var/www/html/wordpress/wp-config.php

以下の部分を編集して、設定。

// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', '(データベース名)');

/** MySQL データベースのユーザー名 */
define('DB_USER', '(ユーザー名)');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '(パスワード)');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

/** データベースのテーブルを作成する際のデータベースのキャラクターセット */
define('DB_CHARSET', 'utf8');

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

これで再び、t-wata.com(新サーバー)/wordpress/にアクセスしてみると、無事表示されました。

6.サブディレクトリをルートディレクトリとして表示

今の設定では、ルートディレクトリhttp://t-wata.comにアクセスすると、apacheのデフォルトのindexが表示されてしまうので、設定を変更。
WordPressの設定画面から、サイトアドレスをhttp://t-wata.comになっていることを確認。
そして、wordpressディレクトリ内にあるindex.phpをドキュメントルートにコピー。
コピーしたindex.phpの下記部分をWordPressの設定画面で設定したサイトアドレスに変更して保存。

/** Loads the WordPress Environment and Template */
require('./wordpress/wp-blog-header.php'); //ここを編集

これでhttp://t-wata.comにアクセスすると、トップページが表示されるようになりました。

7.ディレクトリ所有者の変更

wordpressディレクトリの所有者がrootになっていたため、記事を投稿する際に画像のアップロードができませんでした。
そこで以下のコマンドでwordpressディレクトリの所有者を変更。

# chown -R apache:apache wordpress

これで画像もアップロードできるようになりました。

とりあえず、現在の設定はここまで。
今のところ、以前と変わらず動いているようなので、大丈夫かな。

Ubuntuでphpmyadminのインストール

今更ながらphpmyadminをインストールしてみました。
Ubuntuでのphpmyadmin導入手順をメモ。

まずはapt-getでphpmydaminをインストール。

$ sudo apt-get install phpmyadmin

途中サーバを聞かれるところはapache2を選択。

“/etc/phpmyadmin/apache.conf” の内容を “/etc/apache2/apache2.conf” に追記。

apacheをリスタート。

$ sudo /etc/init.d/apache2 restart

これで(サーバー名)/phpmyadmin/でログインできます。

Basic認証の設定メモ

毎度調べないとできないし、Ubuntuは少し違うようなのでメモ。

.htpasswdファイルの作成

まずは.htpasswdファイルの作成

$ sudo htpasswd -c /etc/apache2/mods-available/.htpasswd hoge

新しくファイルを作ったり、上書きする場合には -c オプションが必要になるみたい。
-c をつけなければユーザを追加するみたい。

apacheの設定

apacheの設定ファイルを編集

$ sudo vi /etc/apache2/site-available/default

以下の内容を追記

    <Directory "/var/www/">    #BASIC認証をかけるフォルダを指定
        AuthType BASIC
        AuthName "Type ID and Pass..."
        AuthUserFile /etc/apache2/mods-available/.htpasswd   #htpasswdファイルの場所を指定
        AuthGroupFile /dev/null
        require valid-user
    </Directory>

その後apacheの再起動

$ sudo /etc/init.d/apache2 restart

vsftpdの導入

UbuntuにFTPサーバーvsftpdを導入した時のメモ。

FTP用のユーザーを作る

とりあえずFTP用のユーザーを作ってみる。

$ sudo adduser -s /usr/sbin/nologin hogehoge

でsshとかからログインできないユーザーを作成できるらしい。
とりあえずパスワードの変更。

$ sudo passwd hogehoge
新しいUNIXパスワードを入力してください:
新しいUNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました

これでOKかな?
試しにsshでログインを試みてみたけど接続できなかったのでたぶん大丈夫だろう。

vsftpdのインストール

インストールはapt-getから。

$ sudo apt-get install vsftpd

設定ファイルの場所は

/etc/vsftpd.conf

ということで設定ファイルを編集。

$ sudo vi /etc/vsftpd.conf

vsftpdの再起動

以下のコマンドで再起動。

$ sudo /etc/init.d/vsftpd restart

するとなんか警告が・・・
以下のコマンドだとすんなりリスタートができた。何が違うのかはわからないが・・・

$ sudo service vsftpd restart

接続

とりあえず外部から接続を試みた。
が、繋がらない。
プロセスを確認してみたら一応動いてはいるみたい。
localhostのポートを調べてみたらちゃんと開いてる。
そこで外部からポートをチェックしてみると80番と22番しか開いていない・・・
そういえばルーターでそんな設定をしてたような・・・
サーバーは実家にあるのでたちまち設定できない。
というわけでsshからftpコマンドでlocalhostに接続してみた。
すると、今ログインしているユーザーからは接続できた。
しかし、先ほど作ったnologinのユーザーではログインできない。

$ ftp
ftp> open localhost
ftp> user
(name) : hogehoge
Password:
530 Login incorrect
Login refused.

とでる。

調べてみるとどうやら/etc/shellsというファイルを編集する必要があるみたいだ。
FTP Server
というわけで、/etc/shellsを編集。

# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/usr/sbin/nologin

最後の行に/usr/sbin/nologinを追加。

もう一度hogehogeで接続を試みたところ、ログインはできたみたいだけど「ディレクトリを変更できない」という表示が出て終わってしまった。
なので/home/hogehogeというディレクトリを作って接続し直してみるとログインできた。

設定ファイルの変更

ユーザーhogehogeでログインした場合上位のディレクトリに移動することができたため設定ファイルのchrootの部分を変更した。

chroot_local_user=YES

そのほかの主な設定は以下の通り。

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES

これでなんとかlocalhostにユーザhogehogeで接続することができるようになった。
ルーターの設定は日を改めてしよう。

ポートの確認

UbuntuにFTPサーバを入れてみようとしてた過程でFTPクライアントから接続できないので一応ポートを確認してみた。

調べてみるとnmapというポートスキャンツールがあるみたい。

nmapのインストール

apt-getでインストールできるみたい。

$ sudo apt-get install nmap

ポートのチェック

早速実行してみた。

$ nmap -sT localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2011-02-08 03:02 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0050s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 991 closed ports
PORT      STATE SERVICE
21/tcp    open  ftp
.
.
.

ちなみにオプションは「-sT」がTCPのスキャン、「-uT」がUDPのスキャン、「-V」でバージョンが確認できるみたい。

がFTPのポートは問題なく開いてるみたいだ。
もしかしてルーターの設定?
と思ってLANの外部からポートスキャンしてみると21番ポートが開いてなかった。どうやら原因はルーターの設定みたいだ。

apache2設定メモ

自宅サーバはUbuntuがインストールしてある。
Ubuntuはapacheの設定ファイルの場所がググって出てくるものと少し違うのでメモ。

設定ファイルの場所

まず設定ファイルの場所は

/etc/apache2/apache2.conf
/etc/apache2/sites-available/default
/etc/apache2/conf.d/security

と何個かにわかれているみたいだ。

ディレクトリ内を非表示にする

ディレクトリの一覧をみえなくするには以下の部分を編集。

sudo vi /etc/apache2/sites-available/default

以下の部分を変更する。

<Directory /var/www/>
    #Options Indexes FollowSymLinks MultiViews  <-この行をコメントアウト
    Options All -Indexes            <-この行を追記  
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

apacheのリスタート

sudo /etc/init.d/apache2 restart

apacheのバージョンとOSを非表示にする

apacheのバージョンとOSを非表示にするには以下のファイルを編集

sudo vi /etc/apache2/conf.d

以下の部分を編集

ServerTokens OS

ServerTokens Prod

apacheのリスタート

sudo /etc/init.d/apache2 restart