コンテンツへスキップ

pleskサーバ環境のサブディレクトリにWordpressをインストールしようしたが、403エラーとなった。
パーミッション的に問題はなさそうである。

結果的に、wp-config-sample.phpからwp-config.phpをコピーで生成するとインストール画面が表示された。

他の検証環境で同様の事象を試したが、問題なくwp-config.phpなしでもインストール画面が表示されたので原因はサーバ側の何かかも

まずエラーログから確認すること。/var/log/以下に対象のエラーファイルがないか
探すこと。

今回の場合は、パスフレーズの設定が前回と不一致であったとのエラーログを確認した。

実際に、confファイルを確認すると以下に記載されていたファイルを確認すると確かにパスフレーズが不一致であった。
SSLPassPhraseDialog exec:/path/to/program:

パスフレーズを一致させるとhttpdが無事に起動した。

エラーログを確認せずに当てずっぽうに修正すると時間の無駄なので反省をしたい。

CloudLinuxサーバでroot側でrsyncがインストールされているのに、
cagefsにてユーザ側でrsyncがインストールされていない事象があった。

以下リンクによるとcagefsを有効にすると
デフォルトで無効になっているコマンドの一部にユーザ側にあるらしい

https://www.elinux.co.in/enable-rsync-for-users-on-cloudlinux/

その場合、ホスト側でインストールを追加する必要があった。
まずはrsyncされているか確認する

[/]# cagefsctl --list-rpm | grep -i rsync

何もリストにかえってこない場合、
以下コマンドにてrsyncをインストール可能

[[/]# cagefsctl --addrpm rsync
[/]# cagefsctl --update

ユーザ側でrsyncが利用可能になっていれば解決

セキュリティ的にwebサイトにIPアドレスでのアクセスをブロックすることを推奨します(Ddos攻撃とか)

今回はapacheの場合を記載します

Apache設定ファイルの編集:
通常、Apacheの設定ファイルは/etc/apache2/sites-available/または/etc/httpd/conf.d/にあります。000-default.conf や default.conf という名前のファイルを編集します。

ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/html

<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

# IPでのアクセスを拒否する設定
<Location />
    SetEnvIf Host ^[0-9\.]+$ ip_request
    Order Allow,Deny
    Allow from all
    Deny from env=ip_request
</Location>

ファイルを保存後にapacheを再起動します

sudo systemctl restart apache2

イラスト描いていてふとコンテストとかいままで応募したことないなと思い、
たまたま以下のコンテストがあったので応募しました。

https://www.pixiv.net/contest/GALLERIA1


結果的には、落選したのですが、優秀賞と比べ
現状の自分のレベルが客観的に見れたのでいい経験になりました。

構図による面白味が必要かなと痛感しました

cssで500エラーとなりサイトくずれが発生。何事かと思ったが、.htaccessの設定が問題

AuthUserFileの箇所を移転先のサーバのパスに変更しましょう
パスはpwdコマンドで確認出来ます。


.htaccess ファイルの更新

新しいサーバーのディレクトリ構造が異なる場合、.htaccess ファイルの AuthUserFile ディレクティブを更新する必要があります。新しいパスを指定してください。

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /new/path/to/.htpasswd
Require valid-user

webサーバ移転後にサイトが真っ白のままという事例は多々ある。
大抵は、プラグインやテーマ、コンフィグ、またはデータベース周りの修正すると治るのだが、
今回は全てだめだった。エラーもない200のレスポンスだったので相当参った。

色々と確認した結果、同じディレクトリにindex.phpとindex.htmlがあったので、
index.htmlが競合してると思い削除をしたところ解決した。

おそらく、検証中にindex.htmlを作成していてそれを消し忘れたのだと思う。

CHATGPTに聞いたところ、以下のように空のファイルのindex.htmlが優先されていただけらしい。

同じディレクトリにindex.phpとindex.htmlの両方がある場合、サーバーの設定によって優先的に読み込まれるファイルが決まります。通常、index.htmlが優先されることが多く、この場合、WordPressのindex.phpが無視されるため、WordPressのページが正しく表示されず、サイトが真っ白になることがあります。

解決方法:

  • 不要なindex.htmlを削除する。
  • サーバーの設定(例: .htaccessファイル)でindex.phpを優先するように変更する。

パッシブモードの問題らしくまずはポートを開放する
ufw allow 60000:60030/tcp
ufw reload

次にftpdの設定ファイルに以下を追記する
vim /etc/vsftpd.conf

pasv_addr_resolve=YES
pasv_address=(サーバーのIPアドレス)
pasv_min_port=60000
pasv_max_port=60030

ftpdを再起動しておわり
systemctl restart vsftpd.service

参考

https://qiita.com/TomoakiNagahara/items/e439010eb51da72ac482

サーバ移転後にサイトにエラーが出た場合、PHPのバージョンを変更することで解決するのですが、今回は解決せずに上記のエラーが発生。
調べてみるとWordPressのテーマが悪さをしていた

どうやら以下サイトによると「BizVektor」というテーマが原因だそうです。
画面真っ白など、まさにその通りでした。
https://wp-customize.net/wordpress/7834.html

結果的に以下ファイルの
23行目の「break」の行頭にコメントアウト「//」と入力して保存してサイトが表示されました

/公開フォルダ/wp-content/themes/biz-vektor/design_skins/003/003_custom.php on line 23

サーバ移転後にWordPressのサイトがTOPページ以外がエラーになることが度々あります。
理由は主に以下です
・DB内のURLの設定先が間違っている
・パーマリンクがおかしくなっている

今回は、パーマリンクがおかしくなっている場合に焦点をあてます

一番簡単な方法はWordPressにサインインしてパーマリンク設定で
何も変更せずに「変更を保存」をクリックすることで解消されます。

ただし、都合によってWordPressにサインインができないできないケースがあります。
その場合、phpMyAdminから修正します

phpMyAdminにログイン後、wp_optionsテーブルにて
option_name の列からpermalink_structureの行で編集を選択します

option_value」のフィールドでテキストを選択し、そのままエンター。
そして、「実行」を選択します

上記の後に対象のWordPressのサイトを確認すると404エラーが解消していると思います

参考
https://jp.godaddy.com/help/reset-wordpress-permalinks-to-fix-the-404-error-26351
https://jp.godaddy.com/help/reset-wordpress-permalinks-in-the-database-26352