CentOS


【さくらvps】ibdata1 is of a different size でmysqlが起動できない

mysql をインストールしていない状態から mysql5.6 をインストールする場合はこちらを参考にする

mysql を 5.1 から 5.6 に update した際、 mysql が起動できなくなった。

起動に失敗
-------------------------------------------------
/etc/init.d/mysqld start
MySQL Daemon failed to start.
Starting mysqld: [FAILED]
-------------------------------------------------

cat /var/log/mysqld.log

エラーログの内容
-------------------------------------------------
[ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
-------------------------------------------------

これは設定変更後 ibdata1 のファイルサイズが違うため起きるエラーのよう。なので ibdata1 関連のファイルを削除する

my.cnf でデータの保存先を確認
-------------------------------------------------
cat /etc/my.cnf
-------------------------------------------------

my.cnf で確認したデータのある場所
-------------------------------------------------
datadir=/var/lib/mysql
-------------------------------------------------

データのある mysql ディレクトリに移動し、問題のファイルがあることを確認
-------------------------------------------------
cd /var/lib/mysql
ls
ib_logfile0 ib_logfile1 ibdata1 mysql
-------------------------------------------------

すべて削除
-------------------------------------------------
rm -rf ib_logfile0
rm -rf ib_logfile1
rm -rf ibdata1
-------------------------------------------------

再起動できた
-------------------------------------------------
/etc/init.d/mysql start
Starting mysqld: [ OK ]
-------------------------------------------------

ファイル削除の参考my.cnfでinnodb関連の設定後、MySQLが起動しなくなった

しかし新たなるエラーが発生

エラーログの内容
-------------------------------------------------
[ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
-------------------------------------------------
このあとにもたくさんのエラーが続く

please run mysql_upgrade to create it という内容なので update を実行

-------------------------------------------------
mysql_upgrade -u root -p
-------------------------------------------------

エラーが出なくなった

【さくらvps】CentOS6 で php を update

標準リポジトリから php をインストールしたら php5.3 だったので、php5.6 にした時の覚書

現在有効なリポジトリの一覧を表示

コマンド
-------------------------------------------------
yum repolist all
-------------------------------------------------
status が enabled となっているのが有効なリポジトリ

epel は有効になっていた

最新バージョンの php を手に入れるには Remi リポジトリを利用するのがいいらしいので、使えるようにする。

CentOS6系で Remi リポジトリをインストール
-------------------------------------------------
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
-------------------------------------------------
以下ほぼこちら通り:CentOS6/CentOS7にPHP5.6/PHP7をyumでインストール

現在のPHPバージョンを確認
-------------------------------------------------
rpm -qa | grep php
php --version
-------------------------------------------------

現在のphp を削除(しなくても update されるけど念のため)
-------------------------------------------------
yum remove php-*
-------------------------------------------------

PHP5.6をインストール
-------------------------------------------------
yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd
-------------------------------------------------

php をインストールしたら php.ini の編集も忘れずに

ここを参考にphp.ini で4か所のみ設定する
---------------------------------------
mbstring.language
mbstring.internal_encoding
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
expose_php ← on だとレスポンスヘッダーに php のバージョンが表示されてしまうので Off にする
---------------------------------------

自分の環境では以下の2つは設定変更しなかった
---------------------------------------
error_log ← 指定しなくてもサーバーに保存されるようなので指定しない
mbstring.http_input ← 非推奨なので設定しない
---------------------------------------

さくらレンタルサーバーからVPSへの引っ越し手順

さくらレンタルサーバーから vps への引っ越し手順の覚書

引っ越しをするときは、vps の設定をすべて済ませておくこと。php や mysql も使える状態になってから引っ越し作業に取り掛かる。設定に戸惑ってダウンタイムが長くなるのを防ぐため。

vps を借りてからの設定についてはこちら

お名前かさくらどちらかでネームサーバーを変更

共用サーバーを利用していた時はさくら側で設定が必要だったが、vpsの場合、お名前でもさくらでもどちらで設定してもいい

お名前側で設定する場合

さくら側で設定する場合
さくら側で設定する場合 参考2

さくら側で設定する場合、お名前側でさくらのネームサーバーのドメインを参照するネームサーバーとして登録しておく必要がある。
お名前側で一日前にネームサーバーをさくらに指定していた場合、その後さくらでゾーン設定すると実際にページが表示されるまで10分ほどかかった。(即時反映されるかと思ったが意外と時間がかかった)

さくら側で設定する場合、さくらレンタルサーバーでのネームサーバーの指定を解除しておく必要がある。その後二時間は再設定できないので、早く済ませたいならお名前側で設定するほうがいい。

E212: Can't open file for writing の対処法

vi で存在しないパスを指定して保存を実行するとエラーが出る。

:w や :wq でエラー
-------------------------------------
E212: Can't open file for writing
-------------------------------------

この場合、:w や :wq に続けて保存先のパスを指定するといい。

-------------------------------------
:w /PATH/

OR

:wq /PATH/
-------------------------------------

さくらのvpsを借りたらやること

セキュリティの設定
-------------------------------------------------
1.一般ユーザーを追加して、sudo で root権限を与えられるようにする
参考ページ
※初期設定でPort22が使えない場合は、SSHでログインできない。VPSコントロールパネルのコンソールからログインする
※最初ターミナルでログインしようとしたら、port22 が使えないってログインできなかった。yum update したからかお試しから本登録に変更したからログインできるようになった

2.rootでのログインを禁止
参考ページ

3.ssh のポート番号を 22 から変更

iptables の変更も忘れずに!

参考ページ

4.鍵認証の設定

参考ページ
※authorized_keys のパーミッションを 600 にしないとログインできないので注意!

鍵認証を有効にしたらパスワード認証を無効にするのを忘れずに
詳細
パスワードを有効にしたらリスタート
-------------------------------
sudo /etc/init.d/sshd restart
-------------------------------

5.その他の設定も次のサイトのとおり
参考ページ

マルチドメインに対応するところで、/etc/httpd/conf.d/vhost.conf ファイルを作るのは、conf.d ディレクトリに .conf のファイルを作るとデフォルトで読み込まれるから。httpd.conf ファイルにそういう記述がされている。

httpd.conf の抜粋
-------------------------------------------------
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf
-------------------------------------------------

-------------------------------------------------

上の参考サイトでマルチドメインの設定をするとサーバーのIPアドレスでのアクセスができなくなるので、httpd.confを編集してIPアドレスでアクセスできるようにする。
さくらVPSで複数の独自ドメインを運用する

ServerAlias の記述を加えて、ドメインの www のありなしを統一する。www のリダイレクトは サーバーの設定ファイルか .htaccess で制御。
詳しくはこちらを参考
さくらVPSでwwwサブドメインのURLを統一(正規化)する

ftpクライアントからファイルをアップロード
-------------------------------------------------
ffftp が基本的に sftp 接続できないので fileZilla を使った。

fileZilla でサーバーに繋がったのにアップロードするとエラーになった。公開フォルダの所有者が root なのに、ほかのユーザーでログインしたのが原因。公開フォルダの所有者を変更する。
参考ページ
-------------------------------------------------

久しぶりに立ち上げたサーバーにつながらなかった時の対処法

久しぶりに立ち上げた CentOS がインターネットつながらない。CentOS内のFireFox からインターネットが見れず。WindowsPCのFFFTPからもアクセスできず。

やったこと。

1.
------------
ifconfig
------------

ネットワーク環境を確認する。NICが正常に認識されていればOK。eth0のところに自身のIPアドレスが表示されていればいい。

2.
------------
ping 192.158..0.9 ← 自分自身のIPアドレスに送った
------------

返ってきたメッセージ
------------
Destination Host Unreachable
------------

デフォルトゲートウェイがダウンしている状態に返ってくるメッセージということで、ルーターを再起動させて解決できた。

2018年2月にもサーバーに繋がらないトラブルに遭遇した。

やったこと

サーバーを再起動してもルーターを再起動してもダメ。

フレッツ光の2セッション目に自宅サーバーを繋げていたが、1セッション目(Windows)のルーターを切ったら繋がった。つまりセッション数が足りない?

1セッション目のプロバイダを nifty から ocn に変えたあと、はじめて自宅サーバーを立ち上げたことを思い出した。

Windows から1セッション目のルーターにアクセスすると、 nifty の設定も残っていて、nifty と ocn の両プロバイダともにルーターはアクセスを試みていた。

使っていない nifty の情報を削除。すると2セッション目が空いて自作サーバーもつながった。

CentOS自宅サーバーにpoderosaやffftpから接続するときの確認事項

外部ネットワークからCentOSの自宅サーバーにアクセスするときの確認事項の覚書

poderosaやffftp共通

・ポートが開いているか
サーバー側のルーターにアクセスしてポートが開いているか調べる。
poderosa(SSH)は22番
ffftpは20~21番

・必要なサーバーソフトは立ち上がっているか
poderosa(SSH)httpd(Apache)が起動しているか確認
ffftpはsftpdが起動しているか確認

・iptablesが接続の邪魔をしていないか
iptablesの設定を確認。もしくは起動を終了させる。iptablesの設定例

なお、初期設定ではrootを使ってffftpでログインできない
詳細

ffftpで接続はできるのにサーバー側のファイル一覧が表示されない場合は、サーバー側でPASVモードの接続が許可されてない可能性が高い。「設定変更」-「拡張」タブ-「PASVモード」のチェックをはずす。もしくはサーバー側の設定を変更してPASVモードでの接続を許可する。

参考ページ

自宅サーバーに外部ネットワークからアクセスする設定

自宅に立てたCentOSサーバーに外部ネットワークからグローバルIPアドレスを指定してアクセスするときの確認事項

前提
・自宅サーバーのCentOSからインターネットつなげることができる
・同一ネットワークに他のPCがある(同じルーターに繋がっている)場合、そのPCからCentOSサーバーにアクセスできる

確認事項
・apache(httpd)を起動していること
・iptables(ファイヤーウォール)を停止していること、もしくはきちんと設定されていること
・二重ルーターになっていないこと(確認方法はこちら

・CentOSサーバーとその他の同じLAN内にあるPCが同じグローバルIPアドレスを共有する場合(プロバイダ契約がひとつの場合)は、CentOSサーバーのプライベートIPアドレスを固定する
固定の仕方参考ページ

プライベートIPアドレスを固定するときは他の機器と重複しないように注意。ルーターにアクセスし、DHCPで自動割り当てされる範囲のIPアドレスを確認し、範囲外のIPアドレスを指定すること。

・ルーターからポートの開放を行い、外部ネットワークからアクセスできるようにする。このとき自宅サーバーのプライベートIPアドレスを指定する。

WHR-HP-GNルーターの場合は設定はこちら

CentOS6.7のGUI画面が乱れてインストールできない

CentOS6.7をUEFIモードのRAID1でインストールしたときの覚書

インストールするとGUI画面で画面が乱れてインストールができない。

画面が乱れる理由はマザーボード(グラフィックボード)との相性が悪いのが理由のよう。

PCの構成
-----------------------------------
・H170-PRO(マザーボード、バージョン0906 2016/02/26更新 適用済み)
・Core i3-6100T(CPU)
・バッファローの白ディスプレイ(VGAケーブル) → acer黒ディスプレイ(DVIケーブル)(ディスプレイを変更してもダメ)
-----------------------------------

3TBのHDDを使ってRAID1を組んでインストールしたいので、UEFI起動でGUIでインストールする必要がある。

※非UEFI起動だと、画像の乱れはないが2TBより多いHDDを認識しない。また「GPTブートディスクを非EFI環境のシステムでお使いです」というエラーが出てインストールができても起動ができない。

こちらを参考

※CUI(テキスモード)でのインストールだとカスタムレイアウトによるパーティションのカスタムレイアウトができないのでインストール時にRAID1が組めない。
RAIDでなくていいからテキストモードでのインストールしたい場合はこちらのページを参考に、インストール最初の画面でリンク先のページで"single"としているところを"text"に変えて進めればいい。

古いバージョンのCentOSをいろいろ試してみると、CentOS6.5だと問題なくインストールできた(6.3、6.4、6.6はダメだった)。CentOS7でもUEFIモードのインストールは問題なし。

古いバージョンのCentOSダウンロードはこちらから

ただし、CentOS6.5で無事にインストールを完了しても「yum -y update」でCentOS6.7にアップデートしてしまうと再び画面がバグる。

解決方法
CentOS6.7をインストールしたいときは、一旦CentOS6.5のブートメニューで「Install system with basic video driver(基本的なビデオドライバーでシステムをインストール)」を選択して、インストールする

参考ページ

そのあとでCentOS6.7にアップデートしても画面は乱れない

パーティションの構成はこのようにした

IMG_9894

RAID1構成の参考ページ

ブート領域の設定は「カスタムレイアウトを作成する」を選択したあと、「作成」-「標準パーティション」から次のように設定する。

一つ目のHDD
--------------------------------------
「マウントポイント」 → 「/boot/efi
「ファイルシステムタイプ」 → 「EFI System Partition」
「使用可能ドライブ」 → 「sda」にチェック
「サイズ」 → 「300」
--------------------------------------

上と同じサイズのパーティションの二つ目のHDDにも設定
--------------------------------------
「マウントポイント」 → 「(空欄)
「ファイルシステムタイプ」 → 「EFI System Partition」
「使用可能ドライブ」 → 「sdb」にチェック
「サイズ」 → 「300」
--------------------------------------

構成の順番も大事で、写真と順番が違うとCentOSが起動しなかった。おそらく一番最初にEFI Filesystemのブート領域を持ってくるといい。

UEFIのブート領域はRAIDにできないようなので、二つ目のHDDにはマウントポイントなしでEFI Filesystemの領域を同サイズ確保した。インストール後、sda1の内容をsdb1にコピーすればいいらしい。(こちらの方が言ってるまま)

あとは初期値をいじらずにインストールを終えればインストール完了となる。

インストールできたらすべてのパッケージをアップデートしておく。

yum -y update ※-yはすべてイエスで答える

CentOS6のインストールで「GPTブートディスクを非EFI環境のシステムでお使いです」

3TBのHDDを二つ用意してCentOS6.7にRAID1構成でインストールを試みた。

こちらのページを参考にパーティションを構成してインストール作業を進めていくと警告表示される。

-----------------------------------
警告:
GPTブートディスクを非EFI環境のシステムでお使いです。おそらく、これはBIOSがGPTディスクからの起動をサポートしていないため動かないでしょう。
-----------------------------------

GPTブートディスクとは、2TBより容量の多いHDDのことらしく、これまでのBIOSでは扱えないディスクサイズを指すらしい。警告を対して気にも留めずインストール作業を最後まで終え、PCを再起動するとBIOS(UEFI)画面が表示されるだけでCentOSは起動しない。

これの解決策は、DVDドライブにCentOSのインストールディスクを入れてPCをリブート。BIOS画面に入ってブートメニューから「UEFI: DVDドライブ名」を選択してUEFIモードでインストール工程を処理していけばいい。

3 / 41234