web-dev-qa-db-ja.com

CentOS6.5でpuppetlabs / Apacheを使用してsuPHPを設定する

Puppetlabs/Apacheモジュールを使用してcentos6.5ボックスにsuPHPをセットアップしようとしています。

Apache構成

file { "/var/www/vhosts":
        ensure => "directory",
        owner  => "root",
        group  => "root",
        mode   => 755,
    }

    class { '::Apache':  
        require => File['/var/www/vhosts'],
    }

    include ::Apache::mod::suphp

Vhostsの例

Apache::vhost { $site:
    port            => '80',
    serveraliases   => [
        $root,
        "www.${site}",
        "development.${site}",
        "www.development.${site}",
    ],
    options => ['Indexes', 'FollowSymlinks'],
    suphp_engine        => 'on',
    suphp_addhandler    => 'x-httpd-suphp',
    suphp_configpath    => '/etc/httpd/conf.d/suphp.conf',
    directories         => { 
        path => "${_root}/${webroot}",
        'suphp' => { 
            user => $owner, 
            group => $group 
        },
    },
    override        => 'ALL',
    logroot         => "${_root}/${logroot}",
    docroot         => "${_root}/${webroot}",
    docroot_owner   => $owner,
    docroot_group   => $group,
}

これらを適用する場合mod_suphpが見つからなかったので、rpmforgeをインストールして有効にしました。

[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

再実行するとインストールされますが、今は500 internal server errorphpページ。

Apacheログはこれを示しています。

[Mon Dec 08 16:51:02 2014] [error] [client 192.168.50.1] SecurityException in Application.cpp:496: Handler not found in configuration
[Mon Dec 08 16:51:02 2014] [error] [client 192.168.50.1] Caused by KeyNotFoundException in Configuration.cpp:234: Handler "application/x-httpd-suphp" not found
[Mon Dec 08 16:51:02 2014] [error] [client 192.168.50.1] Premature end of script headers: index.php

Suphpログは空です。

1
Yamiko

Vhost定義のx-httpd-suphpが/etc/httpd/conf.d/suphp.confで定義されたハンドラーと一致することを確認してください。例えば:

application/x-httpd-suphp="php:/usr/bin/php-cgi"
0
jeff8000