:::: MENU ::::
Posts tagged with: error

ApacheのバージョンによりAuthTypeエラー

幾つかのApacheサーバー関連で、セキュリティ強化のため、httpd.conf内の制限を強くしていったところ、下記のエラーでトップのページが表示されなくなってしまった。

configuration error:  couldn’t perform authentication. AuthType not set!: /

原因は、Apache 2.2系の設定に、下記を追加したことによるものでした。

<Directory "/var/www/html">
...
...
Require GET POST
</Directory>

Require記述は、2.4系からなので、Require行を削除したところ、復帰しました。

Requireの書式を記述しても、configtestは通って、Syntax OKになるので注意ですね。

 


Macのディスクユーティリティでマウント解除できない時の対処

私の使っているiMac内蔵のSSDがよく壊れます。
ディスクユーティリティで検証・修復しようとしても、”修復できません”との警告で、よく復旧作業を行うことがあります。

通常だと、「⌘(コマンド)+ R」のリカバリモードで起動し、ディスクユーティリティを起動して、壊れたSSD/HDDを消去するのですが、時々、”マウント解除できませんでした”と消去すらできない症状に遭遇します。
おそらく、リカバリーモードで起動しても、消去対象のSSD/HDDに何らかのアクセスがあるからマウント解除できないのでしょう。

ディスクユーティリティを抜け、コンソールで調べてみても良いかと思いますが、面倒臭いので、USBディスクで起動するとあっさり消去できますので、緊急起動用にインストールUSBを作成しておくと良いです。
ちょっと情報古いですが、インストールUSBの作り方はこんな感じで↓

OS X 10.8 Mountain Lion インストールUSBの作り方

コンソールで作業したい方は、psやlsofで消去対象のSSD/HDDを探して、プロセスを殺すと上手く行くかと思います。


$ sudo lsof /Volumes/<HDD名や共有名>
mds 60 root 50r DIR 48,12 16384 2 /Volumes/share
Finder 360 hoge 26r DIR 48,12 16384 2 /Volumes/share
zsh 75882 hoge cwd DIR 49,10 1554 2 /Volumes/share

この場合は、shareがFinderとzshで利用されているので、Finderで開いていないか、zshでshare内にいないか確認すればOKですね。

偶に、Finderが全て閉じているにも関わらず、アンマウントできないことがあるので、その場合には、FinderをOption+右クリックで「再度開く」により、Finderを再起動しましょう。

http://blog.fkoji.com/2013/03200100.html


Linuxでユーザーパスワードが登録できない

CentOS(Linux)にて、ユーザーを作成し、パスワードを登録しようとしたら、下記のエラーで出来ない。

$ passwd
Changing password for user hoge.
Changing password for hoge
(current) UNIX password:
passwd: Authentication token manipulation error

どうやら、/etc下のpasswordとshadowファイルの整合性がとれない模様。

対応策は、pwconvのコマンドをrootで実行。 これで解決!


Cronで走らせていたmysqlが警告を出していた

幾つか運用しているLinux上で、毎週、MySQLのバックアップを取るように設定しているのだが、いつの日からか下記の警告が出ていた。(原稿現在:sl6,mysql:5.1.69)

— Warning: Skipping the data of table mysql.event. Specify the –events option explicitly.

/etc/cron.weeklyにバックアップスクリプトを下記のように記述していた。

mysqldump --all-databases -u root -pxxxx > $BACKUPDIR/mysql-all.sql.$DATE
mysqldump --allow-keywords mysql -u root -pxxxx > $BACKUPDIR/mysql-keywords.s
ql.$DATE

どうやら、events optionを指定しろと言うことらしいので、引数に–eventsを追加

mysqldump --events --all-databases -u root -pxxxx > $BACKUPDIR/mysql-all.sql.$DATE
mysqldump --events --allow-keywords mysql -u root -pxxxx > $BACKUPDIR/mysql-keywords.s
ql.$DATE

これで、警告は出なくなった。

ちなみに、警告出てた時でも、バックアップ自体は取れてました。


Squirrelmailでログインできない(画面が真っ白)の原因と対策

ウェブメール老舗のSquirrelmailを運用していたが、急にログインが出来ない症状が出たので調査した。

環境

  • OS: CentOS 5.9
  • WebServer: Apache 2.2.3
  • PHP: 5.4.10
  • WebMail: Squirrelmail 1.4.16

不具合の原因

  • 突然、ログインが出来ない
  • ログインページからリダイレクト直後にエラーが表示される
  • ブラウザーによっては、ログインページが真っ白になる

調査

apacheやphpのログを確認したところ、下記のエラーが出ていた。

Fatal error: Call to undefined function session_unregister() in /var/www/html/webmail/functions/global.php on line 244

いろいろ、ググったところ、function/auth.phpとplugins/compatibility/function.php内のfunction sqauth_save_password($pass)関数が競合しているので、どちらかをコメントアウトすれば良いかも?との記事を見つけたが、解決に至らずに、原因は別にあった。

どうやら、http://php.net/manual/en/function.session-unregister.phpによると、session_unregister関数はPHP 5.3.0で非推奨となり、PHP 5.4.0で削除されたとの事。

session_unregisterが使えなくなったと言う事が判明したので、はて?次は何をするべきか、公式のSquirrelmailで情報を探ってみた。

Squirrelmailの公式ホームページによると、

ANNOUNCE: PHP 5.4 Compatibility
Dec 01, 2012 by Paul Lesniewski
With the recent release of PHP version 5.4, some community members have helped identify some small issues which we’ve fixed and made available in our daily snapshot packages located on our downloads page. Especially if you use the Mail Fetch plugin and want to upgrade to PHP 5.4, you should download one of our snapshot packages.

UPDATE:If you are running SquirrelMail under PHP 5.4, please help test and refine the patches found here. There is one patch for each of the two SquirrelMail SVN snapshot versions available on our downloads page.

との事なので、Squirrelmailのバージョンを上げて、一部パッチを当てることで解決しそう。

対策

  1. 現ディレクトリのバックアップ
     # mv /var/www/html/webmail /var/www/html/webmail.bak
  2. 最新版の取得(要Subversion)安定版
    # svn checkout http://squirrelmail.svn.sourceforge.net/svnroot/squirrelmail/branches/SM-1_4-STABLE/squirrelmail /var/www/html/webmail

     

    開発版

    # svn checkout http://squirrelmail.svn.sourceforge.net/svnroot/squirrelmail/trunk/squirrelmail /var/www/html/webmail
  3. 属性変更
    Apacheのユーザ・グループに属性を合わせる必要があるので、

    # chown -R apache:apache webmail 
  4. プラグイン導入
    必要なプラグインをPluginsディレクトリへインストール
  5. 再設定
    サーバ設定やプラグイン等を再設定します

    # cd /var/www/html/webmail/config/
    # ./conf.pl 

    データディレクトリが別ディレクトリに保存してあれば、再設定すると良いですが、webmail内に格納してあったら、バックアップディレクトリからコピーしておきましょう。

  6. パッチ適用
    必ずしもパッチを当てる必要はありません(表示がおかしくなった場合のみ)
    /var/lib/squirrelmail/dataにデータフォルダがある場合:
    (正規表現でエラーが出る場合には、メタ文字に¥マークを付けると良い)

    find /var/lib/squirrelmail/data/ -name *.pref -exec sed –in-place ‘s/trash_folder=Trash/trash_folder=INBOX.Trash/g’ {} \;
    find /var/lib/squirrelmail/data/ -name *.pref -exec sed –in-place ‘s/draft_folder=Drafts/draft_folder=INBOX.Drafts/g’ {} \;
    find /var/lib/squirrelmail/data/ -name *.pref -exec sed –in-place ‘s/sent_folder=Sent/sent_folder=INBOX.Sent/g’ {} \;

    DB使っている場合:

    UPDATE userprefs SET prefval = ‘INBOX.Trash’ WHERE prefkey = ‘trash_folder’ AND prefval = ‘Trash’;
    UPDATE userprefs SET prefval = ‘INBOX.Drafts’ WHERE prefkey = ‘draft_folder’ AND prefval = ‘Drafts’;
    UPDATE userprefs SET prefval = ‘INBOX.Sent’ WHERE prefkey = ‘sent_folder’ AND prefval = ‘Sent’;

この辺りまで来たら、もう少しです。

設定や環境に不具合がないか、確認URLで表示させてみます
http://your-squirrelmail-location/src/configtest.phpのように、webmailをインストールしたアドレスにsrc/configtest.phpを付加して確認します。

configtest.phpにアクセスして、エラー箇所がなければ、無事に起動することができました。

補足

参考までに、私の環境では下記のエラーが表示されました。

 ERROR: You have configured PHP not to allow short tags (short_open_tag=off).
This shouldn’t be a problem with SquirrelMail or any plugin coded coded according to the SquirrelMail Coding Guidelines, but if you experience problems with PHP code being displayed in some of the pages and changing setting to “on” solves the problem, please file a bug report against the failing plugin. The correct contact information is most likely to be found in the plugin documentation.

↑ php.ini内のshor_open_tag=offになっているので、Onにする。設定保存後は要Apache再起動

ERROR: You have set ja_JP as your default language, but I cannot find this translation (should be in ../locale/ja_JP/LC_MESSAGES/squirrelmail.mo). Please note that you have to download translations separately from the main SquirrelMail package.

↑ conf.plで設定した言語のロケールがないエラーなので、別途導入

  1. 最新版のロケールをダウンロード
    http://sourceforge.net/projects/squirrelmail/files/locales/
  2. 解凍
    # tar jxvf ja_JP-1.4.18-20090526.tar.bz2 
  3. インストール
    # ./install

    webmailのパスを指定(/var/www/html/webmail)

  4. poファイル作成
    # cd /var/www/html/webmail/po
    # compilepo ja_JP 

WordPressでデバッグオンにした時、Unable to allowcate memry ..が出る場合の対処

WordPressの設定ファイルで、デバッグをONにしたところ、下記のような警告が出る場合がある。

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /var/www/…

どうやら、APCが原因のようで、WordPressのデバッグに限らず、PHPのフラグONでも警告が出る模様。

APCを外すか、.htaccessでオフにすれば警告が出なくなる。

php_flag apc.cache_by_default Off


413 Request Entity Too Large

WordPressのweaverテーマで、ヘッダ画像をアップロードしようとしたら、下記のエラーが出た。

413 Request Entity Too Large 

サーバプログラムは、nginxで、client_max_body_siteは100Mを指定しているのになぜ??

実は、client_max_body_siteの記述をvirtualhost定義内に記載していたのが間違いのよう。

/etc/nginx.conf内のhttp{}内に記載したら、行けましたとさ。

あと、nginxはreloadやrestartでなく、stopしてstartした方が良さげ。