IT家・挑戦雑記

情報を制する者は世界を制す!

Archive for the ‘Linux’ Category

★状況
 ・Apacheサービスの再起動に失敗した
 ・以下エラーメッセージ
  [linux@user]# service httpd restart
  httpd を停止中: [失敗]
  httpd を起動中:
  (98)Address already in use: make_sock: could not bind to address [::]:80
  (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
  no listening sockets available, shutting down
  Unable to open logs [失敗]

★環境
 ◆サーバーサイド
  ・OS:CentOS 5.6
   ・PHP:5.3.x
   ・Apache:2.2.x
   ・MySQL:5.5.x

★原因
 ・プロセスが既に握っているため?・・・多分・・・
  ※なぜ握ったままか分からないが、正しくサービスが終了していなかったためと推測される

★解決
 ・対象のプロセスを調べて停止する
 ◆プロセスの調べ方
  /sbin/pidof httpd
   もしくは
  /usr/sbin/lsof -i | grep http
 ◆プロセスの停止
  kill 停止するプロセスの数字

★確認
 ・Apacheの再起動
  /sbin/service httpd start
  httpd を起動中: [ OK ]


★参考URL
 ・[ギーク芸人を目指すデジタルケイタのブログ] apacheの再起動でエラー (98)Address already in use: make_sock: could not bind to address [::]:80

CentOSサーバーのMySQLをyumコマンド(remiパッケージ)を用いてmysqlをアップグレードを行った後、
MySQLのサービスが起動しなくなるトラブルが発生!
その解決した方法を紹介します。

★状況
 ・MySQLをアップグレード(5.1系 -> 5.5系をremiパッケージにて)
 ・MySQLサービスが起動しない。

★環境
 ◆サーバーサイド
  ・OS:CentOS 5.6
   ・PHP:5.3.x
   ・Apache:2.2.x
   ・MySQL:5.5.x

★原因
 ・MySQL5.5系において廃止されたシステム変数「record_buffer」がmy.cnfに記述されていたため!

★解決
 ・my.cnfを変更
  ※「#record_buffer = 8M」をコメントとアウト
 ※my.cnfの原因を特定できない場合は、一度my.cnfをリネームして、my.cnfなしでサービスを起動できるかチェックし、起動したらmy.cnfの記述のどこに問題があるか切り分ければよい。

★備考
 ◆サービスを再起動時のエラーメッセージ
  [root@user ~]# service mysqld restart
  mysqld を停止中: [ OK ]
  MySQL Daemon failed to start.
  mysqld を起動中: [ 失敗 ]

 ◆起動しなかった際のMySQLのログ(/var/log/mysql)
  110417 18:12:07 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
  110417 18:12:07 [Warning] option ‘table_cache’: unsigned value 33554432 adjusted to 524288
  110417 18:12:07 [Warning] Changed limits: max_open_files: 1024 max_connections: 151 table_cache: 431
  110417 18:12:07 [Note] Plugin ‘FEDERATED’ is disabled.
  /usr/libexec/mysqld: Table ‘mysql.plugin’ doesn’t exist
  110417 18:12:07 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
  110417 18:12:07 InnoDB: The InnoDB memory heap is disabled
  110417 18:12:07 InnoDB: Mutexes and rw_locks use InnoDB’s own implementation
  110417 18:12:07 InnoDB: Compressed tables use zlib 1.2.3
  110417 18:12:07 InnoDB: Using Linux native AIO
  110417 18:12:07 InnoDB: Initializing buffer pool, size = 128.0M
  110417 18:12:07 InnoDB: Completed initialization of buffer pool
  110417 18:12:07 InnoDB: highest supported file format is Barracuda.
  110417 18:12:07 InnoDB: Waiting for the background threads to start
  110417 18:12:08 InnoDB: 1.1.6 started; log sequence number 2952637
  110417 18:12:08 [ERROR] /usr/libexec/mysqld: unknown variable ‘record_buffer=8M’
  110417 18:12:08 [ERROR] Aborting
  
  110417 18:12:08 InnoDB: Starting shutdown…
  110417 18:12:09 InnoDB: Shutdown completed; log sequence number 2952637
  110417 18:12:09 [Note] /usr/libexec/mysqld: Shutdown complete
  
  110417 18:12:09 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended”mysqld.log” 1314L, 95950C

 ◆調査でご利用させていただいたサイト
  ・[sakaikの日々雑感~(T)編] [mysql]MySQL 5.5.3-m3 で廃止になった変数やオプションなどを整理しました
  ■今回は利用しなかった他の解決方法?
  ・[質問掲示板 – CentOSで自宅サーバー構築] MySQL5.1.41が起動できない

★CentOSのアップグレード

 ◆アップグレード日時
  11.04.12 17:30

 ◆コマンド履歴
  ■バージョンの確認
   [root@user mysite]# cat /etc/redhat-release
   CentOS release 5.5 (Final)

  ■アップグレード実行
   [root@user mysite]# yum update

  ■バージョンの確認
   [root@user mysite]# cat /etc/redhat-release
   CentOS release 5.6 (Final)

★状況
 ・WordPressで記事を投稿しても、RSSが更新されない。

★環境
 ◆サーバーサイド
  ・OS:CentOS 5.5
   ・PHP:5.3.x
    ・WordPress 3.1
   ・Apache:2.2.x
   ・MySQL:5.1.x

★原因
 ・キャッシュ生成プラグイン『Quick Cache』によるキャッシュファイルが生成されていたために、最新のRSS情報が表示されなかった。

★解決
 ・RSSをキャッシュの対象外に指定。
  ※RSSのURIである「feed」を除外

●WordPressの管理画面

●キャッシュ生成プラグイン『Quick Cache』の設定

★スクリプト概要
サーバーが及びネットワークがちゃんと動作しているか、
メールにてレポートする。
※あくまでメール送信できた際に、メールがちゃんと送信できている事を確認するだけの簡易的かつ限定的な機能。

★環境(テスト済み)
 ・CentOS 5.5
 ・bash

★その他
 ・使用するならcronを使う必要有り

★スクリプト内容
#—————————————————————-#
# +ユーザ環境(要変更)
#—————————————————————-#

#送信先メールアドレスを設定
address=”mail@exsample.com”

#—————————————————————-#
# +処理部分
#—————————————————————-#

# 件名の文字コードをutf8に変換
# nkfコマンド http://it.kndb.jp/entry/show/id/744
subject=`echo svr_report | nkf -j`
msg=”date +””%Y-%m-%d_%I:%M:%S”””

# メール送信(コマンド結果はSJISに変換)
mail -s “$subject” $address << HONBUN
`$msg | nkf -w`
`echo "server is Green!" | nkf -w`

HONBUN

exit

★環境
 ・ホストOS:WindowsXP SP3
 ・ゲストOS:Fedora14(Linux)
 ・仮想ソフト:VirtualBox 4.0.2 r69518

★状況
 ・Fedora14にGuest Additionsをインストールできない

 ◆コマンド実行
  [root@localhost VBOXADDITIONS_4.0.2_69518]# ./VBoxLinuxAdditions.run
  Verifying archive integrity… All good.
  Uncompressing VirtualBox 4.0.2 Guest Additions for Linux………
  VirtualBox Guest Additions installer
  Removing installed version 4.0.2 of VirtualBox Guest Additions…
  Removing existing VirtualBox DKMS kernel modules [ OK ]
  Removing existing VirtualBox non-DKMS kernel modules [ OK ]
  Building the VirtualBox Guest Additions kernel modules
  The headers for the current running kernel were not found. If the following
  module compilation fails then this could be the reason.
  The missing package can be probably installed with
  yum install kernel-devel-2.6.35.10-74.fc14.i686
   [失敗]
  Your system does not seem to be set up to build kernel modules.
  Look at /var/log/vboxadd-install.log to find out what went wrong.
  Once you have corrected it, you can run
  
   /etc/init.d/vboxadd setup
  
  to build them.
  
  Doing non-kernel setup of the Guest Additions [ OK ]
  Installing the Window System drivers
  Installing X.Org Server 1.9 modules [ OK ]
  Setting up the Window System to use the Guest Additions [ OK ]
  You may need to restart the hal service and the Window System (or just restart
  the guest system) to enable the Guest Additions.
  
  Installing graphics libraries and desktop services componen[ OK ]
  [root@localhost VBOXADDITIONS_4.0.2_69518]# ^C
  
  

 ◆コマンド実行後のログ
  ■/var/log/vboxadd-install.log
   Makefile:23: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again.. 中止.
   Creating user for the Guest Additions.
   Creating udev rule for the Guest Additions kernel module.

★原因
 ◆パッケージ不足
  ・gcc
  ・kernel-devel

★解決
 ◆パッケージのインストール
  ・yum install gcc kernel-devel

 ◆パッケージインストール後のコマンド実行結果
  [root@localhost VBOXADDITIONS_4.0.2_69518]# ./VBoxLinuxAdditions.run
  Verifying archive integrity… All good.
  Uncompressing VirtualBox 4.0.2 Guest Additions for Linux………
  VirtualBox Guest Additions installer
  Removing installed version 4.0.2 of VirtualBox Guest Additions…
  Removing existing VirtualBox DKMS kernel modules [ OK ]
  Removing existing VirtualBox non-DKMS kernel modules [ OK ]
  Building the VirtualBox Guest Additions kernel modules
  Building the main Guest Additions module [ OK ]
  Building the shared folder support module [ OK ]
  Building the OpenGL support module [ OK ]
  Doing non-kernel setup of the Guest Additions [ OK ]
  Starting the VirtualBox Guest Additions [ OK ]
  Installing the Window System drivers
  Installing X.Org Server 1.9 modules [ OK ]
  Setting up the Window System to use the Guest Additions [ OK ]
  You may need to restart the hal service and the Window System (or just restart
  the guest system) to enable the Guest Additions.
  
  Installing graphics libraries and desktop services componen[ OK ]

WordPressを利用していると
このページにアクセスするための十分なアクセス権がありません
と怒られてしまうケースがあります。

私の場合、システムログイン後にこのメッセージが出ました。

その状況や原因を以下にて解説します。

━━━━━━━━━━━━━━━━━━━━━━━━━
★状況
 ・テーブルのprefix名を変更

 DBテーブルとwp-config.phpのprefix名を変更した際、
 WordPressで管理画面にIDとパスワードを入力してログイン後、
 「このページにアクセスするための十分なアクセス権がありません」
 とうい警告メッセージが表示される。
 ※管理画面で操作不可
 ※ブログ閲覧は問題なし

★環境
 ◆サーバーサイド
  ・OS:CentOS 5.5
   ・PHP:5.3.3
    ・WordPress 3.01
   ・Apache:2.2.3
   ・MySQL:5.1.50-1

 ◆WordPressのテーブル一覧(全11テーブル)
  1: (prefix名)_commentmeta
  2: (prefix名)_comments
  3: (prefix名)_links
  4: (prefix名)_options
  5: (prefix名)_postmeta
  6: (prefix名)_posts
  7: (prefix名)_terms
  8: (prefix名)_term_relationships
  9: (prefix名)_term_taxonomy
  10: (prefix名)_usermeta
  11: (prefix名)_users
  ※(prefix名) ・・・ ユーザ指定のprefix名

★原因
 ・DBのテーブルprefixの変更が不十分

★解決
 テーブルprefix名を変更する際には、
  ・DBのテーブルprefix名を変更
  ・wp-config.phpのprefix名を変更
  ・以下の2テーブル内に存在するprefix名を変更
   1.(prefix名)_usermeta ・・・ フィールド:meta_key
   2.(prefix名)_options ・・・ フィールド:option_name

写真を管理できるCMS「Phormer
これをインストールしてみましたのでインストール方法を紹介します。


★配布サイト
 ・http://p.horm.org/er/
 ・最新バージョン:3.33 ※10.08.29現在

★環境
 ◆サーバーサイド
  ・OS:CentOS 5.5
   ・PHP:5.3.3
    ・GD extension
    ・ZIP extension
    ・EXIF extension
   ・Apache:2.2.3
  ※本システムはDBを使用しません。

★インストール方法

Installation Process - Google Chrome 20100829 170656

インストール先のパーミッションが正しくない場合、あるいは上記の3つのPHP extensionがない場合には警告がでますのでインストール・パーミッション設定を行います。
また、必要なディレクトリを作成し、そのパーミッションも設定します。

◆PHP extensionのインストール
  ・GD extension
  ・ZIP extension
  ・EXIF extension

◆ドキュメントルートのパーミッション設定
 chmod 707 ドキュメントルート

◆手動で「data」「images」「temp」のディレクトリ作成
 mkdir data images temp

◆作成したディレクトリのパーミッション変更
 chmod 707 data images temp

◆index.xmlのパーミッション変更
 chmod 606 index.xml

Installation Process - Google Chrome 20100829 211032

Adjust Preferences of My PhotoGallery - Google Chrome 20100829 212644

Administration Region of マサの写真館 - アナザー - Google Chrome 20100829 212655

サイト名等を設定します。
日本語名を使用する際には、ドキュメントルートに以下の.htaccessを設置します。

■.htaccess

<ifmodule mod_php5.c>
  AddDefaultCharset UTF-8
  AddType "text/html; charset=UTF-8" .html .php

  php_value default_charset UTF-8
  php_value mbstring.language neutral
  php_value mbstring.internal_encoding UTF-8
  php_flag  mbstring.encoding_translation On
  php_value mbstring.http_input auto
  php_value mbstring.http_output UTF-8
  php_flag mbstring.encoding_translation Off
  php_value mbstring.substitute_character none
</ifmodule>

マサの写真館 - アナザー - Google Chrome 20100829 215850

これで設置は完了です。

★状況
 WordPressで記事を投稿した際に、相手サイトにトラックバックができない。

★環境
 ◆サーバーサイド
  ・OS:CentOS 5.5
   ・PHP:5.3.2
    ・WordPress 3.0
   ・Apache:2.2.3

★原因
 ◆トラックバックの際のタイムアウト(時間制限)
  ・デフォルトでタイムアウトが0.01秒と短めに設定されている。
  ・重たいサーバーの場合、トラックバックに失敗する可能性が高くなる!

★解決
 ◆以下のphpを書き換える
  ■対象php
   /wp-includes/cron.php
  
  ■対象箇所
   「cron.php」の234行目付近
    ▲修正前
     wp_remote_post( $cron_url, array(‘timeout’ => 0.01, ‘blocking’ => false, ‘sslverify’ => apply_filters(‘https_local_ssl_verify’, true)) );
    
    ▲修正後
     wp_remote_post( $cron_url, array(‘timeout’ => 3, ‘blocking’ => false, ‘sslverify’ => apply_filters(‘https_local_ssl_verify’, true)) );
     ※本修正は0.01秒から3秒に修正。

★状況
 PHPの「ZendFramework」のライブラリ「Feed.php」を使用した際、
 以下のPHPエラーが発生。

 ■PHPエラー
 Fatal error: Class ‘DOMDocument’ not found in /usr/local/lib/php/ZendFramework/library/Zend/Feed.php on line 195

★環境
 ■サーバーサイド
  ・OS:CentOS 5.5
   ・PHP:5.3.2
    ・ZendFramework-1.10.6
   ・Apache:2.2.3

★原因
 ■ライブラリ不足
  php-xml

★解決
 ■php-xmlをインストール
  # yum install php-xml
  ※上記コマンドはCentOSでyumを使用したインストール方法です。