戻る

WordPress

2023/09/05

WordPressアイコン


他の関連ページ
WordPress - 再導入後①
WordPress - 再導入後➁
WordPress - MySQL データベースの修復
WordPress - Lightning



概要

ホームページ作りに携わって14年になる。「ホームページ作り入門」などの本を片手に始めて、長い間cssやhtmlタグを使った手作りサイトを作成・管理をしている。

最近では、多くのホームページがWordPressによって作られていることを実感するようになった。

現在担当している公式ホームページをいつか誰かに引き継ぐためにも、汎用的な手法を考えておかなくてはと思う。

ここではホームページとブログを一括りにしてホームページと表現する。

WordPress(ワードプレス)はPHPというプログラミング言語で作られているCMS(*)の一種で、ブログやWebサイトを作る事ができる。 (*CMS = Contents Management System : Webサイトの運営にかかるコストと時間を削減できるツール)

WordPressは世界中の全ウェブサイトの43.1%(2023年6月現在)で利用されており、日本でも人気が高く、利用されたCMSのうちWordPressが大半を占める。個人ではアフィリエイト(*)等のブログに、企業ではWebサイトや記事メディアと広く使われている。 (*アフィリエイト = affiliate : 「成果報酬型広告」とも呼ばれ、自身のサイトやブログ記事に貼った広告経由で商品購入されると、成果に応じた報酬を得られる。)

通常、ホームページは自分のpcでプログラムや画像を作成して、契約しているレンタルサーバーにFTP(File Transfer Protocol)でアップロードする。インターネット閲覧者はChrome、 Safari、Edgeなどのインターネットブラウザを通してサーバーにあるプログラムで、ホームページを見る。

WordPressはレンタルサーバー上でホームページを作成するソフトで、作成したサイト情報をサーバーで保持する。

ホームページを作るには、cssやhtmlを使用するより汎用的なツールを使う時代になった。

さらに数年のうちにAIを使って簡単に好みのホームぺージが作れるようになるだろう。検索してみるとすでにそれらしいサイトはあるようだが部分的にAIを活用しているようだ。指示するだけで好みのページが出来上がるのはもう少し先と思う。この分野は技術的にAIの得意分野である。
AIがホームページ制作に与える影響とは?(Soil Trust)

WordPressを使うには基本的には契約したレンタルサーバーにWordPressを導入して使うが、試験的な使用や学習しようとするにはハードルが高い。

ここで登場するのがXAMPP(ザンプ、シャンプ)という無料ソフト。有難いことに自分のpcに導入すると、あたかもサーバー上で動いているような環境を作ってくれる。
XAMPP サイト

これまで、Web APIのテストにXAMPPの「Apache(アパッチ)」を使用したローカルWEBサイトを数年前から使用しており、今回はデータベースとしてMySQLを使う。WordPressはデータ処理のためにMySQLを使う。

おすすめの参考サイト

レンタルサーバー契約をせずに自分のpcでのみテストをしたい場合はこちら。
 ハズ部 : XAMPPを使ってWordPressローカル環境を構築する全手順

レンタルサーバー契約をして、ホームページを作成する場合のガイドとして、こちらのYouTubeがおすすめ。丁寧で分かりやすい。
 WordPressテーマ「Cocoon 」を使ったブログサイトの始め方・作り方

レンタルサーバー会社としてlolipopは使いやすい。
 【初心者向け】 WordPressの使い方、始め方を徹底解説


XAMPPやWordPressに関して多くのガイドサイトがあり、上でも案内したサイト・YouTubeなどを参照してもらってここでは詳細な説明は省く。気が付いた点など解説する。

*(画像を拡大するには写真上で右クリックしブラウザの「新しいタブで画像を開く」を選んでそちらのタブを表示)


テスト環境 : HP製pc , Core i7-1255U, Windows 11, メモリ16GB , ストレージ SSD 512GB


XAMPPの画面



WordPressのダッシュボード



webページレイアウト例



WordPressのダッシュボード・投稿時の注意点



Cocoon



記事投稿



記事投稿・ギャラリー



出来上がり・ヘッダー



出来上がり・下部




MySQLエラー

  • せっかく作ったサイトのデータベースが壊れた
  • 再導入
  • こちらへ続くWordPress Part2




参考) XAMPPエラーログ


2023-09-07 19:29:30 0 [Note] c:\xampp\mysql\bin\mysqld.exe: ready for connections.
Version: '10.4.28-MariaDB' socket: '' port: 3306 mariadb.org binary distribution
230907 19:30:05 [ERROR] mysqld got exception 0xc0000005 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.

To report this bug, see https://mariadb.com/kb/en/reporting-bugs

We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.

Server version: 10.4.28-MariaDB source revision: c8f2e9a5c0ac5905f28b050b7df5a9ffd914b7e7
key_buffer_size=16777216
read_buffer_size=262144
max_used_connections=2
max_threads=65537
thread_count=7
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 20302 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x2b84cd42f98
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
mysqld.exe!?_Assign_grow@?$_Hash_vec@V?$allocator@V?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@std@@@std@@@std@@QEAAX_KV?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@2@@Z()
mysqld.exe!?_Assign_grow@?$_Hash_vec@V?$allocator@V?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@std@@@std@@@std@@QEAAX_KV?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@2@@Z()
mysqld.exe!?_Assign_grow@?$_Hash_vec@V?$allocator@V?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@std@@@std@@@std@@QEAAX_KV?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@2@@Z()
mysqld.exe!?_Assign_grow@?$_Hash_vec@V?$allocator@V?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@std@@@std@@@std@@QEAAX_KV?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@2@@Z()
mysqld.exe!?_Assign_grow@?$_Hash_vec@V?$allocator@V?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@std@@@std@@@std@@QEAAX_KV?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@2@@Z()
mysqld.exe!?_Assign_grow@?$_Hash_vec@V?$allocator@V?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@std@@@std@@@std@@QEAAX_KV?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@QEAU_iobuf@@PEAX@std@@@std@@@std@@@2@@Z()
mysqld.exe!pthread_dummy()
mysqld.exe!?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@QEBD_K@Z()
mysqld.exe!?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@QEBD_K@Z()
mysqld.exe!?ha_open@handler@@QEAAHPEAUTABLE@@PEBDHIPEAUst_mem_root@@PEAV?$List@VString@@@@@Z()
mysqld.exe!?open_table_from_share@@YA?AW4open_frm_error@@PEAVTHD@@PEAUTABLE_SHARE@@PEBUst_mysql_const_lex_string@@IIIPEAUTABLE@@_NPEAV?$List@VString@@@@@Z()
mysqld.exe!?open_table@@YA_NPEAVTHD@@PEAUTABLE_LIST@@PEAVOpen_table_context@@@Z()
mysqld.exe!?open_and_lock_tables@@YA_NPEAVTHD@@AEBUDDL_options_st@@PEAUTABLE_LIST@@_NIPEAVPrelocking_strategy@@@Z()
mysqld.exe!?open_tables@@YA_NPEAVTHD@@AEBUDDL_options_st@@PEAPEAUTABLE_LIST@@PEAIIPEAVPrelocking_strategy@@@Z()
mysqld.exe!?open_and_lock_tables@@YA_NPEAVTHD@@AEBUDDL_options_st@@PEAUTABLE_LIST@@_NIPEAVPrelocking_strategy@@@Z()
mysqld.exe!?execute_init_command@@YAXPEAVTHD@@PEAUst_mysql_lex_string@@PEAUst_mysql_rwlock@@@Z()
mysqld.exe!?mysql_execute_command@@YAHPEAVTHD@@@Z()
mysqld.exe!?mysql_parse@@YAXPEAVTHD@@PEADIPEAVParser_state@@_N3@Z()
mysqld.exe!?dispatch_command@@YA_NW4enum_server_command@@PEAVTHD@@PEADI_N3@Z()
mysqld.exe!?do_command@@YA_NPEAVTHD@@@Z()
mysqld.exe!?pool_of_threads_scheduler@@YAXPEAUscheduler_functions@@PEAKPEAI@Z()
mysqld.exe!?tp_callback@@YAXPEAUTP_connection@@@Z()
ntdll.dll!RtlHashUnicodeString()
ntdll.dll!RtlClearThreadWorkOnBehalfTicket()
KERNEL32.DLL!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x2b84cd4c2f0): SELECT COUNT(*)
FROM wp_comments
WHERE ( comment_approved = '1' )

ORDER BY wp_comments.comment_date_gmt DESC
Connection ID (thread ID): 8
Status: NOT_KILLED

Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on

The manual page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mysqld/ contains
information that should help you find out what is causing the crash.
Writing a core file at C:\xampp\mysql\data\
Minidump written to C:\xampp\mysql\data\mysqld.dmp