phpのファイルアップロード

<?php

	if(isset($_FILES&#91;'image'&#93;&#91;'tmp_name'&#93;)){
		move_uploaded_file($_FILES&#91;'image'&#93;&#91;'tmp_name'&#93;,'asset/img/01.png');
	}

?>
<!Doctype html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
<form action="#" method="POST" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" value="upload">
  </form>    
</body>
</html>

以下でエラーで出ていて、ずっとなんでだろうなーと考えていました。

move_uploaded_file($_FILES['image']['tmp_name'],'asset/img/');

次はドラック&ドロップでアップロードしたい。

mysqlのindexって何?

大量のレコードが入っているテーブルから1行のレコードを検索するのに
頭から順番に検索したら時間がかかります。
INDEXを作成すると、データテーブルとは別に検索用に最適化された状態でデータが保存されます。
このINDEXを使うことで、目的のレコードを迅速に見つけて取り出すことが可能になります。

なるほど~ データ参照か~

実際に試してみたいですね。

aws switch roleとは

ロールは、必要な AWS リソースへのアクセスに使用できるアクセス権限セットを指定する
AWS Identity and Access Management (IAM) のユーザーに似ている

>ユーザーとしてサインインすると、特定のアクセス権限セットが付与されます。ただし、ロールにはサインインされませんが、一度サインインするとロールを切り替えることもできます。こうすると、元のユーザーアクセス権限が一時的に無効になり、そのロールに割り当てられたアクセス権限が代わりに付与されます。

なるほど、awsアカウントのロールの切り替えね。
ネーミングが難解なので、難しいわ。

IOSPとは

IOPSとは、1秒当たりにディスクが処理できるI/Oアクセスの数
1回のI/O処理にかかる時間は、データ転送時間と平均アクセス時間とを足した数値となります。このI/O処理が1秒当たり何回実行できるかの数値がIOPS
しかしデータ転送時間には、ディスクから磁気ヘッドがデータを読み書きするインタフェースの転送速度や平均メディア転送速度やドライブの信号処理とデータ転送を制御するCPUの処理時間などが加算されるので、実は正しいなデータ転送時間は把握しづらい
一般的にはIOPSの数値が高ければ高いほど高性能なディスク

ディスクは,ディスク単体でディスク・キャッシュも搭載していますので、これも転送時間に影響を与える。メイン・メモリーを使ったディスク・キャッシュも重要

Github enterprise


45日freetrialを使ってみる。

Github Enterpriseとは
「GitHub Enterprise」は大手企業・大規模組織内でセキュアな環境下でのコラボレーティブコーディングを実現

なるほど~ ここは少しづつやってきましょう

VPCのセキュリティグループ

– セキュリティグループは、インスタンスの仮想ファイアウォールとして機能し、インバウンドトラフィックとアウトバウンドトラフィックをコントロール
– VPC 内でインスタンスを起動した場合、そのインスタンスには最大 5 つのセキュリティグループを割り当てることができる
– 起動時に特定のグループを指定しないと、インスタンスは VPC のデフォルトのセキュリティグループに自動的に割り当てられる

AWS「ネットワーク&セキュリティ」の「セキュリティグループ」を見ます。

セキュリティグループとは
インバウンド
送信元 プロトコル ポート範囲 コメント

アウトバウンド
送信先 プロトコル ポート範囲 コメント

SSHをAnywhere(0.0.0.0/0)に対して開放し、万一キーペアが流出してしまった場合、クラッキングを受けた場合、SSHに脆弱性が発見された場合など、
様々なリスクがある。

なるほど、セキュリティグループ(VPC)でインバウンド、アウトバウンドを制御しているのね。

vagrant boxの確認

作成したboxをvagrantに登録する

vagrant box add --name centOS7 centOS7.box

あれ、なんかうまくいかねーと思ったら、.boxの拡張子は不要のようです。
こちらでやり直します。

vagrant box add --name centOS7 centOS7

>vagrant box add –name centos7 centOS7
==> box: Box file was not detected as metadata. Adding it directly…
==> box: Adding box ‘centos7’ (v0) for provider:
box: Unpacking necessary files from: file://C:/Users/hoge/MyVagrant/centos7/centOS7
box: Progress: 100% (Rate: 9.9M/s, Estimated time remaining: –:–:–)
==> box: Successfully added box ‘centos7’ (v0) for ‘virtualbox’!

ほおおおおおおおおおお

>vagrant box list
bento/centos-6.7 (virtualbox, 2.2.7)
bento/centos-6.8 (virtualbox, 2.3.0)
centos7 (virtualbox, 0)
centos72 (virtualbox, 0)
trusty64 (virtualbox, 0)
ubuntu/trusty64 (virtualbox, 20161207.0.0)

>vagrant init centos7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
ぎゃあああああああああああああああああ

> vagrant up

おお、なるほど、virtual boxで一から作成することもできるし、

udevルールの削除

udev ルールとは?
>OSがRed Hat Enterprise Linux 6の場合,サーバ対応の環境設定のscsi_deviceオペランドまたはdmmp_deviceオペランドに指定した共有ディスクのデバイスファイルのオーナー,グループ,およびパーミッションを設定するときは,udevルールファイルで設定

共有ディスクのパーミッションか。

ln -fs /dev/null /etc/udev/rules.d/70-persistent-net.rules

ネットワーク個別設定の削除
[root@localhost git-2.19.1]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-enp0s3 ifdown-ippp ifdown-routes ifup ifup-ipv6 ifup-ppp ifup-tunnel
ifcfg-lo ifdown-ipv6 ifdown-sit ifup-aliases ifup-isdn ifup-routes ifup-wireless
ifdown ifdown-isdn ifdown-Team ifup-bnep ifup-plip ifup-sit init.ipv6-global
ifdown-bnep ifdown-post ifdown-TeamPort ifup-eth ifup-plusb ifup-Team network-functions
ifdown-eth ifdown-ppp ifdown-tunnel ifup-ippp ifup-post ifup-TeamPort network-functions-ipv6

でたーーーーーーーーー ネットワーク。DMMで完膚なきまでやられたからなー

ifcfg-enp0s3をみると、UUIDはあるが、HWADDRはないぞ。

HWADDR=****
UUID=****

box作成の最適化

yum clean all

次にフラグメーションを解消する

dd if=/dev/zero of=/EMPTY bs=1M

[root@localhost network-scripts]# dd if=/dev/zero of=/EMPTY bs=1M
dd: error writing ‘/EMPTY’: No space left on device
4442+0 records in
4441+0 records out
4657184768 bytes (4.7 GB) copied, 15.4136 s, 302 MB/s

いよいよ
boxの作成
boxを作成する。コマンドは以下の通り。これで本当に出来るんか?半信半疑

vagrant package --base CentOS7 --output centOS7

ん、なんかできてるっぽい?
>vagrant package –base CentOS7 –output centOS7
==> CentOS7: Clearing any previously set forwarded ports…
==> CentOS7: Exporting VM…
==> CentOS7: Compressing package to: C:/Users/narishige/MyVagrant/centos7/centOS7

これマジ?
2018/10/27 15:04 882,256,211 centOS7

gitのインストール

[root@localhost ~]# git –version
git version 1.8.3.1

gitを入れます。

yum remove git

# gitに必要なライブラリ
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker

gitの最新版は?
https://mirrors.edge.kernel.org/pub/software/scm/git/
2018/10/5 2.19.1 これか!!
git-2.19.1.tar.gz 05-Oct-2018 16:56 7M

ミラーサイトを参考にwgetしてみる。 おお、俺、だんだん高度なことやってる? (やってる気分)

wget https://www.kernel.org/pub/software/scm/git/git-2.19.1.tar.gz 
ls

tar zxvf git-2.19.1.tar.gz
cd git-2.19.1

#ここからインストール
./configure --prefix=/usr/local
echo $?
make
echo $?
make install
git --version
git version 2.16.5

あれ、2.19入れたと思ったけど、2.16.5だ。まあいいか。

VirtualBox_Guest_Additionsのインストール

Guest Additions CD イメージの挿入は設定済み
デバイスから操作すると、

[root@localhost ~]# mkdir /media/cdrom
[root@localhost ~]# mount -r /dev/cdrom /media/cdrom
[root@localhost ~]# ls-l /media/cdrom
-bash: ls-l: command not found
[root@localhost ~]# ls -l /media/cdrom
total 51462
dr-xr-xr-x 2 root root     2048 Jul 27  2017 32Bit
dr-xr-xr-x 2 root root     2048 Jul 27  2017 64Bit
-r-xr-xr-x 1 root root      647 Aug 17  2016 AUTORUN.INF
-r-xr-xr-x 1 root root     6381 Jul 27  2017 autorun.sh
dr-xr-xr-x 2 root root     2048 Jul 27  2017 cert
dr-xr-xr-x 2 root root     4096 Jul 27  2017 OS2
-r-xr-xr-x 1 root root     4824 Jul 27  2017 runasroot.sh
-r-xr-xr-x 1 root root  8160718 Jul 27  2017 VBoxLinuxAdditions.run
-r-xr-xr-x 1 root root 17789440 Jul 27  2017 VBoxSolarisAdditions.pkg
-r-xr-xr-x 1 root root 16407888 Jul 27  2017 VBoxWindowsAdditions-amd64.exe
-r-xr-xr-x 1 root root   268496 Jul 27  2017 VBoxWindowsAdditions.exe
-r-xr-xr-x 1 root root 10046608 Jul 27  2017 VBoxWindowsAdditions-x86.exe

あれ、なんだこれ。
lsコマンドの-lはリストを縦に表示

/media/は
>一時的なマウント用のディレクトリ。マウントとは接続された装置をOSに認識させて使うといった意味になります。このディレクトリは一時的なマウント用なので、例えば「USBメモリを接続した」とかした場合にここにファイルのような扱いでそのデバイスが置かれます。/mediaとの違いは「一時的な」という部分になりますね。

/dev
>主に記憶デバイスとかを入れておくディレクトリ。UNIXでは「デバイスをファイルのような扱いにして操作する」って設計になっているのでデバイスを追加とかするとここにファイルのような扱いでデバイスが置かれます。

mountコマンド
「mount」は、HDDやUSBメモリ、DVD-ROMなどのフォーマット済みの領域(ファイルシステム)を指定したディレクトリ(マウントポイント)と一時的に結び付けてアクセスできるようにするコマンド

うお、マニアックになってきた。
mount -r は読み取り専用

shコマンド シェルの起動

[root@localhost ~]# sh /media/cdrom/VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.26 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Starting the VirtualBox Guest Additions.
Failed to set up service vboxadd, please check the log file
/var/log/VBoxGuestAdditions.log for details.

[root@localhost ~]# cat /var/log/VBoxGuestAdditions.log

vboxadd.sh: failed: Look at /var/log/vboxadd-install.log to find out what went wrong.
chcon: can’t apply partial context to unlabeled file ‘/usr/lib64/VBoxGuestAdditions/mount.vboxsf’
vboxadd.sh: failed: Look at /var/log/vboxadd-install.log to find out what went wrong.
vboxadd.sh: failed: modprobe vboxguest failed.

[root@localhost ~]# umount /media/cdrom
[root@localhost ~]# ls -l /media/cdrom
total 0