カテゴリー別アーカイブ: CentOS

dockerコンテナで systemctlコマンドを実行したい

dockerコンテナでCentos7の環境作って

例えばこんなコマンド

systemclt start mysqld.servise
などのような、「systemclt」を実行しようとすると
「Failed to get D-Bus connection: Operation not permitted」
みたいなメッセージで怒られる。
パーミッションがないのか??

調べてみたところ「–privileged」オプションをつけて
コンテナを立ち上げたあとに docker exec で入れば実行できるらしいのだけど
僕の環境だと、下記コマンド実行するとloginを求められて、
よくわからないことになった。。。

なので、SELinuxを無効にする方法を試してみたら
うまくいったので、今回はこちらを採用したよ

SELinux の状態確認

enforcing ・・・ 有効、アクセス制限あり
permissive ・・・ 有効、アクセス制限なし
disabled ・・・ 無効

無効にするには
/etc/selinux/config
上記ファイルの
SELINUX=enforcing

SELINUX=disabled
に変更

無効にした後に、下記コマンドを実行したら解決したよー

WebP対応

WebPに変換するコマンド

■cwebp
・インストール
yum install libwebp-tools

通常変換
cwebp sample.jpg -o sample.webp

可逆圧縮
cwebp -lossless sample.jpg -o sample.webp

圧縮率指定(デフォルトは75?)
cwebp -q 85 sample.jpg -o sample.webp

■ImageMagick
・使えるか確認
convert -list format | grep WebP

↓こんな感じで返ってきたらOK
WEBP* WEBP rw- WebP Image Format (libwebp 0.4.3 [0203])

使えなかったら、アンインストールして新しいバージョンをインストール

・インストール
yum install epel-release
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm

yum install –enablerepo=remi ImageMagick7 ImageMagick7-devel

・再度使えるか確認
convert rose: rose.webp
identify rose.webp

↓こんな感じで返ってきたらOK
rose.webp WEBP 70×46 70×46+0+0 8-bit sRGB 906B 0.000u 0:00.000

・可逆圧縮で圧縮率を指定
convert image.jpg -quality 85 -define webp:lossless=true image.webp

Apache2でやったら、
Content-Type: audio/unknown
になった、、、

とりあえず、これを設定したら認識してくれた。

AddType image/webp .webp

・参考URL
https://github.com/vincentorback/WebP-images-with-htaccess

PHP7にアップデート

かなりのパフォーマンス改善がされたってことで
テスト用のサーバ(CentOS7)のPHPをバージョンアップしてみたよー

まずは、今まで使ってたphp5.4をサヨナラ

若干残骸が、、、なので下記コマンドでそれらともサヨナラ!

無事にキレイさっぱりしたら、改めてphp7をインストール

とりあえず、必要そうなphp、php-mbstring、php-mysqlnd あたりを入れておく。

ちゃんとインストールできたか確認

casperjsでitunesのURLに接続できない

casperjsはすごい便利で使える

と思ってたら、itunesの画面をキャプチャしようとすると

真っ黒に、、、もちろんHTMLソースも取れない、、、

どうやら、SSL Protocolが原因のようで

itunesはTLS 1.2を使用しているらしいのだが

PhantomJS のデフォルトのプロトコルは SSLv3とのこと

–ssl-protocol=tlsv1 (もしくはany)を付けてあげたら

ちゃんととれましたー

容量が足りないときの原因調査

dfコマンドで調べたところ
ディスク使用率が、なんと97%に!!

こいつはやばいっ!

そもそも、もとから7.8Gしかないのも淋しい、、、

とりあえず原因調査するときに役立つコマンド

これさえあれば、がんばれば原因はつきとめられるはず。
あとは、容量の多いディレクトリを掘っていけば見つかるよー
例)du -sh /var/*

自己証明書でSSL対応

とりあえず、イントラサーバなので

自己証明書でSSL化のメモメモ

■ CA認証局の作成

■ CA証明書の場所
 ・CA秘密鍵 /etc/pki/CA/private/cakey.pem
 ・CA証明書 /etc/pki/CA/cacert.pem

■ サーバー証明書の秘密鍵作成

■ サーバー証明書作成

The organizationName field needed to be the same in the ~
と怒られてしまうので、CA局と、証明書の「Organization Name」は同一に

■ サーバー証明書へのCAの署名

もし、下記のメッセージが出て失敗してしまったら
failed to update database
TXT_DB error number 2

りぶぉーくをすると復活するらしい

openssl ca -revoke /etc/pki/CA/newcerts/xxxxxxx.pem

コマンドラインから画面キャプチャを取得

サーバ側から画面キャプチャを取ろうと

いろいろやってみた

そのうちのひとつ「casperjs」を試してみたけれど

結構簡単だったのでメモメモ

それぞれ新しいバージョン出てたのでこちら↓のほうがよいかも~

試しに、「test.js」ってのを作ってみる

作ったファイルを実行!

もし日本語が豆腐さんになってたら、

日本語フォントを入れてあげる

以前の手順と一緒

それでもダメなら

きっとこれで解決するはず

cronにしかけたshellからphpを実行するときに
casperjsコマンドをたたくと、下記エラーが。。。

手でshellを実行するぶんには問題ないのに

Fatal: [Errno 2] No such file or directory; did you install phantomjs?

phantomjsの場所がわかっていないようなので
shellに下記の1行を追加

phantomjsの場所は、下記コマンドで調べましょー
whereis phantomjs

Composerのインストール

なにかと出てくる

ライブラリ管理のComposer

インストール手順をメモメモ

PHPのバージョンは5.3以降必須!

curlコマンドでcomposer.pharを持ってきて
composerコマンドを使えるように、/usr/local/bin配下へ移動

「composer」コマンドをたたいて下記の表示がでればOK!

composerをアップデートする場合は

logrotateでログを管理

ひとつのサーバで、サイトを複数運用した時に

ログファイルを/var/log/httpd/配下に、もうひとつ

サイトごとにディレクトリ作って管理したときのメモ

環境は、Amazon Linux AMI release 2015.09
(CentOSでもきっと一緒)

例えば、サイトAのaccess_logを

/var/log/httpd/a/access_log

みたいな感じで管理したい

httpdのログローテーションの設定が
/etc/logrotate.d/httpd
に書かれている

特に、ルールを変える必要もなかったので
1行目に「/var/log/httpd//log 」を追加してあげた
・変更前
/var/log/httpd/*log {

・変更後
/var/log/httpd/log /var/log/httpd//*log {

後は、下記のコマンドで、念のためデバックモードで
動かしてみる

問題なさそうなので、あとは実際に動いてからもっかい確認!

お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

CentOS7で試しにサーバ構築して

WordPressのテストサイトを動かそうとしたら

「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」

って怒られたよー

どうやら「php-mysql」が、入ってねーぞっ!

って言われてるらしいので、インストールしてあげたら

無事解決っ!

yum -y install php-mysql

mariadbなのに、php-mysql

わかりにくいようで、慣れてるのでわかりやすいのかも。。。