現在,さくらの VPS に event + suEXEC + FPM で WEB サーバを構築しようとしている。そのために,前回, ‘--enable-fpm’ 付きの php.rpm を作ったわけだが, ‘rpm -ivh’ でインストールするときの依存関係でうんざりしたので,自分用にリポジトリを作ることにした(爆)。
- VPS 上。
- $
sudo adduser --gid xxxx myrepo
‘myrepo’ はリポジトリ用のユーザで, ‘xxxx’ は httpd ユーザグループの gid である。
$sudo passwd myrepo
- $
sudo chmod 710 /home/myrepo
- $
sudo su - myrepo
- $
mkdir public_html
- $
cd public_html
- $
mkdir x86_64
- $
exit
まだ,記事にしていないのだが,実はすでに Apache httpd で suEXEC サポート用の構築をしている。そんなわけで, User と Group はそれ用のものがあるわけだ。この記事に出てくる設定で,ご自分用のリポジトリを作る場合は,各自のシステムに合わせて,用語を読み替えていただきたい。
httpd conf から ‘Options Indexes’ を削除してあるのだが,リポジトリのディレクトリについては,インデックスを表示したい。そのためには, .htaccess において, ‘Options Indexes’ が使えないといけないので,以下のところを変えた。
- VPS の httpd conf において。
- userdir.conf (/etc/httpd/conf.d/userdir.conf) の次のところを変えた。
UserDir enabled normuser1
—>>UserDir enabled normuser1 myrepo
↑ これは .htaccess のためではなく, ‘myrepo’ を使えるようにするためである。
AllowOverride FileInfo AuthConfig Limit Indexes
—>>AllowOverride FileInfo AuthConfig Limit Indexes Options=Indexes
- $
sudo systemctl restart httpd.service
- $
sudo su - myrepo
- $
cd public_html/x86_64
- $
vi .htaccess
中身は ‘Options Indexes’ の一行。 - $
chmod 640 .htaccess
- $
exit
- 開発用 VM 上。
- ‘rpmbuilder’ としてログオンし, rpm ファイルをリビルドする。
注 1) 「初めての VPS-#5」において php.rpm のリビルドについて書いたわけだが,あのままで yum をやると,「パッケージ PACKAGE_NAME.rpm は署名されていません」と言われる。 yum を使うためには, rpm に署名がいるらしい。署名なしの rpm をインストールするには, ‘--nogpgcheck’ オプションを使う。 filezilla.rpm については,その方法でインストールした。 - リビルドした rpm ファイルに署名する。
$rpm --addsign rpmbuild/RPMS/x86_64/*
当たり前だが,この作業前に GPG キーを作っておかないといけないので,作り方。- root 特権のユーザで VM にログオンする。
$sudo gpg --gen-key
$sudo gpg --export -a 'o6asan' > RPM-GPG-KEY-o6asan
RPM-GPG-KEY-o6asan は公開鍵のファイルである。これを VPS の myrepo のドキュメントルート内の /x86_64 に Filezilla クライアントでアップロードする。
$sudo gpg -o file.secret --export-secret-key o6asan
file.secret が秘密鍵である。これは, rpmbuilder の ホームディレクトリに移動する。
$sudo mv /home/vmowner/file.secret /home/rpmbuilder/file.secret
- ‘rpmbuilder’ として VM にログオンする。
$gpg --import file.secret
このコマンドは,秘密鍵,公開鍵ともにインポートしてくれる。
$vi .rpmmacros
以下の 2 行を追記する。
%_signature gpg
%_gpg_name <Owner name>
注 2) 実のところ,リビルドは ‘rpmbuilder’ でやるので,鍵も ‘rpmbuilder’ として作ろうとしたのだが,蹴られた。鍵の作成作業には, root 特権が必要なようである。
- root 特権のユーザで VM にログオンする。
- すべての rpm ファイルを VPS の myrepo のドキュメントルート内の /x86_64 にアップロードする。
- VPS 上。
$sudo yum install createrepo
$sudo createrepo /path to/x86_64
やっと,リポができたワイ。 URL は http://www17130ue.sakura.ne.jp/~myrepo/x86_64/。
次回は,使い方を書くつもり。