Question

J'utilise un vagrant/puppet pour configurer ma machine de test, je l'utilise pour configurer l'hôte virtuel pour Apache, mais au démarrage d'Apache, j'obtiens une erreur, apparemment à cause d'un espacement ou de 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 l'hôte virtuel ressemble à ceci

file {'hostfile4':
      path    => '/etc/apache2/sites-available/my-ssl.localhost.conf',
      ensure  => present,
      content => "
<VirtualHost *:443>
  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
    <Directory '/coding/mysite/checkout/htdocs'>
        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
    </Directory>
    <Directory '/coding/mysite/app_new/htdocs'>
        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
    </Directory>
  <Directory '/coding/mysite/cgi-bin'>
    Options +ExecCGI
  </Directory>
  SSLEngine on
  SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
</VirtualHost>",
    }
Était-ce utile?

La solution

c2 a0 (dans le message d'erreur) est le code unicode du caractère spécial "espace insécable", cf. ici.

Il semble qu'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 s'ils ont la même apparence 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 avez dû nettoyer cela sans le savoir en déplaçant le contenu vers un fichier externe, mais utiliser un fichier externe n'est pas la solution, même si cela a fonctionné.

Autres conseils

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é (chemin est sur l'image)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top