WordPress がデータベース接続確立エラー

VM 環境の WordPress で MySQL を使用しているのですが、VM 稼働中に OS を再起動してしまったら、WordPress が「データベース接続確立エラー」と表示するようになりました。

それで、SSH でサーバーにログインして、mysqld を start させようとしたところ、

Another MySQL daemon already running with the same unix socket.

というエラーが表示されるようになってしまいました。

困っていて Web で検索をしていたところ、以下の手順を行うことで復旧しました。

service mysqld stop 
mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak 
service mysqld start

MacでさくらサーバーにLAMP環境構築

順番

  • MacBookでSSH 接続用のRSA鍵を作成する
  • サーバーに使用するユーザーとパスワードの追加
  • 作成したRSA鍵をサーバーにSCPでコピー
  • MacBookから接続確認
  • サーバーのSSH設定変更
  • sudo設定変更
macbook:~ hogehoge$ ssh-keygen [Enter]
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hogehoge/.ssh/id_rsa): [Enter]
Enter passphrase (empty for no passphrase): [好きなパスワードを入力]
Enter same passphrase again: [好きなパスワードを再入力]
Your identification has been saved in /Users/hogehoge/.ssh/id_rsa.
Your public key has been saved in /Users/hogehoge/.ssh/id_rsa.pub.
サーバーに使用するユーザーとパスワードの追加

次に、サーバーで使用するユーザーとパスワードを登録する。リモートコンソールを使ってサーバーにログイン。

[root@xxx ~]# useradd hogehoge[Enter]
[root@xxx ~]# passwd hogehoge[Enter]
Changing password for user hogehoge.
New UNIX password:[新しいパスワードを入力]
Retype new UNIX password:[新しいパスワードを再入力]
passwd: all authentication tokens updated successfully.
[root@xxx ~]#usermod -G wheel hoeghoge //root 制限用に wheel に所属させる

作成したRSA鍵をサーバーにSCPでコピー

今度はMacBookからサーバーに、先程作成したRSA鍵をコピーする。コピーにはSCPというコマンドを使用する。
/Users/hogehoge/.sshにあるid_rsa.pubをサーバーへコピー。sakuraにはサーバーのIPとかドメインを入れる。

macbook:~ hogehoge$ cd .ssh
macbook:.ssh hogehoge$ scp id_rsa.pub tokikane@150.000.00.00:~/.ssh


コピーできたら、リモートコンソールで再度サーバーにログインし設定を変更する。

CentOS release 5.5 (Final)
Kernel 2.6.18-194.26.1.el5 on an x86_64

wwwhogehoge.sakura.ne.jp login: hogehoge
Password:
Last login: Fri Apr  1 00:00:00 from hogehoge.hoge.hoge.ne.jp

SAKURA Internet [Virtual Private Server SERVICE]

[hogehoge@xxx ~]$ cd .ssh
[hogehoge@xxx .ssh]$ cat id_rsa.pub >> authorized_keys
[hogehoge@xxx .ssh]$ chmod 600 authorized_keys

MacBookから接続確認

MacBookからターミナルで接続してみる。sakuraにはサーバーのIPとかドメインを入れる。初回はRSA鍵を作成した時のパスワード(パスフレーズ)を入力しろと言われるけど、二回目からは入力無しで繋がる。

macbook:~ hoge$ ssh hogehoge@sakura //RSA鍵を作成した時のパスワード入力を促される
Identity added: ~/.ssh/id_dsa (~/.ssh/id_dsa)
Last login: Fri Apr  1 00:00:00 from hogehoge.hoge.hoge.ne.jp

SAKURA Internet [Virtual Private Server SERVICE]

[hogehoge@xxx root]$ exit
logout

Connection to hogehoge.hoge.hoge.ne.jp closed.

macbook:~ hoge$ ssh hogehoge@sakura //そのまま VPS サーバ内へ移動するはず
Last login: Fri Apr  1 00:00:00 from hogehoge.hoge.hoge.ne.jp

SAKURA Internet [Virtual Private Server SERVICE]

[hogehoge@xxx ~]$

 

Apacheのインストール

インストールされてるか確認

$ rpm -qa httpd

入ってないので、インストールする。

$ sudo yum -y install httpd

インストールされたか以下のコマンドで確認

$ rpm -qa httpd
$ httpd -v

Apacheの初期設定をする

yum でインストールした場合は自動的に apache というユーザーが作成されている。

$ cat /etc/passwd | grep apache
apache:x:48:48:Apache:/var/www:/sbin/nologin

シェルに /sbin/nologin (稼働専用)となっているので、このユーザをそのまま使用する。

httpd.confのバックアップをとる

$ sudo cp /etc/httpd/conf/httpd.conf $HOME

viでhttpd.confを開き編集する

$ sudo vi /etc/httpd/conf/httpd.conf
1: 44行目のWeb サーバーにアクセスしたクライアントに返す情報を変更する

デフォルトだとhttpレスポンスヘッダにOSの情報が載ることになるので、ハッカーに余計な情報を与えないように
「OS」になっている部分を「Prod」に変える。
これでレスポンスヘッダには Server: Apache しか返らない。

ServerTokens OS
2: 251行目の障害発生時にユーザへ表示する連絡先メアドを適当なアドレスに変更する
ServerAdmin root@localhost
3: 265行目のサーバー名を変更

「#」を外してコメントアウト解除し、サーバーのホスト名を書く。
DNS に登録していないなら IP アドレスを指定。

#ServerName www.example.com:80
4: 320行目のオプション設定を変更

Indexsが設定されていると、もしユーザーがページを開いた時にindex.htmlがなければファイル一覧ページが自動生成されてしまい、ハッカーにファイル構成が知られてしまうので、無効にする。

「Indexes」の前に「-」を加える

Options Indexes FollowSymLinks
5: 524行目のエラーページなどに出力されるサーバー情報を変更

これも情報を与えすぎない様に「Off」にしておく。

ServerSignature On

以上変更したら保存し、設定に問題ないか確認。

$ sudo apachectl configtest
Syntax OK

Apacheを起動する

$ sudo service httpd start
httpd を起動中:                                            [  OK  ]

Apacheを起動する

$ sudo service httpd start
httpd を起動中:                                            [  OK  ]

サイトにアクセスしてテストページが表示されればOK。

最後にOS起動時にApacheも自動で起動されるようにする。

$ sudo chkconfig httpd on
$ chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQLをインストールする

$ sudo yum -y install mysql-server

インストールされたか確認する。

$ rpm -qa mysql-server
mysql-server-5.1.71-1.el6.x86_64

文字コードを設定する

UTF-8にする。

my.cnfファイルをHOMEディレクトリにバックアップしてから、
元ファイルを開く。

$ cd $HOME
$ cp /etc/my.cnf .
$ sudo vi /etc/my.cnf

以下のように記述

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# character-set
default-character-set=utf8
skip-character-set-client-handshake

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8
"/etc/my.cnf" 23L, 446C

保存する。

自動起動にする

Apacheと同じくOS起動時に自動起動するように設定する。

$ sudo chkconfig mysqld on
$ chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQLを起動する

$ sudo /etc/rc.d/init.d/mysqld start

rootユーザにパスワードを設定する

データベース操作の全権限を持っているrootユーザにパスワードを設定する

$ sudo mysqladmin -u root password パスワード

rootユーザでログインする

$ mysql -u root -p

PHPをインストールする

画像合成などに使えるgdやpearなどのライブラリもインストールしておく。

sudo yum -y install php php-mbstring php-mcrypt php-mysql php-pear php-gd

php.iniを編集

タイムゾーンを日本時間にする

下記に変える

date.timezone = “Asia/Tokyo”

GRANT構文の実行権限をもつユーザを作成 

mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザー名@localhost IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

DB 作成 

文字コードを設定してDBを作成 

mysql> CREATE DATABASE データベース名 CHARACTER SET utf8;

 

Unknown class FBProfilePictureView in Interface Builder fileエラー対処方法

iOS Facebook profile写真読み込む時 Unknown class FBProfilePictureView in Interface Builder fileエラー対処方法

  1. AppDelegate.mのapplication didFinishLaunchingWithOptions の一行に  [FBProfilePictureView class]; 追加

シートにcsvファイルの名前を付けてcsvをexcelブックで開くマクロ

                                                                     
                                                                     
                                                                     
                                             
Sub fileopen()
    Dim FileNames As Variant
Dim fn As Variant
Dim SheetName As String


  FileNames = Application.GetOpenFilename _
    ("CSV(*.csv),*.csv", MultiSelect:=True)
  If VarType(FileNames) = vbBoolean Then Exit Sub
 
  For Each fn In FileNames
   ' Worksheets.Add After:=Worksheets(Worksheets.Count)
    
        SheetName = Dir(fn)
        '  ファイル名で新しいシート作成 
        Set NewWorkSheet = CreateWorkSheet(SheetName)
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & fn, _
        Destination:=Range("A1"))
        .Name = ActiveSheet.Name
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SaveData = True
        .AdjustColumnWidth = False
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 932
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
        ActiveSheet.UsedRange.QueryTable.Delete
  Next fn
End Sub

Function CreateWorkSheet(WorkSheetName As String) As Worksheet
 
    ' 変数定義
    Dim NewWorkSheet As Worksheet
    Dim iCheckSameName As Integer
    
    ' ワークシートの作成
    ' ※一番最後に挿入
    Set NewWorkSheet = Worksheets.Add(After:=Worksheets(Worksheets.Count))
    
    ' 同じ名前ワークシートが無いか確認
    iCheckSameName = 0
    For Each WS In Sheets
     If WS.Name = WorkSheetName Then
       MsgBox "ワークシート名:" + WorkSheetName + " この名前は既に使われています。"
       iCheckSameName = 1
     End If
    Next
    
    '同じ名前のワークシートがなければ
    If iCheckSameName = 0 Then
        NewWorkSheet.Name = WorkSheetName
        Set CreateWorkSheet = NewWorkSheet
    End If
    
End Function

   

MacにLinuxインストール方法

MacにLinuxインストール方法

1.下記のURLから無料評価版VMware Fusionダウンロード及びライセンスキー取得

 https://my.vmware.com/jp/web/vmware/evalcenter?p=vmware-fusion5

 

2.CentOs6.2のダウンロード及びvmware Fusionにインストール

 手順は下記のURLを参考ください。

    http://devugger.com/2012/05/install-centos-6-2-on-macbook-air/

 

下記はLpic101の1章(システム構成)教科書のPDF版です。

http://ec.nikkeibp.co.jp/item/contents/brouse/t_P84720.pdf