web-dev-qa-db-fra.com

Apache ne fonctionne pas sur AWS Linux après le redémarrage - Code de réponse 301

J'ai configuré une instance EC2 avec l'image Amazon Linux et installé LAMP et Wordpress conformément aux documents Amazon.

Cela fonctionne bien, sert la page par défaut Wordpress, mais dès que l'instance est redémarrée, le serveur Web ne semble plus fonctionner. La page d'index n'est plus servie. Curling localhost retourne vide.

Je ne sais pas quelle configuration est perdue au redémarrage. Apache et MYSQL sont en cours d'exécution et sont configurés pour s'exécuter au démarrage.

Lorsque j'essaie de curl http://localhost et que je consulte le journal des accès Apache, je vois:

::1 - - [17/Jun/2017:00:56:26 +0000] "GET / HTTP/1.1" 301 350 "-" "curl/7.35.0"
::1 - - [17/Jun/2017:00:59:19 +0000] "GET / HTTP/1.1" 301 350 "-" "curl/7.35.0"
::1 - - [17/Jun/2017:00:59:21 +0000] "GET / HTTP/1.1" 301 350 "-" "curl/7.35.0"

Voici mon httpd.conf

ServerRoot "/etc/httpd"
Listen 80

Include conf.modules.d/*.conf

User Apache
Group Apache

ServerAdmin root@localhost

<Directory />
    AllowOverride none
    Require all denied
</Directory>

DocumentRoot "/var/www/html"

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

# Further relax access to the default document root:
<Directory "/var/www/html">
    Options Indexes FollowSymLinks

    AllowOverride All

    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "logs/error_log"

LogLevel warn

<IfModule log_config_module>

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

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access_log" combined
</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

</IfModule>

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>
    TypesConfig /etc/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>

AddDefaultCharset UTF-8

<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>

EnableSendfile on

IncludeOptional conf.d/*.conf

En-têtes de réponse de curl -v

[ec2-user@ip-x-x-x-x ~]$ curl -v localhost
* Rebuilt URL to: localhost/
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: localhost
> User-Agent: curl/7.51.0
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Date: Sat, 17 Jun 2017 23:46:00 GMT
< Server: Apache/2.4.7 (Ubuntu)
< X-Powered-By: PHP/5.5.9-1ubuntu4.21
< X-Pingback: http://ec2-x-x-x-x.x-x-2.x.amazonaws.com/xmlrpc.php
< Location: http://ec2-x-x-x-x.x-x-2.x.amazonaws.com
< Content-Length: 0
< Content-Type: text/html; charset=UTF-8
< 
* Curl_http_done: called premature == 0
* Connection #0 to Host localhost left intact
3
Brien Crean

J'ai compris le problème. Lorsqu'une instance AWS est redémarrée, l'adresse DNS change. Comme j'utilise Wordpress, je dois mettre à jour l'URL siteurl et home de la base de données MySQL pour le site wordpress vers la nouvelle adresse DNS.

Dans les images ci-dessous, par exemple, localhost doit être remplacé par l'adresse DNS de l'instance. Lorsque l'instance redémarre, elle doit être remplacée par la nouvelle adresse DNS, et ainsi de suite, à chaque redémarrage de l'instance. Vraiment j'aurais dû utiliser une adresse DNS statique pour me sauver la douleur de ce problème :)

site url in WP Databasehome url in WP Database

2
Brien Crean