MySQLのインストールと各種設定、phpMyAdminのインストールと設定


投稿日:2015年1月26日
  • 4
  • 2
  • 0



データベースと管理ツールを導入

gmo_iptables

前回」に続いて「GMO VPSを契約してWordPressを安定動作させるまでのサーバ設定方法」第五弾。

この投稿ではMySQLのインストールと初期設定。合わせて簡単なチューニングやスローログの書き出しなども設定します。また、管理用にphpMyAdminのインストールと設定を行います。

今回の解説で利用したVPSはこちら


目次


MySQLのインストールと設定

グループインストールでMySQL Database serverをインストールしましたが5.1はちょっとバージョンが低いので新しいものに入れ替えます。

MySQLのアンインストール

# yum erase mysql
(省略)
Dependencies Resolved

================================================================================
 Package             Arch          Version                Repository       Size
================================================================================
Removing:
 mysql               x86_64        5.1.73-3.el6_5         @updates        2.4 M
Removing for dependencies:
 mysql-server        x86_64        5.1.73-3.el6_5         @updates         25 M

Transaction Summary
================================================================================
(省略)

MySQLのインストール

このままremiリポジトリを利用してインストールしようとするとlibaio.so.1なるファイルが無い怒られるので、libaio.so.1を含むlibaioを先にインストールしておきます。

このへんの依存関係にあるファイルの検索方法は「以前の投稿」を参照してください。

# yum install libaio-0.3.107-10.el6
(省略)
Dependencies Resolved

================================================================================
 Package         Arch            Version                    Repository     Size
================================================================================
Installing:
 libaio          x86_64          0.3.107-10.el6             base           21 k

Transaction Summary
================================================================================
Install       1 Package(s)
(省略)

続けてメインのMySQLをインストール。

# yum install --enablerepo=remi --disablerepo=base,updates,extras,centosplus,contrib mysql mysql-server
(省略)
Dependencies Resolved

================================================================================
 Package               Arch          Version                  Repository   Size
================================================================================
Installing:
 mysql                 x86_64        5.5.37-1.el6.remi        remi        5.8 M
 mysql-server          x86_64        5.5.37-1.el6.remi        remi         10 M
Installing for dependencies:
 compat-mysql51        x86_64        5.1.54-1.el6.remi        remi        1.4 M
Updating for dependencies:
 mysql-libs            x86_64        5.5.37-1.el6.remi        remi        776 k

Transaction Summary
================================================================================
(省略)

MySQLを起動する

# /etc/init.d/mysqld start

MySQLの初期設定

mysql_secure_installationを実行します。

# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n ←rootユーザーのパスワードを変更するか聞かれるのでnでスキップ
 ... skipping.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] ←匿名ユーザーの削除。何もせずエンターで有効。
 ... Success!
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] ←リモートからのrootユーザーのログイン禁止。何もせずエンターで有効。
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] ←テスト用データベースの削除。何もせずエンターで有効。(が、そもそも作ってない)
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] ←ユーザー権限のテーブルをリロード(先ほど設定したパスワードを有効にするか)。何もせずEnterで有効(今回はパスワード変更してないので意味ない)
 ... Success!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

これで初期設定完了。

テーブルのアップデート

初回なのでアップデートの意味は無いですが、一応MySQLの作法として実行します。

# mysql_upgrade -u root -p
Enter password: ←rootユーザーのパスワード入力

Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
Running 'mysqlcheck with default connection arguments
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.servers                                      OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Running 'mysql_fix_privilege_tables'...
OK

これで無事完了。

MySQLの設定

# cd /etc
# cp my.cnf my.cnf.org
# vi /etc/my.cnf

[mysqld]セクションに追記

チューニングの値ですが、環境によって適切な値は大きく異なります。今回の値はメモリが2GBのサーバでWordPressを快適に動作させるための暫定値です。
サイズを増やせば速度に影響が出ますが、無駄に増やしてスワップすると、最悪の場合OOM Killerが発生してサーバ全体が処理を受け付けなくなります。

空きメモリを計測しつつ、ベンチマークを行い、最適な値を算出してください。
(そもそもデータベースへのアクセスは最小限にするほうが高速になります。)

MySQLの新しいバージョンから、パラメータにはハイフンではなくアンダーバーを使うように変更になりました。ハイフンでもまだ動きますが警告が出ます。
# デフォルトのエンコード
character-set-server = utf8

# 文字コードの照合順序。UTF-8から照合してくれる。
collation-server = utf8_general_ci

# SET NAMES utf8を打つまでもなくエンコードを指定してくれる。
init-connect = SET NAMES utf8

# エラーログを出力する([mysqld_safe]にエラーログに関する記述がある場合は削除すべし)
log_error=/var/log/mysql-error.log
log_warnings=1

# スロークエリのログを出力する
slow_query_log=ON
slow_query_log_file=/var/log/mysql-slow.log
long_query_time=0.1

# ここからチューニング
# ---------------------------------------------------------------

# サーバスレッドをキャッシュする数(むやみに増やさないこと) Default:8
thread_cache_size = 16

# 最も重要なキャッシュの総サイズ Default:0
query_cache_size = 64MB

# これ以上のサイズのクエリはキャッシュしない Default:1048576(1M)
query_cache_limit = 2097152

# テーブルキャッシュサイズ。同時実行性の向上 Default:64
table_cache = 256

# ソート時に使われるバッファサイズ。ORDER BY等の性能向上 Default:2MB
sort_buffer_size = 4MB

# 全件スキャンをするときに利用するバッファ Default:131072 (128K)
read_buffer_size = 262144

# InnoDB用 Default:8388608 (8MB)
innodb_buffer_pool_size = 96MB

# MyISAM用 Default:8388608 (8MB)
key_buffer_size = 64MB

# ログバッファと呼ばれる領域にデータが保持される Default:2
innodb_flush_log_at_trx_commit = 2 

# InnoDB用 logファイル Default:5MB innodb_buffer_pool_sizeの25%が推奨値(メモリが多くても128MBもあれば十分)
innodb_log_file_size = 32MB

サーバスペックに余裕がある場合はinnodb_buffer_pool_sizeを増やす。

innodb_log_file_sizeを変更すると、元々あったログファイルとサイズが違う場合エラーで起動しないので、サーバ停止後に、ログファイルを削除してから再起動する。

以下の様なエラーが出ます。

InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes

ログファイルの削除。

# rm /var/lib/mysql/ib_logfile0
# rm /var/lib/mysql/ib_logfile1

以下末尾に追加

[mysql]
# デフォルトのエンコード。
default-character-set = utf8

[client]
# デフォルトのエンコード。
default-character-set = utf8

スローログのローテーション設定

サンプルは「/etc/logrotate.d/mysqld」にあるので参考にしつつ、環境に合わせて変更します。

# vi /etc/logrotate.d/mysql-slow
/var/log/mysql-slow.log {
    create 644 mysql mysql
    notifempty
    weekly
    rotate 4
    missingok
    postrotate
    	# just if mysqld is really running
		if test -x /usr/bin/mysqladmin && \
        	/usr/bin/mysqladmin ping &>/dev/null
    	then
        /usr/bin/mysqladmin flush-logs
    fi
    endscript
}

以上の設定が終わったら、rsyslogを再起動して設定を有効にします。

# /etc/init.d/rsyslog restart

MySQLを起動する

# /etc/init.d/mysqld restart

MySQLの自動起動を設定

# chkconfig --list mysqld
# chkconfig mysqld on

phpMyAdminのインストールと設定

公式のMySQL Workbenchもありますが、やっぱり便利なphpMyAdmin

このままインストールすると依存関係で怒られるので、まずは必要なパッケージをインストール。

(省略)
# yum install --enablerepo=epel libmcrypt t1lib recode dejavu-sans-fonts libtidy
Dependencies Resolved

================================================================================
 Package                    Arch      Version                     Repository
                                                                           Size
================================================================================
Installing:
 dejavu-sans-fonts          noarch    2.30-2.el6                  base    1.7 M
 libmcrypt                  x86_64    2.5.8-9.el6                 epel     96 k
 libtidy                    x86_64    0.99.0-19.20070615.1.el6    base    127 k
 recode                     x86_64    3.6-28.1.el6                base    712 k
 t1lib                      x86_64    5.1.2-6.el6_2.1             base    160 k
Installing for dependencies:
 dejavu-fonts-common        noarch    2.30-2.el6                  base     59 k
 fontpackages-filesystem    noarch    1.41-1.1.el6                base    8.8 k

Transaction Summary
================================================================================
Install       7 Package(s)
(省略)

直接関連のあるパッケージも公式のものが優先されるとエラーが出るので無効にしてremiリポジトリ限定でインストールします。

# yum install --enablerepo=remi --disablerepo=base,updates,extras,centosplus,contrib phpMyAdmin
Dependencies Resolved
(省略)
================================================================================
 Package                        Arch      Version                 Repository
                                                                           Size
================================================================================
Installing:
 phpMyAdmin                     noarch    4.2.2-1.el6.remi        remi    4.7 M
Installing for dependencies:
 php-bcmath                     x86_64    5.4.28-1.el6.remi       remi     60 k
 php-mbstring                   x86_64    5.4.28-1.el6.remi       remi    945 k
 php-mcrypt                     x86_64    5.4.28-1.el6.remi       remi     51 k
 php-mysql                      x86_64    5.4.28-1.el6.remi       remi    136 k
 php-php-gettext                noarch    1.0.11-4.el6.remi       remi     20 k
 php-recode                     x86_64    5.4.28-1.el6.remi       remi     37 k
 php-tcpdf                      noarch    6.0.082-1.el6.remi      remi    2.7 M
 php-tcpdf-dejavu-sans-fonts    noarch    6.0.082-1.el6.remi      remi    305 k
 php-tidy                       x86_64    5.4.28-1.el6.remi       remi     55 k
Updating for dependencies:
 php-cli                        x86_64    5.4.28-1.el6.remi       remi    2.6 M
 php-common                     x86_64    5.4.28-1.el6.remi       remi    930 k
 php-fpm                        x86_64    5.4.28-1.el6.remi       remi    1.3 M
 php-gd                         x86_64    5.4.28-1.el6.remi       remi    143 k
 php-pdo                        x86_64    5.4.28-1.el6.remi       remi    120 k
 php-xml                        x86_64    5.4.28-1.el6.remi       remi    171 k

Transaction Summary
================================================================================
(省略)

phpMyAdminの設定ファイルを編集

元々用意されている設定ファイルを利用する。
昔は「/usr/share/phpMyAdmin/config.sample.inc.php」のものを「/etc/phpMyAdmin/」にコピーして使ったが、すでに用意されているようです。

# cd /etc/phpMyAdmin/
# cp config.inc.php config.inc.php.org
# vi /etc/phpMyAdmin/config.inc.php

以下のようにコメントアウトを解除する。passの部分をオリジナルのパスワードに変更するのを忘れないように。

/*
 * phpMyAdmin configuration storage settings.
 */

/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pass';

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
/* Contrib / Swekey authentication */
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';

$cfg['PmaAbsoluteUri'] = 'http://'.$_SERVER['SERVER_NAME'].'/phpMyAdmin/';

phpMyAdmin環境保管領域の設定

# mysql -u root -p
Enter password: ←SQLのrootユーザー用パスワードの入力

用意された設定用のスクリプトを実行

mysql> source /usr/share/phpMyAdmin/examples/create_tables.sql

Database changed
Query OK, 0 rows affected (0.03 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

正しく作成されたかデータベースの確認

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
+--------------------+
4 rows in set (0.00 sec)

データベースを管理する権限を持つユーザーを作成

4.1.9-1.el5.remiでは以下の書式。passの部分は「/etc/phpMyAdmin/config.inc.php」で設定したパスを入力する。

mysql> GRANT ALL PRIVILEGES ON phpmyadmin.* TO pma@localhost IDENTIFIED BY 'pass';

権限に関するテーブルを再読み込みして、終了します。

mysql> FLUSH PRIVILEGES;
mysql> exit

nginxにphpMyAdminの設定をする

今回は http://example.com/phpmyadmin<ランダムな文字列> でアクセスできるようにする。
server_nameの部分とlistenが同じなら、同じディレククティブに書かないといけない点に注意。

またphpmyadminだとブルートフォース攻撃の対象となるので、ランダムな文字列を組み合わせたURLにします。今回は「ZAOoseXRUUajHB1LfHpH」にしました。

(セキュリティを強化するために、前回解説したnginxのWordPress用の設定を上書きしてください。)

# vi /etc/nginx/nginx.conf
    server {
        listen 80;
        server_name example.com;

(省略)

        index  index.html index.htm index.php;
        root html;

        location /phpmyadminZAOoseXRUUajHB1LfHpH {
            alias /usr/share/phpMyAdmin/;
            try_files $uri $uri/ /index.php;

            location ~ ^/phpmyadmin(.+\.php)$ {
                alias /usr/share/phpMyAdminZAOoseXRUUajHB1LfHpH$1;
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$1;
                include fastcgi_params;
                fastcgi_intercept_errors on;
            }
        }

    } # server 80

alias /usr/share/phpMyAdminZAOoseXRUUajHB1LfHpH$1;」などについている「$1」は正規表現の後方参照。
()」で囲んだ部分、今回の例で言えば「(.+\.php)」で一致した内容を変数として受け取っている。つまり、「/usr/share/phpMyAdmin」ディレクトリにある拡張子が「php」のファイルを受け取っている。

location /phpmyadmin」で、以下のように書けばローカルからのみ許可される。ここに自分のネットワークに割り振られたIPや、ISPのIPを指定しておけば、不正アクセス対策にります。

allow 127.0.0.1;
allow 192.168.11.0/24;
deny  all;

他にもログイン画面に対してSSLで暗号化を行ったり、ベーシック認証で二重化するなどの対策を組み合わせるとセキュリティ上のリスクは軽減できます。

/var/lib/php/sessionの設定をする

/var/lib/php/session」の所有権をnginxとphp-fpmの実行者に合わせる。
このファイルの所有権が異なるとセッションの整合性が確認できないため、正しいIDとパスワードを入力してもログイン画面に戻ってしまい、ログインに失敗するので注意。

# chown -R www.www /var/lib/php/session

nginxの再起動

# /etc/init.d/nginx restart

今回の解説で利用したVPSはこちら
GMOクラウドのVPS

以上の設定でhttp://example.com/phpmyadminZAOoseXRUUajHB1LfHpH/にアクセスすればphpMyAdminにアクセスできます。
後は一般のレンタルサーバと同じように作業できます。
ここまでの設定でWordPressを運用できますが、せっかくなので一連の流れで需要の多いメールサーバの構築に関しても解説します。

次は「メールサーバ構築のためOpenSSL、Postfix、Dovecotのインストールと設定」です。



現在のページを共有する



現在のページに関連する記事


おすすめの記事


いただいたコメントなど

  1. linux入門者 のコメント:

    いつも大変参考にさせて頂いてます。
    このページの
    「nginxにphpMyAdminの設定をする」という箇所ですが、
    vi /etc/nginx/nginx.confで表示された内容と
    別ページの
    http://oxynotes.com/?p=8438
    で最初に設定したnginx.confが随分違うように見えます。
    これは参考程度ということでランダムな文字列の
    ZAOoseXRUUajHB1LfHpHを下記に追記する
    location /{

    location /phpmyadminZAOoseXRUUajHB1LfHpH {
    という認識で良いのでしょうか?
    また、
    alias /usr/share/phpMyAdminZAOoseXRUUajHB1LfHpH$1;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$1;
    include fastcgi_params;
    なども追加するものなのでしょうか。
    恐れ入りますがよろしくお願いいたします。

    • oxy のコメント:

      追記というよりも上書きです。

      解説にもありますが、http://example.com/phpmyadminというアドレスに対してブルートフォース攻撃を仕掛けるのは、ハッカーの常套手段です。大抵の攻撃はbotを利用して執拗に繰り返されるため、無駄なリソースを割くことになります。そのため、自分しか分からないアドレスに変更するという対策です。

      この考え方はSSHでポートを独自のものに変えたのと同じです。

  2. linux入門者 のコメント:

    御回答ありがとうございます。
    下記部分を上書きするのはlisten 80;の部分だけでよいのでしょうか?
    location ~ ^/phpmyadmin(.+\.php)$ {
    alias /usr/share/phpMyAdminZAOoseXRUUajHB1LfHpH$1;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$1;
    include fastcgi_params;
    fastcgi_intercept_errors on;

    上書き部分がlisten 8080;の内容に似ていたので質問させていただきました。
    location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;

    なお、ここに記載するのはおかしいのですが、
    オリジナルの /etc/nginx/nginx.conf は”}”の数が足りないように思えます。

    • oxy のコメント:

      nginxの解説ページではさらっと流す程度でしたが、ポート80でリバースプロキシのキャッシュを返して、キャッシュが存在しない場合にポート8080をバックエンドサーバとして実行するという設定の例です。

      phpMyAdminは自分しかアクセスせず、キャッシュされるとリアルタイムに更新が反映されないため、キャッシュする意味がありません。そのためポート80でphpを実行しています。ということでポート80にだけ記述しておいてください。

      オリジナルの設定ファイルは最後に付けるはずのhttpディレクティブ用の閉じ括弧がなかったですね。コピペ時に無くなったようです。ご指摘ありがとうございます。修正しました。

  3. masu のコメント:

    先日GMOクラウド VPS を契約し、こちらのページを参考にさせていただきセットアップしております。
    詳しい解説で、多少html、cssの知識があるだけの素人ながら何とかwordpressの表示ができそうで助かっております。ありがとうございます。

    phpmyadminへのアクセスで困っております。

    解説通りに
    # vi /etc/nginx/nginx.conf
    を行い、http://example.com/phpmyadminにアクセスすると File not found. が表示されます。
    (example.comは独自ドメインで設定しています。非掲載ご了承下さい。)
    # vi /etc/nginx/nginx.confの書き方がおかしいのか、何か必要なデータがインストールできてないのかと思っております。解決方法お分かりになられれば教えていただけると幸いです。

    よろしくお願いいたします。

    • oxy のコメント:

      はじめましてmasuさん

      not foundの件ですが、このサイトと同じ設定にした場合は「nginxにphpMyAdminの設定をする」の項目にある通り、
      http://example.com/phpmyadmin< ランダムな文字列>
      でアクセスできるはずです。

      このページの設定を元に、ランダムな文字列までコピペで設定されているなら、
      http://example.com/phpmyadminZAOoseXRUUajHB1LfHpH
      というアドレスでアクセスできるはずです。

      この対策は「http://example.com/phpmyadmin」というURLはスパマーに想定されやすく、ログイン画面へブルートフォース攻撃されやすいため、phpmyadminのURLを隠すという対策です。

  4. ピンバック: さくらのVPSのセットアップメモ 3:Nginx・PHP・MySQL・phpMyAdminのセットアップ | BLOG.DevZone.JP

  5. 岡田 のコメント:

    こんばんは、Niginxリバースプロキシの記事で最初にコメントしてDNS関連のことで色々と長文説明をいただいた岡田です。お陰様で、あれからサーバ関連はかなり詳しくなりました。いつも新しいサイトを立ち上げる時はOXYNOTEのNgingx.CONF設定を参考にしています。

    今回は私ごときですが、SEOについてご指摘があります。
    Googleで『OXYNOTE phpmyadmin』と検索してもこの記事が見つかりませんでした。代わりに関連記事が検索結果にたった2件表示されています。以前にも似たようなことがあり、探すのに少し手間をとりました。

    H1タグはページ一つに、のタイトルタグと同じにすることでかなり変わると思います。
    例えばこの記事なら「MySQLのインストールと各種設定、phpMyAdminのインストールと設定」はH2では無くH1で、その下の「データベースと管理ツールを導入」をH1からH2にします。「目次」のH2タグはDIVなどにします。残りのH3は正しいと思います。これで1.5倍は変わると思います。

    変えるとCSSで乱れてしまうなら
    #content .entry-content h3{
    このようにエレメントを直接指定せず、すべてclassで分ければ楽です。

    他にもデバイスごとWEBデザイン幅などのレスポンシブなど、色々ご指摘があります。その際は
    私ごとき信頼性に欠けるかもしれませんので、ご自身でお調べください。

    それでは私はこの記事を参考にWordpressを使わないブログを作りたいと思います。
    失礼します。

    • oxy のコメント:

      岡田さん、お久しぶりです。
      参考にしていただき恐縮です。

      このブログはWordPressのテスト用に作成したため、作成当時はWordPressに対して知見が無く、「記事のタイトルならh1だろ」と何も考えず作成してしまいました。
      気がついた時に修正すれば良かったのですが、現在では記事数も多くなり、無精で手付かずの状態となっております。
      (よく考えたらMySQLで置換すれば一発ですね)

      また、恐縮ですが検索の際は「oxynote」ではなく「oxynotes」で検索していただけると表示されると思います。

コメントを残す

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。面倒な登録なしでご利用になりれます。