J’utilise un vagrant / marionnette pour configurer mon testmachine, je l’utilise pour configurer le virtualhost pour apache, mais quand je lance apache, j’obtiens une erreur, apparemment pour un espacement ou des caractères étranges:
/apache2 start * Starting web server apache2 Syntax error on line 4 of /etc/apache2/sites-enabled/my-ssl.localhost.conf: Invalid command '\xc2\xa0\xc2\xa0ServerName', perhaps misspelled or defined by a module not included in the server configuration Action 'start' failed.
le fichier manifeste que j’ai écrit pour configurer le virtualhost ressemble à ceci
file {'hostfile4': path => '/etc/apache2/sites-available/my-ssl.localhost.conf', ensure => present, content => " DocumentRoot '/coding/mysite/htdocs/' ServerName foa-ssl.localhost ServerAlias foa-ssl.localhost ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined RewriteLog /var/log/apache2/rewrite.log RewriteLogLevel 0 AllowOverride All Options All -Indexes Order allow,deny Allow from all php_admin_value short_open_tag Off AddType application/x-httpd-php .css .js AllowOverride All Options All -Indexes Order allow,deny Allow from all php_admin_value short_open_tag Off AddType application/x-httpd-php .css .js Options +ExecCGI SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem ", }
c2 a0
(dans le message d’erreur) est le code unicode pour le caractère spécial “espace non cassant”, cf. ici
Il semble que Apache n’aime pas ça du tout. Vous devez donc vous débarrasser de ces espaces insécables et utiliser des espaces normaux, même si cela semble identique dans votre éditeur.
Vous pouvez utiliser NotePad ++ et lui demander de convertir vos fichiers de marionnettes en “ANSI”, qui est un encodage plus sûr pour les fichiers de configuration.
Vous devez avoir nettoyé cela sans le savoir tout en déplaçant le contenu vers un fichier externe, mais l’utilisation d’un fichier externe n’est pas la solution, même si cela a fonctionné.
résolu en utilisant ceci:
file { "/etc/apache2/sites-available/my-ssl.localhost.conf": mode => 440, owner => root, group => root, source => "/coding/puppetstuff/my-ssl.localhost.conf" }
/coding/puppetstuff/foa-ssl.localhost.conf est dans un dossier partagé (le chemin est sur l’image)