Linuxと生きていきたい

Arch LinuxとかRaspberry Piとか使って色々やってみたい

Arch Linux + VagrantでLEMP & wordpressをインストールしてみた。

その内Wordpressでブログやりたいと思ってたので。その備忘録。

目次

環境

基本はArch LinuxのWikiを参考に、ここではapacheは使わずnginxに拘る。

Vagrantの初期化

Vagrant用のディレクトリがある前提。

cd ~/vagrant
mkdir archlinux
cd archlinux
vagrant init archlinux/archlinux
vagrant up

そのままsshでarch linuxにログイン。

vagrant ssh

nginxユーザーの追加

wordpress専用のユーザーなら名前は問わない。ここではnginxとする。

# useradd nginx

nginxのインストール

とりあえずアップデート。

# pacman -Syu

後で結局全部入れる羽目になるけど、ここでは順を追ってインストールする。

# pacman -S nginx

とりあえずバージョン確認。

nginx -v
nginx version: nginx/1.14.1

PHP/MariaDBのインストール

ついでにapcuも入れとく。

# pacman -S php php-fpm mariadb php-apcu

PHPの設定

実行ユーザーを統一するため、先ほど作成しておいたnginxユーザーに設定する。

/etc/php/php-fpm.d/www.conf
- user = http
+ user = nginx
- group = http
+ group = nginx
- ;listen.owner = http
+ listen.owner = nginx
- ;listen.group = http
+ listen.owner = nginx

ここではunixソケットで待ち受ける事にする為、ソケットのユーザーも変更しておく。

後はプラグインを有効にして推奨設定に合わせておく。ついでに文字化け対策も。

/etc/php/php.ini
[mbstring]
- ;mbstring.language = Japanese
+ mbstring.language = Japanese
- ;mbstring.internal_encoding =
+ mbstring.internal_encoding = UTF-8


- ;extension=mysqli
+ extension=mysqli
- ;extension=pdo_mysql
+ extension=pdo_mysql
- ;zend_extension=opcache
+ zend_extension=opcache
+ extension=apcu
- ;extension=gd
+ extension=gd

[opcache]
- ;opcache.memory_consumption=128
+ opcache.memory_consumption=128
- ;opcache.interned_strings_buffer=8
+ opcache.interned_strings_buffer=8
- ;opcache.max_accelerated_files=1000000
+ opcache.max_accelerated_files=4000
- ;opcache.revalidate_freq=1
+ opcache.revalidate_freq=1
+ opcache.fast_shutdown=1
- ;opcache.enable_cli=1
+ opcache.enable_cli=1
# systemctl start php-fpm
# systemctl enable php-fpm

エラーが出なければOK。

MariaDBの設定

まずは文字化け対策。

/etc/mysql/my.cnf
[mysqld]
+ character-set-server=utf8

起動する前にこのコマンドを実行。忘れて何度も泣きを見た。

# mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

終わったら起動。エラーが出たら多分上のコマンド忘れてる。pacman -Rs mariadbして再起動してからインストールし直したらなんとかなるはず。

# systemctl start mariadb
# ststemctl enable mariadb

初期設定。testとかanounymousはいらないので削除。

# 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):(Enter)
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] (Enter)
New password: (rootパスワードを入力)
Re-enter new password: (再入力)

後は全部Enter。やってることはanonymousユーザーの削除と遠隔からのrootログインの禁止、testデータベースの削除。最後にデータベースをリロードして終わり。

データベースの作成

名前は適当にwpとする。

# mysql -u root -p
Enter password: (パスワード)
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.37-MariaDB MariaDB Server

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)]> create database wp;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;

こんな感じに表示されたら終わり。

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wp                 |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> exit

WordPressの導入

テスト環境なのでhomeディレクトリにどっしり構えてもらう。

cd ~/
curl -O https://ja.wordpress.org/wordpress-4.9.8-ja.tar.gz

tar -xvf wordpress-4.9.8-ja.tar.gz
sudo chown -R nginx:nginx wordpress/

ついでにapcuも入れとく。unzipしようとしたらunzipがなかった。

cd ~/
curl -O https://downloads.wordpress.org/plugin/apcu.1.0.3.zip
# pacman -S unzip

unzip apcu.1.0.3.zip
sudo -u nginx cp apcu/object-cache.php wordpress/wp-content/

nginxの設定

流石に長過ぎるのでここでは控える。基本的に参考にさせて頂いたサイトから拝借して適宜書き換えてる。

起動

念のため文法チェック

# nginx -t

エラーがなければ起動。

# systemctl start nginx
# systemctl enable nginx

vagrantipアドレスにアクセスして初期設定の画面が出たら終わり。後は手順に沿ってインストールを終わらせる。

感想

大人しくCentOSを使っておけばもう少し楽だったかも。しかしArchでやることに意義があると考えて後悔はしないことにする。

参考にさせて頂いたサイト様

日記

日記というか雑記というか。日記カテゴリ作った。使い分けに悩みそう

風邪が治ったと思いきや鼻水が止まらないと一週間。すわ副鼻腔炎かと耳鼻科に行ったらあっさり治った。

お陰様でコードを書く気も起きず、だからといって作りかけのElectron製mp3プレーヤーのソースを公開した所で誰も喜ぶはずもなく。こうして一日を浪費するのであった。

それはそれとして

Bitbucketはいい。何がいいかって、無料でプライベートリポジトリを用意できるのが素晴らしい。

githubに金払ってる人とか自宅にサーバ設置して外からも使えるリポジトリ作ってる人ならともかく、私の様な一般庶民にはお誂え向きのサービスだ。上で書いたmp3プレーヤーのソースも全部そこで管理してる。外から使う事はめったに無いけど。

私の開発環境はVS CodeとBitbucketのみで構成されているといっても過言ではない。nodeのバージョン管理ができてnginxが動けば大体なんとかなる。というかなってる。なってない。

最後に

TwitterとSlackとDiscordを並行して使えるクライアントでも作ろうかな。ターミナルエミュレータが付けばなお良し。

デスク周りについて

他人のデスク事情を聞いて楽しめる方のみどうぞ。

目次

メインPC

最初の記事でscreenfetch載せた通りです。改めて載せると
f:id:ryu_kamiya:20181105185057p:plain

こんな感じ。

2016年夏にドスパラで購入したGALLERIA(グレード忘れた)をそのまんま使ってます。

メインOSは一応Windows 10 Homeなんですが、MHWをたまにやるくらいにしか使ってません。専らArch。

シェルはzshで端末はterminator。まあ鉄板。ハズレ無し。.zshrcは拾い物を流用。一応ラズパイにsshするaliasは追加してある。

ブラウザはVivaldi。たまに落ちる。Snapshotでもないのに。メーラーThunderbird

ノートPC

ドンキで買ったAcerの五、六年くらい前の型落ちしか持ってない。金が貯まったら買う。

スマホ

Zenfone 3(ZE520KL)とFUJITSU RM02。今度Pixel 3買う(願望)。Zenfoneに関しては敢えてOreoに上げてない。FGO一括めんどいし。

ゲーム機

引っ越す前はPS2WiiとSwitchが同居してた。今はSwitchだけ。ちなみにSwitchはMHXXモデル。

その他ガジェット類

  • Raspberry Pi 3(+じゃない方)・・・Raspbian stretch。PX-S1UD Ver.2ぶっ挿してChinachu入れて運用中。使われてないブレッドボードがそのままになってる。
  • BUFFALOのなんかUSB HDD(2TB)・・・結構静か。多分WD Green。開けてないから分かりません。
  • BUFFALO LS-210D・・・Linkstation。要するにNAS。友達からタダで譲り受けた2TB。結構カタカタ言う。TOSHIBAだった。でもSMART見る限り未使用品だから良しとする。

OAタップ

その内発火するんじゃないかな。そうならないことを祈る。

ゲームパッド

DUALSHOCK 2にelecomのコンバータ噛ませて使ってる。もうすぐ支援しておいたALL Controllerが届く予定。

ルータ

  • HUMAX製のJ:COMのモデム内蔵の奴・・・リビングに置いてある。
  • ELECOM WRC-1167GHBK2・・・デスクの上でAP兼スイッチとして頑張ってもらってる。

以上。何の面白みもない雑記。

Linux初めてで迷ってる人はとりあえずArch使え

初っ端から攻めたタイトルですが、まあ流石に冗談です。

などと言うつもりはない

ええ。冗談ではなく、本気です。 Arch Linuxは初心者にこそおすすめです。そうおっしゃってる方は多いですし、私もそう思っています。

目次

私のPC事情

f:id:ryu_kamiya:20181105185057p:plain 漢なら黙ってscreenfetchドン!え?わざわざArch使ってる癖にパッケージ多い?またまたぁ〜

ぶっちゃけ私は面倒なのは嫌いなので、あまりミニマルさは追求してません。あくまでも面倒だからです。いいですね?通ぶってawesomeとか使おうとしたけど挫折したのは秘密

Archのどこがいい?

前置きが長くなりましたが、Arch Linuxのどこが初心者に向いているのか。それはズバリ

シンプルであること

Archと言ったらこれ。寧ろこれがArch Linuxの本体。 Arch Linuxには余計なパッケージは何一つ付属していません。ISOをCDに焼いて起動した時、画面に映るのはUnityでもなく、GNOMEでもなく、xfceでもない。黒い画面にただ、

root@archiso ~ # _

の表示だけ。

一般的にArch Linuxのハードルが高いと言われるのはこの画面による所が大きいんでしょうが、Wikiを見ながらやれば簡単です。ある程度コマンドが打てる事が前提ですが

最近ではArchに最低限のGUI環境が付属したManjaro Linuxとかいうのもありますし、ハードルは低くなってます。

私がArch Linuxをおすすめする理由

一般的なArch Linuxの良さは上に書いた通りですが、私自身は他にもメリットを感じています。

ドキュメントが充実している

例えばこれ。

Arch LinuxのWikiは異様なまでに充実しています。シンプル故に如何様にもカスタマイズできるからですかね。お陰様で、ちょっとトラブルにぶつかっても「とりあえずWiki見ればいい」の精神で乗り切れます。

問題の切り分けがしやすい

これはローリング・リリース共通の利点ですかね。特にArchの場合は、元のシンプルさ・ドキュメントの豊富さも相まってトラブルの際に原因が分かりやすくなってます。Windowsではこうはいかない。何せ本家本元がアップデートと称して爆弾押し付けて来ますからね。でもゲームやるならWindowsしかない辛さ

とにかく、Archは初心者でも扱いやすい部類に入ると思います。マイナーOSの中ではメジャーな部類ですし、何よりかっこいいですし。

結論

Linux初心者は迷ったらArch使いなさい