こんなサーバー使えねー

某サーバーのアカウントもらえたので準備してみようと思った.

phpをインストールしてもphp.iniをインストールしない

  • 最初は単純にインストールしていない
  • 自分で指定したconfigureのオプションと違う場所にphp.iniをおいたりしてる
  • ある時点で気づいて/etc/php.iniにコピーしたっぽい
$ ls -la /usr/lib/php.ini /etc/php.ini
-rw-r--r--  1 root root 41979 Jun 16 20:30 /etc/php.ini
-rw-r--r--  1 root root 41979 Jun 16 20:21 /usr/lib/php.ini

php.iniでmbstringのむちゃくちゃな指定をしている

mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
mbstring.strict_encoding = Off

共有サーバーでこれはないだろ..htaccessも許可していないし,Shift_JISで内部EUC-JPなi18nにできないアプリ作れってか?
本当にいろんな人がやってるphp.iniで設定しろ布教の悪影響だこれは.

拡張モジュールの組み込み方がむちゃくちゃ

    • enable-mbstringしながら(=sharedついてないんだからstatic link)

こんな状態.

$ grep -E '^extension' /etc/php.ini
extension_dir = "./"
extension=php_mbstring.so

どうやらphp.iniのコメントを参考にしたっぽい.

$ fgrep 'php_' /etc/php.ini
; Store the last error/warning message in $php_errormsg (boolean).
extension=php_mbstring.so
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
(snip)

当然

$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library './php_mbstring.so' - ./php_mbstring.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.1.4 (cli) (built: Jun 16 2006 22:17:25) 
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

ようするに

  • mbstring拡張モジュールはstatic link
  • しかしextensionで指定しようとしている
  • しかし指定内容が全然ちぐはぐ

ということだ.
他にも比較的古いバージョンのディストリビューションでアップデートを一切行っていない.
こえー.

ってことでこのアカウントさようなら.