サーバ

suexec上書き注意報

suexec上書き注意報

|ω・)そろり。

冒頭から500のイラストですが、エラーではありません。(爆

今日起こったこと。
備忘録も兼ねて書いておきます。

何やらCentOS6のアップデートが来ていたのでインストールして再起動。
確認のためホームページにアクセス。

500エラー。
( ・ω・)? なんで?

エラーログ確認して見ると、、、

suexec policy violation: see suexec log for more details

「suexecの設定がおかしいからsuexecのログ見てね。」

一方、suexecのログは、、、

command not in docroot (/home/[ユーザー名]/bin/php-cgi)

「docrootでコマンド使えね~ぞこの野郎。(かなり意訳)」

そういえばアップデートにhttpdが入っていたなぁ。

どうやらsuexecが上書きされて設定がリセットされてしまったようです。(´・ω・)

仕方がないのでApacheホームページから該当バージョンのhttpdをダウンロードしてビルドし直し、 suexecを所定場所にコピーしたらちゃんと動くようになりました。

めでたしめでたし。

サーバ

Linuxでのソースビルドインストールのディレクトリは?

|ω・)そろり。

VPSをCentOS6で動かしているのですが、どうしてもパッケージが古いのですよ。
そこでLAMP環境を構築するにあたって以下のようにしました。

  • Apache2.2 > yumインストール
  • MySQL5.6 > RPMインストール
  • PHP5.6 > ソースビルドインストール

で、PHP5.6をソースビルドインストールする際にどのディレクトリをインストール先に指定すればよいか?というお話です。

configure のデフォルト設定

大抵 configure のデフォルト設定では

PREFIX=/usr/local

となっていると思います。

そのままでも問題無いのですが、少し困ったことが起こります。

  • アンインストールはどうするんだ。
    (関連ファイルがbin等の多くのディレクトリにバラけるので削除が面倒)
  • 関連ファイル名が同じなのでバージョン違いをインストールできない。
    (例:PHP5.x系と7.x系を共存させる)

どこに指定するか?

自分がLinuxを覚え始めた頃は

PREFIX=/usr/local/php5

という形にしていました。(例:PHP5.x)
が、この指定は行儀が悪いそうです。(´・ω・`)

Linuxには"/opt"というディレクトリがあり、用途として手動でアプリケーションをインストールする際に使用するディレクトリになっているとのことです。
(参考:Linuxの基本の基本。Linuxの基本的なディレクトリ構成 / OXY NOTES)
(参考:各ディレクトリの役割を知ろう(ルートディレクトリ編) / @IT)

そうするとPREFIX設定は下記のようになります。

PREFIX=/opt/php5

アプリケーションのアンインストール

アプリケーションをアンインストールしたい場合は該当ディレクトリごと削除すればいいだけです。
※PATH指定やシンボリックリンクが存在する場合は注意しましょう。

バージョン違いの共存

バージョンごとにディレクトリを指定してやれば、違うバージョンのアプリケーションを共存させることができます。

サーバ

我鯖移転也

|ω・)そろり。

VPS借りてサーバ移転しました。

ひとまず環境は下記の通りにセッティング。

  • CentOS 6
  • Apache + PHP5.6 + FastCGI + MySQL5.6
  • ネームベースSSL(SNI)

ネームベースSSL(SNI)の設定がすんなりとうまくいってホッとしました。

まだ細かい作業はあるのですが、十中八九OKです。

それでは、ぼちぼち運営していきたいと思います。

PHP7.1はよ。(公式によると現在RC3とのこと)

スポンサードリンク