web-dev-qa-db-ja.com

再起動後にApacheがAWS Linuxで動作しない-301応答コード

Amazon Linuxイメージを使用してEC2インスタンスをセットアップし、Amazonドキュメントに従ってLAMPおよびWordpressをインストールしました。

正常に機能し、デフォルトのWordpressページを提供しますが、インスタンスがリブートされるとすぐにWebサーバーは機能しなくなったように見えます。インデックスページは提供されなくなりました。カーリングlocalhostは空を返します。

再起動時にどの設定が失われるのかわかりません。 ApacheとMYSQLが実行されており、起動時に実行するようにセットアップされています。

curl http://localhostを試して、Apacheアクセスログを見ると、

::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"

これが私の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

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

私は問題を理解しました。 AWSインスタンスが再起動されると、DNSアドレスが変更されます。 Wordpressを使用しているため、MySQLデータベースのwordpressサイトのsiteurlおよびhomeのURLを新しいDNSアドレスに更新する必要があります。

たとえば、以下の図では、localhostをインスタンスのDNSアドレスに置き換える必要があります。インスタンスが再起動するとき、インスタンスが再起動するたびに、これを新しいDNSアドレスなどに再度置き換える必要があります。本当に、この問題の痛みを軽減するために静的DNSアドレスを使用する必要がありました。

site url in WP Databasehome url in WP Database

2
Brien Crean