wordpressで「エラーが発生しました。アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。」と出た場合の対処法

upload_max_filesize を超過した場合の対処法。

phpで設定されているアップロードのファイル上限を変更する

WordPressで”エラーが発生しました。アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。”と出た場合、ファイル上限の設定を変更する必要があります。

サーバ環境

  • さくらのVPSレンタルスペース
  • Ubuntu18.04
  • php7.2
  • MariaDB10.1.34

# vi /etc/php/7.2/fpm/php.ini

@825行目付近
upload_max_filesize = 100M

@phpを再起動して終了
# systemctl restart php7.2-fpm

[さくらのVPS + Ubuntu18.04] Nginx + PHP + MariaDB + PhpMyAdmin を導入してLEMP環境にする

Ubuntu18.04LTS環境にLEMPを整える

さくらのVPSにLEMP環境を導入

  • Nginx
  • MariaDB
  • PHP
  • phpMyAdmin

1.Nginxを導入する

WEBサーバに高速HTTPサーバソフトウェアであるNginx(エンジンエックス)をインストールします。

# apt update
# apt -y install nginx
# systemctl status nginx
# vi /etc/nginx/sites-available/default

@46行目:サーバ名変更
server_name ubuntu18-isikari-server;

# systemctl restart nginx

さくらのVPSサーバへアクセスしてデフォルトページの表示を確認する。

http://さくらのVPSサーバ名/

2.PHPを導入する

PHPを導入します。
デフォルトのパッケージではphp-fpmが存在しないようで、リポジトリの設定を変更してから導入します。
パッケージはApacheを想定しているようで警告が出ます。HTTPアプリケーションは導入していますので無視します。

# add-apt-repository universe
# apt update
# apt install -y php php-fpm php-common php-mysql php-gd php-cli
# vi /etc/php/7.2/fpm/php.ini

@776行目
cgi.fix_pathinfo=0

# systemctl restart php7.2-fpm
# vi /etc/nginx/sites-available/default

@64行目に追記

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}

#systemctl restart nginx
#echo “<?php phpinfo(); ?>” | tee /var/www/html/info.php

さくらのVPSサーバへアクセスしてphpinfoページの表示を確認する。

http://さくらのVPSサーバ名/info.php

3.MariaDBを導入する

データベースシステムにMariaDBを導入します。

# apt -y install mariadb-server
# vi /etc/mysql/mariadb.conf.d/50-server.cnf

@111、112行目を変更
character-set-server = utf8
collation-server = utf8_general_ci

# systemctl restart mariadb

MariaDBの初期設定

# mysql_secure_installation

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

In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, 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 MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB 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] y
… 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] y
… Success!

By default, MariaDB 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] y
– 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] y
… Success!

Cleaning up…

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

Thanks for using MariaDB!

@MariaDBにrootユーザで接続する
# mysql -u root -p
Enter password: 設定したパスワードを入力
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 38
Server version: 10.1.34-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]> select user,host,password from mysql.user;
+——+———–+——————————————-+
| user | host | password |
+——+———–+——————————————-+
| root | localhost | ************************ |
+——+———–+——————————————-+
1 row in set (0.00 sec)

MariaDB [(none)]> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
+——————–+
3 rows in set (0.01 sec)

MariaDB [(none)]> exit
Bye

4.phpMyAdminを導入する。

phpMyAdminを導入してMariaDBを操作できるようにします。

# apt -y install phpmyadmin php-gettext

HTTPサーバソフトウェアを選択します。

必要ないので[No]

# vi /etc/nginx/sites-available/default

@53行目あたりに追記
location /phpmyadmin {
root /usr/share;
index index.php;
location ~ ^/phpmyadmin.+\.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ;
include fastcgi_params;
}
}

さくらのVPSサーバへアクセスしてphpmyadminページの表示を確認する。

http://さくらのVPSサーバ名/phpmyadmin/

rootログインが出来ない模様ですので新規でログインユーザを作ります。

# mysql -u root -p
Enter password: rootパスワードを入力
MariaDB [(none)]> CREATE USER ‘admin’@’localhost’ IDENTIFIED BY ‘password’;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO ‘admin’@’localhost’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye

作成したユーザーでphpMyAdminページより再度ログインを試みる。

ログインできました。

Ubuntu18.04LTS環境にLEMP構築は以上です。
お疲れ様でした。

[さくらのVPS + Ubuntu18.04] サーバーの初期設定をする

Ubuntu18.04サーバーの初期設定をする

前回でさくらのVPSにUbuntu18.04サーバ版をインストールしました。
まずは使い始め前のサーバ初期設定を行っていきます。

インストール初期状態でSSH接続が可能ですので、teratermなどでサーバへ接続します。

1.システム最新化

まずはインストールされているアプリケーションを最新化しておきます。バグなども多く修正されておりますので最新版にします。

$sudo apt update
[sudo] password for ***: 自身のパスワード入力
$sudo apt upgrade -y

しばらく待つとアプリケーションが最新版にアップグレードされます。

2.rootユーザーを作成

サーバーを色々と操作する際に、ユーザー権限では毎回sudoというコマンドを入力せねばならず労力となりますのでrootユーザーを作ります。

$sudo -s
[sudo] password for ***: 自身のパスワード入力
# 遷移完了
# passwd root
Enter new UNIX password: rootユーザパスワード入力
Retype new UNIX password: 確認再入力
passwd: password updated successfully
# exit  自身のユーザーへ戻る
exit

$ su –
Password: rootユーザパスワード入力
# 遷移完了

3.vimの設定

テキストエディタはコンフィグ設定など非常に使う機会が多いために便利なよう設定しておきます。

#apt install vim -y
#vi ~/.vimrc

[新規ファイル]
” vim の独自拡張機能を使用(viとの互換性無し)
set nocompatible
” 文字コードを指定
set encoding=utf-8
” 自動認識させる改行コードを指定
set fileformats=unix,dos
” 検索語にマッチした単語をハイライト
” 逆は [ set nohlsearch ]
set hlsearch
” 行番号を表示
” 逆は [ set nonumber ]
set number
” 改行 ( $ ) やタブ ( ^I ) を可視化
set list
” 括弧入力時に対応する括弧を強調
set showmatch
” 構文ごとに色分け表示
” 逆は [ syntax off ]
syntax on
” [ syntax on ] の場合のコメント文の色を変更
highlight Comment ctermfg=LightCyan
” ウィンドウ幅で行を折り返す
” 逆は [ set nowrap ]
set wrap

[さくらのVPS + Ubuntu18.04] サーバーを構築する1

さくらのVPS + Ubuntu18.04 サーバーを構築する

数年間ソ○トバンクのプロバイダを利用していました。
価格が下がると営業電話にのせられニ○ティーに乗り換えたところ、WAN側のIPアドレスが毎日変更されるらしく、とても自宅サーバーを置ける環境になくさくらのVPSのレンタルサーバーを使います。

レンタルのサーバー仕様

仮想3CoreのCPU
2GBのメモリ
200GBのHDD

Ubuntu18.04サーバ版

いまはSSDのサービスもありますが、50GBとHDDと比べ容量が少なく、色々やりたいと思っておりますのでHDDを選択しました。

契約の後、さくらのVPSコントロールパネル へログインをします。

初期状態ではCentOSがインストールされていますが、全部削除を行いましてUbuntu18.04をインストールします。

画面左側にあります サーバ > 契約したサーバを選択 > 右上 各種設定 > OSインストール > ISOイメージ  を選びます。

さくらのVPSにUbuntuのサービスもありますが、本家から持ってきたISOファイルを使います。

(ubuntu-18.04.1-live-server-amd64.iso)

さくらのVPSコントロールパネル画面の下にSFTP接続するアカウント発行ボタンが現れますので発行を行います。

WinSCPなどのSFTPが使えるアプリケーションで指示されたディレクトリにISOファイルを置いてきます。

アップロードが終わったら、さくらのVPSコントロールパネル下、設定内容を確認するを押します。

最終確認を聞いてきますので、インストールを実行しますを押します。

しばらく待つとVNCコンソールを起動というボタンが明るくなりますので押します。

VNCコンソールによるインストール

VNCによるブラウザ上に表示する仮想画面です。キーボード操作が遠隔で行なえます。

最初の画面、言語を聞いてきますので通常はEnglishでしょうか。
他の言語が良ければ英語以外でも構わないと思います。

2番めにキーボードのレイアウトを聞いてきますので日本キーボードへ変更を行います。
上側Layoutを変更するとしたのVariantもJapaneseに変更されますので、選択したら下段Doneを押します。

Layout:[Japanese]
Variant:[Japanese]

オプションを聞いてきます。今回は不要なのでInstall Ubuntuを選びます。

ネットワークの設定です。ダイナミックDHCPは無いのでスタティックの設定を行います。

[ens3 eth DHCPv4 has supplied no addresses ▶]
[Edit IPv4 ▶]

コントロールパネルに表示されている設定情報を入れていきます。
※ITネットワークの専門知識が必要です。別途ページにコメントが多数あるようでしたら、詳細ページを作ろうと思います。

スタティックな設定を入れましたら、[Save]で設定を保存後、[Done]で設定を終えます。

プロキシサーバ、通称串の設定です。今回は不要なのでそのまま[Done]を選びます。

Ubuntu archive mirror(アーカイブミラー)のアドレスを指定します。特になにもない限り[Done]で良いと思います。

Filesystem setup、インストールする領域をどのように使用するか聞いてきます。複数のOSを入れたりする場合に変えたりします。今回は全消ししますので、[Use An Entire Disk]で良いと思います。

ドライブを選択後、最終確認をしてきますので[Done] > [Continue]を選びます。

管理者のログイン情報を入力します。

Your name:管理者の名前
Your server’s name:サーバ名
Pick a username:ログインアカウント名
choose a password:パスワード
Confirm your password:確認用パスワード

入力後、[Done]を選びます。

Featured Server Snaps サーバーのタイプを聞いてきます。どんな仕様になるか分かりませんので、何も選択せずに[Done]を選びます。

Install Complete!
アレコレしている内にインストールが完了しました。これでさくらのVPSサーバにUbuntu18.04サーバ版がインストールできました。お疲れ様でした。

サーバのリブートを行って下さい。

※そのままリブートを行うとISOイメーシが残っていますので再びインストール画面が表示されてしまいます。
その際は、さくらのVPSコントロールパネル > 各種設定 > OSインストール > ISOイメージ  を選び、SFTPアカウントを削除後にサーバの強制再起動を行って下さい。

 

Ubuntu + Nginx で出た 413 Request Entity Too Large エラーの対処法

アップロードしようとしたデータのファイルサイズが大きいと怒られているので上限値を上げます。

#vi /etc/nginx/sites-available/default

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;

#http filesize
client_max_body_size 100m;
}

バーチャルホストを設定している場合は、そちらにも設定を入れます。

設置後リスタートします。

#systemctl restart nginx

第9回目 ネットワーク機器

リピータ、ハブ(物理層)

リピータとハブは、フレームを単なる電気信号として扱う物理層で動作するノードです。通信の距離が長くなると、伝送途中でノイズや減衰が発生し電気信号の波形が崩れます。歪みが酷くなると受信側で解釈ができず正しいビット列に戻せない可能性があります。

リピータは電気信号を増幅し波形を再生して中継を行います。初期のイーサネット(10BASE5/10BASE2)で、最大ケーブル長を延長してネットワークを構築する目的で使われました。

ハブはリピータの機能を持つ集線装置で、リピータハブとも呼ばれています。複数のポートを持ち、受信した電気信号を増幅して波形を再生し、受信ポートを除く全てのポートに信号を中継します。

コリジョンドメイン

イーサネットのネットワークで、電気信号の衝突が伝わる範囲をコリジョンドメインといいます。リピータを用いてネットワークを拡張したり、ハブをカスケード接続するとコリジョンドメインが広がり多数のノードが接続されると、頻繁に衝突が発生し、ネットワークのパフォーマンスが低下します。

ブリッジ、スイッチ(データリンク層)

ブリッジ、スイッチはMACアドレスを使用してフレームの中継を行うデータリンク層のノードです。

ブリッジはネットワークを拡張してコリジョンドメインが拡大した際に、パフォーマンス低下をか解決するために登場しました。ブリッジはフレームヘッダに含まれるMACアドレスを基にフィルタリング(選択遮断)をすることが出来ます。

スイッチは3ポート以上持つことができ、どのポートにフレームを中継するか判断できます。MACアドレステーブルを基に接続されているホスト向けにフレームの中継を行います。

ルータ、レイア3スイッチ(ネットワーク層)

ルータは、IPアドレスなど論理アドレスを使用してパケットを中継するネットワーク層のノードです。

ルーターはパケットを受信するとヘッダに含まれる宛先アドレスを基に、ルーティングテーブルを参照し最適経路を選択してパケットを転送します。この処理をルーティングといいます。

  • 複数の経路から最適経路を選択し、パケットを転送する(ルーティング)
  • 異なるネットワークを相互に接続する
  • ブロードキャストドメインを分割する。

ルータとレイア3スイッチ

ルータはソフトウェア的にルーティング処理を行うのに対して、レイア3スイッチ(以下、L3スイッチ)はレイア2スイッチ(以下、L2スイッチ)と同様にASICを使用したハードウェアによる高速なルーティング処理ができます。

ブロードキャストドメイン

ブロードキャストのフレームが届く範囲をブロードキャストドメインと言います。ハブやL2スイッチ、ブリッジはブロードキャストのフレームを中継しますが、ルータはブロードキャストを他のインターフェイスに転送しません。このためルータ、L3スイッチはポート単位でブロードキャストドメインを分割できます。

デフォルトゲートウェイ

宛先が別ネットワークに存在する場合、パケットはルーターに転送して貰う必要があります。ルータは異なるネットワークへの門となります。これをデフォルトゲートウェイといいます。

各ホストはデフォルトゲートウェイのアドレスを指定しておかなければ外部との通信は出来ません。通常、デフォルトゲートウェイは自身のブロードキャストドメインに接続されたルータのインターフェイスになります。

第8回目 IEEE802.3標準アクセス制御方式CSMA/CD

CSMA/CD

IEEE802.3標準の媒体アクセス制御方式であるCSMA/CDでは、送信前にリンクの空きを確認してからデータを送信します。衝突を検知した場合はランダムに時間を待ち再送信されます。

CS(キャリアセンス)

キャリア(Carrier)はネットワークに流れている信号で、リンク上に信号が流れていないか確認する処理をCS(キャリアセンス)と言います。

信号が流れていない状態をアイドルと言い、ノードはアイドル状態がIFGと呼ばれるフレーム間隔時間だけ継続するとデータ送信を行います。

MA(多重アクセス)

リンクが空いていることを確認すると、ネットワーク上に存在するどのホストもデータ送信を行えます。全てのホストにデータ送信権利がある状態をMA(多重アクセス)と言います。

CD(衝突検出)

2台以上のホストが同タイミングでCSを行うと衝突(コリジョン)が発生します。衝突の発生を検出することをCD(衝突検出)と言います。

第7回目 MACアドレス

MACアドレス

イーサネットや無線LANにおいてフレームの送信元や宛先を識別するためのアドレスです。ネットワークに接続可能な全ての機器にあらかじめ割り当てられているため、「ハードウェアアドレス」、「物理アドレス」とも呼ばれます。

MACアドレスの長さは48ビット(6バイト)あります。「-」や「:」で区切って16進数表示で表記します。

アドレスの構成

48ビット中、前半の24ビットはOUI(Organizationally Unique Identifier)といい、MACアドレスを持つ機器のベンダを表す識別子です。別名「ベンダコード」とも呼ばれています。IEEEが各ベンダに異なる値を割り当てて管理しています。

後半の24ビットは、ベンダが自由に割り当てができます。各ベンダは製造した機器に重複しないように割り当てます。これによってMACアドレスは固有のものとなり、LAN上に存在る全てノードは異なるMACアドレスを持ちます。

アドレスの種類

MACアドレスは3種類に大別されます。

  • ユニキャストMACアドレス・・・・・・・・・特定のノードへの通信(1対1)に使用します
  • マルチキャストMACアドレス・・・・・・・・特定のグループへの通信(1対n)に使用します
  • ブロードキャストMACアドレスアドレス・・・全ノード宛の通信(1対全)にしようします

イーサネット規格の命名規則

IEEE802.3規格では様々な伝送媒体が規格されています。命名規則によって名前の付け方が決まっています。

[通信速度][伝送方式]-[ケーブルの種類]

例)100BASE-TX

通信速度が100Mbps
伝送形式がデジタル信号をそのまま送信する「ベースバンド方式」
ケーブルの種類がT(ツイストペアケーブル)、X(ANSIの技術仕様を利用している)

第6回目 OSI参照モデル概要

OSI参照モデルの基礎

通信プロトコルの位置付けや関連性を把握するための役立つ基本モデルです。通信の仕組みなどを学ぶ上でも重要です。

プロトコル

プロトコルは通信を行う上での約束事(ルール)です。通信時には、必ず相手と同じプロトコルを使用します。双方で使っているプロトコルが異なる場合、データをやり取りすることが出来ません。プロトコルには様々な種類があり、通信はたくさんのプロトコルが連携することによって可能になります。数種類のプロトコルを体系的に組み合わせたものをネットワークアーキテクチャ(プロトコルスタックプロトコルスイート)と呼びます。

OSI参照モデル

OSI参照モデルはネットワークで必要とされる機能を7つの階層(レイヤ)に分割したモデルで、それぞれの階層の役割を果たすためのプロトコルを定義しています。

階層 名前 役割
第7階層 アプリケーション層 ネットワークアプリケーションの機能を提供する
第6階層 プレゼンテーション層 データの表現形式を決定する
第5階層 セッション層 セッションの管理を行う
第4階層 トランスポート層 信頼性のある通信を提供する
第3階層 ネットワーク層 最適経路を決定し、エンドツーエンドの通信を行う
第2階層 データリンク層 隣接するノードと通信を行う
第1階層 物理層 ケーブルや電気信号を定義し、ビットを正しく伝送する

 

物理層(レイヤ1)

物理層の役割は、ノードをケーブルに接続し0と1のデジタルデータを伝送メディアで扱う信号に相互に変換することです。電気的・機械的なハードウェアの物理仕様が決められています。

  • コネクタの形状、ピンの数や配置
  • ケーブルの種類、長さ
  • 電圧レベル、電圧変化のタイミング
  • 通信速度、符号化の方式

データリンク層(レイヤ2)

データリンク層の役割は、同一リンク上に接続された隣接ノードと正しく通信をすることです。通信相手(宛先)を選定するための情報としてMACアドレスが使われます。

次のことを定義しています。

  • 通信媒体にデータを送り出すときのタイミング
  • 伝送中に発生したエラーの検出と対処方法
  • データ(フレーム)の構造
  • データ送信元および宛先の識別方法

ネットワーク層(レイヤ3)

異なるネットワークを相互に接続し、エンドツーエンド(通信の開始から最後まで)で通信をするための経路選択(ルーティング)を行うことです。データの転送先(宛先)を決定する情報にIPアドレスなどの論理アドレスを使用します。

次のことを定義しています。

  • データの送信元および宛先を識別するアドレス割当方法
  • データ(パケット)の構造
  • 経路選択(ルーティング)の方法
  • 選択した経路上にデータを創出する方法

トランスポート層(レイヤ4)

データを確実に届けるための信頼性を提供することです。

次のことを定義しています。

  • 仮想回線(コネクション)の確立・維持・終了
  • フロー制御(受信側の状態に合わせて送信量を調整する)
  • 順序制御(分割されたデータを受信側で元の順番に再構成する)
  • 確認応答(データが正しく相手に届いたかどうか確認する)
  • 再送制御(送出に失敗した場合は再送信する)

セッション層(レイヤ5)

通信を行うプロセス(プログラム)同士の論理的な通信路(セッション)の確立・維持・終了を定義しています。

セッションとは2つのシステム間で実行される通信の接続の開始から終了までを指します。

WEBサイトを表示するとき、URLを入力して実行すると通信が開始され、ページの全てのデータを読み終えると通信が終了します。一連の流れがセッションに相当します。

プレゼンテーション層(レイヤ6)

データを受信側でも正しく読み取れるようにするために表現形式を定義し、共通の形式にデータを変換することです。文字コード(ASCII、EBCDIC)、静止画(GIF、JPEG)、動画(MPEG)などが該当します。

アプリケーション層(レイヤ7)

利用するアプリケーションに対してネットワークサービスを提供します。電子メールやWEBページ表示、ファイル転送などがあります。

電子メールを送る場合、相手のメールアドレス、件名、本文をメールソフトを使って決められたエリアに入力する必要があります。

第5回目 その他のケーブル

同軸ケーブル

同軸ケーブルは、最初のイーサネットである10BASE5、10BASE2で使用されたケーブルです。外的なノイズを遮断するために高周波でも品質の高い信号をう伝送することができます。今では活躍の場は減りましたが、今でもテレビやCATVなどで利用されています。

シリアルケーブル

シリアルケーブルは、1本の信号線を使って1ビットずつデータを転送する方式の通信ケーブルです。一般的にWAN接続で使用されます。信号の形式を定義する規格は数種類あり、Ciscoルーターがサポートしている形式は次のとおりです。

  • EIA/TIA-232
  • EIA/TIA-449
  • V35
  • X21
  • EIA-530

規格ごとにケーブル上の信号が定義されています。ケーブルの橋のコネクタ形状も指定されています。どのシリアルケーブルを使うかはWAN接続するルータのシリアルポートコネクタ形状とDCEデバイスのインターフェイスを確認して選択する必要があります。ルータ側のポートは通常DB-60コネクタやスマートシリアルインターフェイスを使用します。