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

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

新規登録して質問してみよう
ただいま回答率
85.48%
さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

1409閲覧

WORDPRESSで初期インストール画面から崩れる原因

tesopgmh

総合スコア146

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2021/04/21 16:30

編集2021/04/22 01:49

SAKURA VPS 1G
CentOS7
PHP バージョン7.4
MySQL バージョン5.6

WORDPRESSの推奨バージョンを使い
二つのサブドメインサイト「huga.aaa.jp」「hoge.aaa.jp」セットアップをしようとしているのですが
どちらも初期のインストール画面から「https」でアクセスすると画面が崩れます
ソースを見るとスタイルシートなどがすべて「http」になっています
インストール後ならわかるのですが、初期セットアップ時から崩れる意味が分かりません
これはなにが原因かわかる方いらっしゃいますでしょうか

「http」でアクセスすると崩れはなくなるので
一旦非SSLでインストールをして、セットアップを完了後管理画面のSSL化(最新のWPではデフォルトで用意されています)ボタンを押すと
画面がリダイレクトループになって二度と管理画面に入れなくなります
クッキーを削除しても、プライベートブラウジングにしても結果は同じです

「https」で崩れたままセットアップを完了すると
ログインができません

サーバをセットアップしたコマンド一覧は以下の通りです

PHP7.4をインストール

yum -y update && \ yum -y install epel-release mod_ssl openssl && \ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && \ yum install -y --enablerepo=remi,remi-php74 php php-devel php-mysql php-gd php-mbstring php-pear php-imap php-xmlrp php-xml php-pgsql php-mcrypt && \ systemctl start httpd.service && \ systemctl enable httpd.service && \

MYSQL5.6

yum -y remove mariadb-libs && \ rm -rf /var/lib/mysql/ && \ yum -y localinstall http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm && \ yum -y install yum-utils && \ yum-config-manager --disable mysql57-community && \ yum-config-manager --enable mysql56-community && \ yum -y install mysql-community-server && \ systemctl enable mysqld && \ systemctl start mysqld && \

最新のワードプレス設置

cd /var/www/html && \ wget https://ja.wordpress.org/latest-ja.tar.gz && \ tar -xzvf latest-ja.tar.gz && \ mv wordpress/ huga/ && \ tar -xzvf latest-ja.tar.gz && \ mv wordpress/ hoge/ vi /etc/httpd/conf/httpd.conf <VirtualHost *:80> ServerName huga.aaa.jp DocumentRoot "/var/www/html/huga/" </VirtualHost> <VirtualHost *:80> ServerName hoge.aaa.jp DocumentRoot "/var/www/html/hoge/" </VirtualHost> systemctl restart httpd vi /etc/httpd/conf.d/ssl.conf SSLCertificateFile /etc/letsencrypt/live/huga/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/huga/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/huga/chain.pem <VirtualHost *:443> ServerName huga.aaa.jp DocumentRoot "/var/www/html/huga/" </VirtualHost> <VirtualHost *:443> ServerName hoge.aaa.jp DocumentRoot "/var/www/html/hoge/" </VirtualHost> systemctl restart httpd

レッツエンクリプト

yum -y install snapd && \ systemctl enable --now snapd.socket && \ ln -s /var/lib/snapd/snap /snap && \ systemctl start snapd.seeded.service && \ snap install --classic certbot && \ sudo ln -s /snap/bin/certbot /usr/bin/certbot && \ certbot certonly --webroot -w /var/www/html/huga -d huga.aaa.jp -w /var/www/html/hoge -d hoge.aaa.jp

確認したコマンドを書いていきます

# apachectl -v Server version: Apache/2.4.6 (CentOS) Server built: Nov 16 2020 16:18:20 # apachectl configtest Syntax OK # httpd -D DUMP_VHOSTS VirtualHost configuration: *:443 is a NameVirtualHost default server XXX.sakura.ne.jp (/etc/httpd/conf.d/ssl.conf:56) port 443 namevhost XXX.sakura.ne.jp (/etc/httpd/conf.d/ssl.conf:56) port 443 namevhost huga.aaa.jp (/etc/httpd/conf.d/ssl.conf:221) port 443 namevhost hoge.aaa.jp (/etc/httpd/conf.d/ssl.conf:226) *:80 is a NameVirtualHost default server XXX.XXX.XXX.XXX (/etc/httpd/conf/httpd.conf:356) port 80 namevhost XXX.XXX.XXX.XXX (/etc/httpd/conf/httpd.conf:356) port 80 namevhost hoge.aaa.jp (/etc/httpd/conf/httpd.conf:366) port 80 namevhost huga.aaa.jp (/etc/httpd/conf/httpd.conf:371) 「.htaccess」ファイルに関しましては VPSのインストール、WPの展開後、ともになにも追加はしていません WPのディレクトリルートを確認するとそれらしきファイルはありませんでした

https://qiita.com/backgroundcolor/items/22ff275d0e82d4e5edd7
上記にあります通り

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS'] = 'on';

を試しましたが改善はされませんでした

var_dump($_SERVER['HTTP_X_FORWARDED_PROTO']); NULL

HTTP_X_FORWARDED_PROTOのパラメータがそもそも入っていないので
上記は動かないようです

有無を言わさず強制的にSSLをONはうまくいきました

$_SERVER['HTTPS'] = 'on';

もう今の時代非SSLを使うことはほぼないと思うので
もうこれでもいいのですが、根本的な原因が知りたいので
このままオープンにさせていただきます

上記の強制的にSSLをONの方法はダメでした
セットアップを最後まで進め(この時点ではSSLでも崩れなし)
ログインしようとすると、「このページにアクセスする権限がありません。」とでて
ログインできません、、、wordpressが嫌いになりそうです。。

https://ysklog.net/wordpress/2025.html
たった今インストールしたばかりなので移転もデータベースの接頭辞を変更などもしていません

試しに環境変数を全部出してみました
SSLで接続しています

print_r($_SERVER); Array ( [UNIQUE_ID] => XXXXXXXXXXXXXXXXXXX [HTTP_HOST] => huga.aaa.jp [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0 [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 [HTTP_ACCEPT_LANGUAGE] => ja,en-US;q=0.7,en;q=0.3 [HTTP_ACCEPT_ENCODING] => gzip, deflate, br [HTTP_CONNECTION] => keep-alive [HTTP_COOKIE] => XXXXX [HTTP_UPGRADE_INSECURE_REQUESTS] => 1 [HTTP_CACHE_CONTROL] => max-age=0 [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin [SERVER_SIGNATURE] => [SERVER_SOFTWARE] => Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.16 [SERVER_NAME] => huga.aaa.jp [SERVER_ADDR] => XXX.XXX.XXX.XXX [SERVER_PORT] => 80 [REMOTE_ADDR] => XXX.XXX.XXX.XXX [DOCUMENT_ROOT] => /var/www/html/huga/ [REQUEST_SCHEME] => http [CONTEXT_PREFIX] => [CONTEXT_DOCUMENT_ROOT] => /var/www/html/huga/ [SERVER_ADMIN] => root@localhost [SCRIPT_FILENAME] => /var/www/html/huga/tera.php [REMOTE_PORT] => 638 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => /tera.php [SCRIPT_NAME] => /tera.php [PHP_SELF] => /tera.php [REQUEST_TIME_FLOAT] => XXX [REQUEST_TIME] => XXX )

気になるのはSSLで接続しているのにも関わらず
[SERVER_PORT] => 80
[REQUEST_SCHEME] => http
と非SSLのような値になっていることです

設定のなにかが間違っているのでしょうか

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AbeTakashi

2021/04/21 17:01

これ、あるあるなんですよね。自分もよくこの状況に遭遇します。たぶん調べられたとは思うのですが「wordpress https リダイレクトループ」で検索すると色々な記事が出てきます。 例) https://qiita.com/backgroundcolor/items/22ff275d0e82d4e5edd7 色々な対策があるのでどれが適切なのか分かりませんが、一通り試してみるといいと思います。Apacheなのかngnixなのかの記載がないようなので、質問文に追記した方がいいかもしれません。すでに試されたことやwp-config.php、.htaccessなどの設定状況も追記するとより良いアドバイスが来ると思います。
zembutsu

2021/04/22 00:02

「apachectl configtest」を実行されても問題ないでしょうか。 そのほか2点気になるところがありました。1つめは「httpd -D DUMP_VHOSTS」を実行すると、「*:80」と「*:443」のそれぞれに「port xxx namevhost huga.~.jp」と「port xxx namevhost hoge.~.jp」が出ていますでしょうか。差し支えなければ、質問欄に記入いただくと、原因の切り分けに役立ちそうです。 もう1つは、「.htaccess」ファイルをどこかに置かれていたら、記入されたほうが参考になります。
tesopgmh

2021/04/22 01:11 編集

TakashiAbe様 zembutsu様 ご指摘ありがとうございます お教え頂きましたコマンドの結果は以下になります # apachectl -v Server version: Apache/2.4.6 (CentOS) Server built: Nov 16 2020 16:18:20 # apachectl configtest Syntax OK # httpd -D DUMP_VHOSTS VirtualHost configuration: *:443 is a NameVirtualHost default server XXX.sakura.ne.jp (/etc/httpd/conf.d/ssl.conf:56) port 443 namevhost XXX.sakura.ne.jp (/etc/httpd/conf.d/ssl.conf:56) port 443 namevhost huga.aaa.jp (/etc/httpd/conf.d/ssl.conf:221) port 443 namevhost hoge.aaa.jp (/etc/httpd/conf.d/ssl.conf:226) *:80 is a NameVirtualHost default server XXX.XXX.XXX.XXX (/etc/httpd/conf/httpd.conf:356) port 80 namevhost XXX.XXX.XXX.XXX (/etc/httpd/conf/httpd.conf:356) port 80 namevhost hoge.aaa.jp (/etc/httpd/conf/httpd.conf:366) port 80 namevhost huga.aaa.jp (/etc/httpd/conf/httpd.conf:371) 「.htaccess」ファイルに関しましては VPSのインストール、WPの展開後、ともになにも追加はしていません WPのディレクトリルートを確認するとそれらしきファイルはありませんでした 以上、引き続きどうぞよろしくお願いいたします
zembutsu

2021/04/22 04:41

念のため「 httpd -DDUMP_CONFIG | grep Rewrite」を実行されますと、何か出てきますでしょうか。
zembutsu

2021/04/22 04:41

こちらは、意図しない場所で mod_rewrite の設定が入っていないかどうかを確認するコマンドです。
tesopgmh

2021/04/22 04:51

zembutsu様 ありがとうございます # httpd -DDUMP_CONFIG | grep Rewrite の結果は「何も出ない」でした
zembutsu

2021/04/22 04:52

ちなみに、一通り素のOS初期状態から、環境の構築(DNSで2つのレコード作成や反映、Apacheやcertbot設定、wordpress初期設定)を行ってみましたが、再現ができずにいます。おそらく、なにかしら影響を与えていそうなポイントはあると思うのですが・・・。
tesopgmh

2021/04/22 05:00

そこまでやっていただいていたのですね、ありがとうございます 私も、CentOS7をインストールしなおして、という試行錯誤を5回くらいは重ねていますが 改善はされない状況でございます お教え頂いた、ABSPATHより前に強制的にSSLにするパラメータをもってきたら 管理画面にログインできるようになりましたのでこちらで運用をしていきたいと思います ありがとうございました
zembutsu

2021/04/22 19:39

改めて確認しますと、環境変数「[REMOTE_PORT] => 638」が気になりました。 こちはクライアント側PCでブラウザが使う通信ポートで、一般的にはハイポートと呼ばれる60000番台などの空いているポート番号を使います。 638のような小さな番号は、システム側で使うプログラムの可能性が高いです。もしかして、PC側でセキュリティ管理用のソフトウェアが入っている場合、ネットワーク経路上にproxyやルータなどで、HTTP・HTTPS通信をフィルタリングしたりモニタリングするようなツールが入っている可能性もありませんでしょうか。 PC以外、たとえばスマートフォンなどからサイトにアクセスしても、同様の現象が発生するかどうかでも確認されますと、原因の切り分けが進みます。
guest

回答1

0

ベストアンサー

掲載された情報を拝見する限り、ウェブサーバ側が問題の可能性は少なく、WordPress で何かしらの設定による影響が考えられます。

現在の課題「このページにアクセスする権限がありません。」については、次のページにあるような wp-config.php の書き換えで回避できるようです。

あるいは、他の原因として、何か WordPress 側でプラグインが入っている時も、問題が起こることはあるようでした。

投稿2021/04/22 03:27

zembutsu

総合スコア1584

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tesopgmh

2021/04/22 04:55

ありがとうございます!! define( 'ABSPATH', __DIR__ . '/' ); より上に $_SERVER['HTTPS'] = 'on'; を配置することでログインエラーはなくなりました 非SSLで使うことはないのでこの運用方法で行きたいと思います 大変助かりましたありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問