I've added a bunch of custom fragment files to this particular VM and the Apache config that is produced just has the file path inserted and not the contents of the file. This only seems to be appear within the Directory Blocks though. As such, we get the following errors:
```==> machine1: Feb 14 13:58:09 machine1 systemd[1]: Starting The Apache HTTP Server...
==> machine1: Feb 14 13:58:09 machine1 apachectl[18238]: AH00526: Syntax error on line 19 of /etc/apache2/sites-enabled/25-av_7mj7oaz48dk6.conf:
==> machine1: Feb 14 13:58:09 machine1 apachectl[18238]: Invalid command '/vagrant/puphpet/files/directives/main-directory.conf', perhaps misspelled or defined by a module not included in the server configuration
==> machine1: Feb 14 13:58:09 machine1 apachectl[18238]: Action 'start' failed.
The config that is produced looks like this:
```# ************************************
# Vhost template in module puppetlabs-apache
# Managed by Puppet
# ************************************
<VirtualHost *:80>
ServerName project.dev
## Vhost docroot
DocumentRoot "/var/www/project/html"
## Directories, there should at least be a declaration for /var/www/project/html
<Directory "/var/www/project/html">
Options FollowSymlinks
AllowOverride None
Require all granted
DirectoryIndex index.php app.dev
/vagrant/puphpet/files/directives/main-directory.conf
</Directory>
<Directory "/var/www/project/investments/public">
Options FollowSymlinks
AllowOverride None
Require all granted
DirectoryIndex index.php
/vagrant/puphpet/files/directives/investments-directory.conf
</Directory>
<FilesMatch "\.php$">
Require all granted
SetHandler proxy:fcgi://127.0.0.1:9000
</FilesMatch>
## Logging
ErrorLog "/var/log/apache2/av_7mj7oaz48dk6_error.log"
ServerSignature Off
CustomLog "/var/log/apache2/av_7mj7oaz48dk6_access.log" combined
## Server aliases
ServerAlias www.project.dev
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
## Custom fragment
Alias /investments /var/www/project/investments/public
# Restrict PHP to Specified Directories:
php_admin_value open_basedir "/home/www/project.dev:/tmp"
php_flag magic_quotes_gpc Off
</VirtualHost>
I've tried changing the filepath to an include statement and then the build process fails because its not a file. Also tried .txt, .conf and extensionless files but the result is always the same. My config is as below:
vagrantfile:
target: local
vm:
provider:
local:
box: puphpet/ubuntu1604-x64
box_url: puphpet/ubuntu1604-x64
box_version: '0'
chosen_virtualizer: virtualbox
virtualizers:
virtualbox:
modifyvm:
natdnshostresolver1: false
showgui: 0
vmware:
numvcpus: 1
parallels:
linked_clone: 0
check_guest_tools: 0
update_guest_tools: 0
machines:
vflm_n1bi7ymsbcbp:
id: machine1
hostname: machine1.puphpet
network:
private_network: 192.168.56.101
forwarded_port:
vflmnfp_da634adqlb3c:
host: '6167'
guest: '22'
memory: '512'
cpus: '1'
provision:
puppet:
manifests_path: puphpet/puppet/manifests
module_path:
- puphpet/puppet/modules
- puphpet/puppet/manifests
options:
- '--verbose'
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
synced_folder:
vflsf_c5rj0bkas61e:
source: ~/Projects
target: /var/www
sync_type: default
smb:
smb_host: ''
smb_username: ''
smb_password: ''
mount_options:
dir_mode: '0775'
file_mode: '0664'
rsync:
args:
- '--verbose'
- '--archive'
- '-z'
exclude:
- .vagrant/
- .git/
auto: 'true'
owner: www-data
group: www-data
usable_port_range:
start: 10200
stop: 10500
post_up_message: ''
ssh:
host: 'false'
port: 'false'
private_key_path: 'false'
username: vagrant
guest_port: 'false'
keep_alive: '1'
forward_agent: 'false'
forward_x11: 'false'
shell: 'bash -l'
insert_key: 'false'
vagrant:
host: detect
proxy:
http: ''
https: ''
ftp: ''
no_proxy: ''
server:
install: '1'
packages: { }
users_groups:
install: '1'
groups: { }
users: { }
locale:
install: '1'
settings:
default_locale: en_US.UTF-8
locales:
- en_GB.UTF-8
- en_US.UTF-8
timezone: UTC
firewall:
install: '1'
rules: { }
cron:
install: '1'
jobs: { }
nginx:
install: '0'
settings:
version: present
default_vhost: 1
proxy_buffers: '4 256k'
proxy_buffer_size: 128k
proxy_connect_timeout: 600s
proxy_send_timeout: 600s
proxy_read_timeout: 600s
names_hash_bucket_size: 128
upstreams: { }
vhosts:
nxv_ba3o1hql8seg:
server_name: awesome.dev
server_aliases:
- www.awesome.dev
www_root: /var/www/awesome
listen_port: '80'
client_max_body_size: 1m
ssl: '0'
ssl_cert: ''
ssl_key: ''
ssl_port: '443'
ssl_protocols: ''
ssl_ciphers: ''
rewrite_to_https: '1'
spdy: '1'
locations:
nxvl_iy44rqq1sz7p:
www_root: /var/www/awesome/web
location: /
index_files:
- index.php
try_files:
- $uri
- $uri/
- /index.php$is_args$args
- /app.php$is_args$args
fastcgi: '127.0.0.1:9000'
fastcgi_index: index.php
fastcgi_split_path: '^(.+\.php)(/.*)$'
fast_cgi_params_extra:
- 'SCRIPT_FILENAME $document_root$fastcgi_script_name'
set:
- '$path_info $fastcgi_path_info'
proxy: ''
proxy_redirect: ''
nxvl_t96qp50qac43:
www_root: /var/www/awesome/web
location: '~ ^/(app_dev|config)\.php(/|$)'
index_files:
- app_dev.php
try_files:
- $uri
- $uri/
- /app_dev.php$is_args$args
fastcgi: '127.0.0.1:9000'
fastcgi_index: app_dev.php
fastcgi_split_path: '^(.+\.php)(/.*)$'
fast_cgi_params_extra:
- 'SCRIPT_FILENAME $document_root$fastcgi_script_name'
- 'APP_ENV dev'
set:
- '$path_info $fastcgi_path_info'
proxy: ''
proxy_redirect: ''
nxvl_tlp8rgaqlozh:
www_root: /var/www/awesome/web
location: '~ ^/app\.php(/|$)'
index_files:
- app.php
try_files:
- $uri
- $uri/
- /app.php$is_args$args
fastcgi: '127.0.0.1:9000'
fastcgi_index: app.php
fastcgi_split_path: '^(.+\.php)(/.*)$'
fast_cgi_params_extra:
- 'SCRIPT_FILENAME $document_root$fastcgi_script_name'
- 'APP_ENV prod'
set:
- '$path_info $fastcgi_path_info'
proxy: ''
proxy_redirect: ''
nxvl_pcwrht49ot1b:
www_root: /var/www/awesome/web
location: '~ ^/index\.php(/|$)'
index_files:
- index.php
try_files:
- $uri
- $uri/
- /index.php$is_args$args
fastcgi: '127.0.0.1:9000'
fastcgi_index: index.php
fastcgi_split_path: '^(.+\.php)(/.*)$'
fast_cgi_params_extra:
- 'SCRIPT_FILENAME $document_root$fastcgi_script_name'
set:
- '$path_info $fastcgi_path_info'
proxy: ''
proxy_redirect: ''
proxies: { }
apache:
install: '1'
settings:
version: 2.4
user: www-data
group: www-data
default_vhost: true
manage_user: false
manage_group: false
sendfile: 0
modules:
- proxy_fcgi
- rewrite
vhosts:
av_7mj7oaz48dk6:
servername: project.dev
serveraliases:
- www.project.dev
docroot: /var/www/project/html
port: '80'
setenvif:
- 'Authorization "(.*)" HTTP_AUTHORIZATION=$1'
custom_fragment: /vagrant/puphpet/files/directives/main-host.conf
ssl: '0'
ssl_cert: ''
ssl_key: ''
ssl_chain: ''
ssl_certs_dir: ''
ssl_protocol: ''
ssl_cipher: ''
directories:
avd_9nklegbdiig6:
path: /var/www/project/html
directoryindex: 'index.php app.dev'
options:
- FollowSymlinks
allow_override:
- None
require:
- 'all granted'
custom_fragment: /vagrant/puphpet/files/directives/main-directory.conf
provider: directory
avd_51pvqhtnu9bm:
path: /var/www/project/investments/public
directoryindex: index.php
options:
- FollowSymlinks
allow_override:
- None
require:
- 'all granted'
custom_fragment: /vagrant/puphpet/files/directives/investments-directory.conf
provider: directory
files_match:
avfm_fwygafw71e29:
path: \.php$
sethandler: 'proxy:fcgi://127.0.0.1:9000'
custom_fragment: ''
provider: filesmatch
av_sb2vd0tn6v5p:
servername: assets.project.dev
docroot: /var/www/project/investments/assets
port: '80'
setenvif:
- 'Authorization "(.*)" HTTP_AUTHORIZATION=$1'
custom_fragment: /vagrant/puphpet/files/directives/assets.conf
ssl: '0'
ssl_cert: ''
ssl_key: ''
ssl_chain: ''
ssl_certs_dir: ''
ssl_protocol: ''
ssl_cipher: ''
directories:
avd_fmfdhb1cq0wm:
path: /var/www/project/investments/assets
directoryindex: ''
options:
- Indexes
allow_override:
- None
require:
- 'all granted'
custom_fragment: ''
provider: directory
files_match:
avfm_ga9l2i7e6zum:
path: \.(ttf|otf|eot|woff|woff2)$
sethandler: ''
custom_fragment: ''
provider: filesmatch
av_t8zrg1bc5a6p:
servername: uploads.project.dev
docroot: /var/www/project/investments/uploads
port: '80'
setenvif:
- 'Authorization "(.*)" HTTP_AUTHORIZATION=$1'
custom_fragment: ''
ssl: '0'
ssl_cert: ''
ssl_key: ''
ssl_chain: ''
ssl_certs_dir: ''
ssl_protocol: ''
ssl_cipher: ''
directories:
avd_davzv2hfsgrt:
path: /var/www/project/investments/uploads
directoryindex: ''
options:
- Indexes
allow_override:
- None
require:
- 'all granted'
custom_fragment: ''
provider: directory
letsencrypt:
install: '1'
settings:
email: [email protected]
domains:
led_eab0f55e9fgk:
hosts:
- project.dev
- www.project.dev
php:
install: '1'
settings:
version: '5.6'
modules:
php:
- cli
- intl
- xml
pear: { }
pecl: { }
ini:
display_errors: 'On'
error_reporting: '-1'
session.save_path: /var/lib/php/session
date.timezone: UTC
short_open_tag: '1'
fpm_ini:
error_log: /var/log/php-fpm.log
fpm_pools:
phpfp_i0ppkc7x2zdo:
ini:
prefix: www
listen: '127.0.0.1:9000'
security.limit_extensions: .php
user: www-user
group: www-data
composer: '1'
composer_home: ''
xdebug:
install: '0'
settings:
xdebug.default_enable: '1'
xdebug.remote_autostart: '0'
xdebug.remote_connect_back: '1'
xdebug.remote_enable: '1'
xdebug.remote_handler: dbgp
xdebug.remote_port: '9000'
blackfire:
install: '0'
settings:
server_id: ''
server_token: ''
agent:
http_proxy: ''
https_proxy: ''
log_file: stderr
log_level: '1'
php:
agent_timeout: '0.25'
log_file: ''
log_level: '1'
xhprof:
install: '0'
wpcli:
install: '0'
version: v0.24.1
drush:
install: '0'
version: 8.0.5
ruby:
install: '1'
versions:
rv_yremohn0yu19:
default: '1'
bundler: '1'
version: 2.3.1
gems:
- [email protected]
- [email protected]
- [email protected]
python:
install: '1'
packages: { }
versions: { }
nodejs:
install: '0'
settings:
version: '6'
npm_packages: { }
hhvm:
install: '0'
composer: '1'
composer_home: ''
settings: { }
server_ini:
hhvm.server.host: 127.0.0.1
hhvm.server.port: '9000'
hhvm.log.use_log_file: '1'
hhvm.log.file: /var/log/hhvm/error.log
php_ini:
display_errors: 'On'
error_reporting: '-1'
date.timezone: UTC
mariadb:
install: '1'
settings:
version: '10.1'
root_password: '123'
override_options: { }
users:
mariadbnu_yjuqjjejp9sx:
name: dbuser
password: '123'
databases:
mariadbnd_g93vvidme123:
name: project_invest
sql: ''
grants:
mariadbng_g7q54ggqvzqz:
user: dbuser
table: '*.*'
privileges:
- ALL
mysql:
install: '0'
settings:
version: '5.7'
root_password: '123'
override_options: { }
users:
mysqlnu_w9xqa358r12p:
name: dbuser
password: '123'
databases:
mysqlnd_ts2sqepd0jqb:
name: dbname
sql: ''
grants:
mysqlng_7lvwjinmbuew:
user: dbuser
table: '*.*'
privileges:
- ALL
postgresql:
install: '0'
settings:
global:
encoding: UTF8
version: '9.6'
server:
postgres_password: '123'
databases: { }
users: { }
grants: { }
mongodb:
install: '0'
settings:
bind_ip: 127.0.0.1
port: '27017'
globals:
version: 2.6.0
databases: { }
redis:
install: '1'
settings:
port: '6379'
sqlite:
install: '0'
databases: { }
mailhog:
install: '0'
settings:
smtp_ip: 0.0.0.0
smtp_port: 1025
http_ip: 0.0.0.0
http_port: '8025'
path: /usr/local/bin/mailhog
beanstalkd:
install: '0'
settings:
listenaddress: 0.0.0.0
listenport: '11300'
maxjobsize: '65535'
maxconnections: '1024'
binlogdir: /var/lib/beanstalkd/binlog
binlogfsync: null
binlogsize: '10485760'
beanstalk_console: 0
rabbitmq:
install: '0'
settings:
port: '5672'
users: { }
vhosts: { }
plugins: { }
elastic_search:
install: '0'
settings:
version: 2.3.1
java_install: true
instances:
esi_gwallr1o17u6:
name: es-01
solr:
install: '0'
settings:
version: 5.5.2
port: '8984'
@adnnn I was getting an issue with this as well.
If you change your custom_fragment setting for the directory block from /path/to/file.conf to be Include /path/to/file.conf things should start working for you.
It does seem a little strange that for the vhost block it includes the contents but doesn't for the directory block, but this at least should be a temporary workaround
I just created a pull request to fix this issue: https://github.com/puphpet/puppet-puphpet/pull/48
Most helpful comment
@adnnn I was getting an issue with this as well.
If you change your
custom_fragmentsetting for the directory block from/path/to/file.confto beInclude /path/to/file.confthings should start working for you.It does seem a little strange that for the vhost block it includes the contents but doesn't for the directory block, but this at least should be a temporary workaround