質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.36%

WordPressのローカル環境(MAMP)のSSL対応化とlocalhostでのファイルの参照先を知りたい。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,317

score 9

前提・実現したいこと

最終的にはMACのMAMPで作ったローカル環境をXサーバー上の
WordPress本番環境に移行し、適宜、作成した記事などをローカル環境で
テストしつつサイトを運営していきたいと考えています。

MAMPのSSL対応化については参考サイトを見てhttpsに対応したMAMPのサイトhttps://localhost/MAMP/?language=Japaneseに飛べるのでできているのではないかと思います。

しかし、バーチャルホストで設定したhttps://localhost:●●●(※●=httpd-vhosts.confで宣言したポート番号)で接続すると見れません。単なるlocalhost:●●●で入力した場合はインストールしたWordPressのローカルサイトがブラウザ上で表示はされますが。

<質問>
①MAMPのSSL対応化というのはlocalhost:●●●の頭にhttps://が付いてローカル環境でWordPressの記事の編集等を行う際にもSSLに対応している状態での動作テストが可能という意味ではないのでしょうか?

②ローカル環境のWordPressで管理画面から確認する「WordPressアドレス」と「サイトアドレス」がともに現在http://〜となっていますが、これをlocalhost/phpmyadminからhttps://〜に変更すれば、SSlで表示できるという認識で合っていますでしょうか?

③そもそも、ブラウザにlocalhostとだけ入力した際に読み込みに行くディレクトリはどこなのでしょうか?先ほどあげたlocalhost:●●●(ポート番号)であれば/Applications/MAMP/htdocs/の直下を読みに行っているので動作テスト用のindex.phpなどを置いても表示はされます。ポート番号を指定しないlocalhostが読みにいくディレクトリを調べる方法をお教えいただければありがたいです。


<追記>

■(1)httpd-vhosts.confでの追記内容

NameVirtualHost *:80

~中略~

#site01用(ポート49152を使用)
Listen 49152
<VirtualHost *:49152>
    DocumentRoot "//Applications/MAMP/htdocs/テストフォルダ01" ←コピペミス
    <Directory "/Applications/MAMP/htdocs/テストフォルダ01">
        AllowOverride All
    </Directory>
    ErrorLog "logs/site1-error_log"
    CustomLog "logs/site1-access_log" common
</VirtualHost>

■(2)httpd-ssl.conf(SSL化に設定した箇所)
※これは不要だとは思いましたが確かにSSLではデフォルトはポート443のようでした。

<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "/Applications/MAMP/htdocs/テストフォルダ01"
ServerName localhost
ServerAdmin you@example.com
ErrorLog "/Applications/MAMP/Library/logs/error_log"
TransferLog "/Applications/MAMP/Library/logs/access_log"

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

#   SSL Cipher Suite:
#   List the ciphers that the client is permitted to negotiate.
#   See the mod_ssl documentation for a complete list.

# Uncomment the next line if Apache should not accept SSLv3 connections, to learn more google for "POODLE SSLv3".
# SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:-SSLv3:+EXP:+eNULL

# Comment the next line (and uncomment the line above) if Apache should not accept SSLv3 connections, to learn more google for "POODLE SSLv3".
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will prompt again.  Keep
#   in mind that if you have both an RSA and a DSA certificate you
#   can configure both in parallel (to also allow the use of DSA
#   ciphers, etc.)
SSLCertificateFile "/Applications//MAMP/conf/apache/keys/server.crt"
#SSLCertificateFile "/Applications/MAMP/conf/apache/server-dsa.crt"

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile "/Applications/MAMP/conf/apache/keys/server.key"
#SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server-dsa.key"

#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
#   concatenation of PEM encoded CA certificates which form the
#   certificate chain for the server certificate. Alternatively
#   the referenced file can be the same as SSLCertificateFile
#   when the CA certificates are directly appended to the server
#   certificate for convinience.
#SSLCertificateChainFile "/Applications/MAMP/conf/apache/server-ca.crt"

補足情報(FW/ツールのバージョンなど)

macOS High Sierra(ver10.13.1)
MAMP ver5.3
→ポート番号設定 Apache:80、MySQL:3306
Php(Apache)ver7.3.1
MySQL ver5.7.25

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mepon

    2019/07/26 23:57

    WordPress側の問題だったのでSSL化に関しては正しくできていたと思いますよ。
    以下余談ですが
    http://からポート番号無しで繋ぎたい場合は、httpd-vhosts.conf内の
    ListenとVirtualHostのポート部分を80に変更してみてください。それでポート番号無しでテストファイルは表示できるはずです。
    ただし、
    WordPress側を今後https://にした場合、http://からは恐らくアクセスできないと思います。
    以上になります。

    キャンセル

  • othellon

    2019/07/27 00:01 編集

    まさかこんなに丁寧にまとめ直してくださるとは、、逆にお手間をおかけして申し訳ありませんでした!最後の最後まで本当にありがとうございました!

    それに補足まで非常に助かります!
    明日改めてテストしてみます!遅くまでありがとうございました!

    キャンセル

  • mepon

    2019/07/27 00:06

    私も普段はPHPをかじってますが、WordPressはほぼ素人に近いので勉強になり助かりました。
    頑張ってください!

    キャンセル

回答 1

checkベストアンサー

+1

質問への追記・修正依頼にて既に解決していますが、
質問者様からの依頼により改めて解答欄に原因等をまとめます。

MAMPのSSL対応化については参考サイトを見てhttpsに対応したMAMPのサイトhttps://localhost/MAMP/?language=Japaneseに飛べるのでできているのではないかと思います。

上記対応の時点でローカルのSSL化は完了していた。

しかし、バーチャルホストで設定したhttps://localhost:●●●(※●=httpd-vhosts.confで宣言したポート番号)で接続すると見れません。単なるlocalhost:●●●で入力した場合はインストールしたWordPressのローカルサイトがブラウザ上で表示はされますが。

上記事象の原因:
①httpd-ssl.confでデフォルトのHTTPS用ポート443がListenされていたと思われるが、HTTP用のポートで接続している。
②WordPress管理画面内のWordPressアドレス及びサイトアドレスがhttp://のままになっていたため、SSL化したURLではWordPressのモジュールにアクセスできなかった。


解決策

本問題は、WordPressの設定との兼ね合いが原因でもあったため、
①一度WordPressのモジュールを退避し、DocumentRootにテスト用ファイルの設置。
②httpd-ssl.conf内のポート443を一度変更し、https://localhost:任意のポート で接続確認。→OK
③MAMPのテストサイトにポート番号無しでアクセスできていたとことだったので、
改めてデフォルトポートの443に戻したところ、問題なくポート番号無しのhttps://localhostで接続できたようです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.36%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る