2015-09-22 1 views
4

Для обучения я пытаюсь предоставить веб-сервер PHP, используя Puppet on Vagrant. Тем не менее, я получаю дамп кода PHP в окне браузера вместо выполнения. Я попытался найти решение проблемы, но я не могу найти ее здесь. Любая помощь будет высоко оценен.Puppet: как остановить печать PHP-кода в окне браузера

Это то, что я сделал до сих пор.

кукловод/манифесты/site.pp

node /^puppet/ { 
    include puppetmaster   
} 

node /^web/ { 
    include webserver 
    include php 
} 

кукловод/модуль/веб-сервер/манифесты/init.pp (пользовательский модуль)

class webserver { 
    notify{"provision a web server": } 

    package{['git', 'links']: 
    ensure => installed, 
    } 

    include apache   

    file{'/var/www/test': 
    ensure => directory, 
    owner => 'www-data', 
    group => 'www-data', 
    } 

    vcsrepo { "/var/www/test": 
    ensure => present,  
    provider => git, 
    source => 'https://github.com/example/test.git', 
    require => File['/var/www/test'], 
    }  

    apache::vhost{'git.example.com': 
    port => '80', 
    docroot => '/var/www/test', 
    require => File['/var/www/test'], 
    } 

    host{'git.example.com': 
    ip => '127.0.0.1', 
    } 
} 

Vagrantfile

VAGRANTFILE_API_VERSION = "2" 

# Assinging static IP 
$puppet_ip = "10.1.1.33"  

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    config.vm.box = "puppetlabs/ubuntu-14.04-32-puppet" 
config.vm.network "private_network", ip: "10.1.1.34" 

    config.vm.define "web01" do |web| 
     web.vm.hostname = "web01"  
     web.vm.network :forwarded_port, host: 1234, guest: 8983 
     web.vm.network :forwarded_port, host: 11000, guest: 80 
     web.vm.provision "shell", inline: "apt-get update" 
     web.vm.provision "shell", inline: "echo '#{$puppet_ip} puppet' >> /etc/hosts" 
    end 
end 

apache2.conf (web01.home)

# Security 
ServerTokens OS 
ServerSignature On 
TraceEnable On 

ServerName "web01.home" 
ServerRoot "/etc/apache2" 
PidFile ${APACHE_PID_FILE} 
Timeout 120 
KeepAlive Off 
MaxKeepAliveRequests 100 
KeepAliveTimeout 15 

User www-data 
Group www-data 

AccessFileName .htaccess 
<FilesMatch "^\.ht"> 
    Require all denied 
</FilesMatch> 

<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
</Directory> 


HostnameLookups Off 
ErrorLog "/var/log/apache2/error.log" 
LogLevel warn 
EnableSendfile On 

#Listen 80 


Include "/etc/apache2/mods-enabled/*.load" 
Include "/etc/apache2/mods-enabled/*.conf" 
Include "/etc/apache2/ports.conf" 

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
LogFormat "%h %l %u %t \"%r\" %>s %b" common 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 

IncludeOptional "/etc/apache2/conf.d/*.conf" 
IncludeOptional "/etc/apache2/sites-enabled/*" 

Спасибо adavnce

+0

Вы установили php-модуль, как ваш httpd.conf после его предоставления? –

+1

Да, я установил модуль PHP, выполнив «кукольный модуль install example42-php. И также, я отредактировал исходное сообщение, чтобы включить файл apache2.conf. – getmizanur

+0

Спасибо, поэтому php установлен, но apache не знает об этом, добавив ответ, чтобы вы могли добавить необходимый conf для php с apache –

ответ

2

Чтобы устранить проблему, можно создать простой php.conf с ограниченной

LoadModule php5_module modules/libphp5.so 
<FilesMatch \.php$> 
    SetHandler application/x-httpd-php 
</FilesMatch> 

и спросить кукольный нажать этот файл в /etc/apache2/conf.d/, так что по крайней мере php-скрипт должен работать

Второй лучший вариант - посмотреть на https://puphpet.com, чтобы получить все необходимое для вас.