IT家・挑戦雑記

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

Archive for the ‘Server’ 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』の設定

━━━━━━━━━━━━━━━━━━━━━━━━━
★状況
 ・Apacheサービスを起動すると以下エラーログ発生

 ◆エラー内容
 The Apache service named  reported the following error:
 >>> httpd.exe: Could not reliably determine the server's fully qualified domain name,
  using 192.168.0.2 for ServerName

 詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。

 ◆エラー内容(日本語訳)
 Apacheサービスは、次のエラーを報告名前:
 >>>のhttpd.exeは:確実にServerNameには192.168.0.2を使用して、
 サーバーの完全修飾ドメイン名を判断できませんでした

 詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。

 ---
 ※イベントログのアプリケーション(Windows2003R2)にて表示
 ※サービスは正常起動(syntax OK)

★環境
 ◆サーバーサイド
  ・OS:Windows2003 R2
   ・Apache:2.2系

★原因
 ・Apacheのconfに「ServerName」が記述されていない。
 ※「httpd.conf」およびvhostがある場合はvhostのconfにも「ServerName」記述が必要

★解決
 ・confファイルに「ServerName」を記述

 ---
 ※例
  ServerName localhost:80

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

★状況
 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を使用したインストール方法です。

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

 ■PHPエラー
 Warning: date() [function.date]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Tokyo’ for ‘JST/9.0/no DST’ instead in/usr/local/lib/php/ZendFramework/library/Zend/Mail.php on line 956

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

★原因
 ■php.iniの記述
  php.iniのタイムゾーンが設定されていなかった
  
  ▲php.iniの内容
  ;date.timezone =
  

★解決
 ■php.iniのタイムゾーンを設定
  
  ▲php.iniに以下を設定
   ;date.timezone = “Asia/Tokyo”

★状況
 FTPでサーバーにファイルをアップロードした際に、
  ・ファイルのアップロード時にエラー
  ・エラーメッセージ「insufficient free disk space」 ・・・ ディスク容量が足りないとの事
  ・空のファイルが生成される(0Kbのファイル名のみが作成される)
  ・削除は可能
 という現象が起きる。

★環境
 ■サーバーサイド
  ・OS:win2003 R2
  ・FTPサーバー:雷電FTPD

 ■クライアントサイド
  ・OS:winxp sp3
  ・FTPクライアント:ffftp, WinSCP

★原因
 ■win2003 R2のクォータ機能が有効なディレクトリにFTPルートを設定した場合、アップロードできない問題が生じる
  ※クォータ設定上で十分な容量が確保されているにも関わらず生じる。
  ※容量計算がうまくできてない!???

★解決
 ■クォータ機能を外す
  ※これは暫定的な解決方法で、もしかしたらクォータ機能を外さなくても大丈夫な方法があるのかもしれません。