php7系でcomposer installするとOpenSSL Error

症状

php5.6のCentOSサーバーでcomposer installしようとしたら下記エラーがでた。

[Composer\Downloader\TransportException]                                                                                           
  The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:  
  error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed                                                  
  Failed to enable crypto                                                                                                            
  failed to open stream: operation failed

ググったところ、仮想マシンの再起動や、php.iniファイルに
openssl.cafile=/etc/ssl/certs/ca-bundle.crt

を追記すると治るケースがあるという情報がありましたがどちかも解決しませんでした。

改善した方法

結果下記で改善されました。

$ sudo yum install ca-certificates

※nginxやphp-fpm等の再起動も反映には必要かもしれません。

その後 composer installが通るようになりました。


無料SSL Let’s encryptを更新した際のメモ

無料SSL証明書

無料SSLで有名なLet’s encryptを、利用させて頂いており、
それの有効期限3ヶ月と短く、その有効期限が迫ったので、更新対応した際のメモ

導入はほぼ200%こちらのサイト様を参考にさせていただきましたm( _ _ ; )m
http://qiita.com/sak_2/items/ff835b669c0a7e110b09

そもそも自動化しろよって話ですが、
手動で更新した際のメモw

1. 恐らく導入時に使ったletsencrypt-autoというファイルを探す。

2. 生成したキーファイル類を確認しておく、必要であればバックアップも


$ cd /etc/letsencrypt/live/blog.4star.link/ cert.pem chain.pem fullchain.pem privkey.pem

3. それぞれのpemファイルがシンボリックで参照されているので、それがnginxで設定しているファイルと同じか確認


cert.pem -> ../../archive/blog.4star.link/cert1.pem chain.pem -> ../../archive/blog.4star.link/chain1.pem fullchain.pem -> ../../archive/blog.4star.link/fullchain1.pem privkey.pem -> ../../archive/blog.4star.link/privkey1.pem

4. で1.のコマンド実行し更新!


$ ./letsencrypt-auto renew

エラーがでた


$ ./letsencrypt-auto renew Saving debug log to /var/log/letsencrypt/letsencrypt.log ------------------------------------------------------------------------------- Processing /etc/letsencrypt/renewal/blog.4star.link.conf ------------------------------------------------------------------------------- Cert is due for renewal, auto-renewing... Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org Renewing an existing certificate Performing the following challenges: tls-sni-01 challenge for blog.4star.link ------------------------------------------------------------------------------- Port 443 is already in use by another process. This will prevent us from binding to that port. Please stop the process that is populating the port in question and try again. For automated renewal, you may want to use a script that stops and starts your webserver. You can find an example at https://certbot.eff.org/docs/using.html#renewal . Alternatively you can use the webroot plugin to renew without needing to stop and start your webserver. ------------------------------------------------------------------------------- Cleaning up challenges Attempting to renew cert from /etc/letsencrypt/renewal/blog.4star.link.conf produced an unexpected error: At least one of the (possibly) required ports is already taken.. Skipping. All renewal attempts failed. The following certs could not be renewed: /etc/letsencrypt/live/blog.4star.link/fullchain.pem (failure) 1 renew failure(s), 0 parse failure(s)

必要なポートが既に使われているらしい。

ポートチェック


$ netstat -tanplsof -i:80

nginxで使っているので一旦停止(サービスが止まるので注意!


$ service nginx stop

再びrenew!


$ ./letsencrypt-auto renew Saving debug log to /var/log/letsencrypt/letsencrypt.log ------------------------------------------------------------------------------- Processing /etc/letsencrypt/renewal/blog.4star.link.conf ------------------------------------------------------------------------------- Cert is due for renewal, auto-renewing... Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org Renewing an existing certificate Performing the following challenges: tls-sni-01 challenge for blog.4star.link ------------------------------------------------------------------------------- Port 443 is already in use by another process. This will prevent us from binding to that port. Please stop the process that is populating the port in question and try again. For automated renewal, you may want to use a script that stops and starts your webserver. You can find an example at https://certbot.eff.org/docs/using.html#renewal . Alternatively you can use the webroot plugin to renew without needing to stop and start your webserver. ------------------------------------------------------------------------------- Cleaning up challenges Attempting to renew cert from /etc/letsencrypt/renewal/blog.4star.link.conf produced an unexpected error: At least one of the (possibly) required ports is already taken.. Skipping. All renewal attempts failed. The following certs could not be renewed: /etc/letsencrypt/live/blog.4star.link/fullchain.pem (failure) 1 renew failure(s), 0 parse failure(s)

また同じエラーが。。。

さらにもう一回!

どりゃっっxさらにもう一回!

ぐああーーっしゃいさらにもう1っかい!

。。。。

。。。。。

何度か同じエラーがでたあと、


$ ./letsencrypt-auto renew Saving debug log to /var/log/letsencrypt/letsencrypt.log ------------------------------------------------------------------------------- Processing /etc/letsencrypt/renewal/blog.4star.link.conf ------------------------------------------------------------------------------- Cert is due for renewal, auto-renewing... Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org Renewing an existing certificate Performing the following challenges: tls-sni-01 challenge for blog.4star.link Waiting for verification... Cleaning up challenges Generating key (2048 bits): /etc/letsencrypt/keys/0001_key-certbot.pem Creating CSR: /etc/letsencrypt/csr/0001_csr-certbot.pem ------------------------------------------------------------------------------- new certificate deployed without reload, fullchain is /etc/letsencrypt/live/blog.4star.link/fullchain.pem ------------------------------------------------------------------------------- Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/blog.4star.link/fullchain.pem (success)

成功ーーーーーーー!

最高ーーーーーーー!

わっほい!


$ service nginx start

証明書が更新されていない。。。。

生成されたpemファイルをチェック。。。

pemが複数連番になってつくられている、、


/archive/blog.4star.link/cert1.pem /archive/blog.4star.link/cert2.pem

僕の場合archiveのファイルをnginx.confに指定していたので、
生成された番号のつきの名前の方を変更。。
人力でファイルを変更。。。w

nginx.conf


ssl_certificate /etc/letsencrypt/archive/blog.4star.link/fullchain**2**.pem; ssl_certificate_key /etc/letsencrypt/archive/blog.4star.link/privkey**2**.pem; ssl_trusted_certificate /etc/letsencrypt/archive/blog.4star.link/fullchain**2**.pem;

あとは、

せいや。。。!!!!


$ service nginx start

無料SSL証明書
無料SSL証明書

成功done!

MySQLを停止できないし、起動もできなくなった時のメモ

いきなり、MySQLを停止できないし、起動もできなくなった時のメモ

“SQLSTATE[HY000] [1040] Too many connections”

というエラーがでて調べてみた。


mysql> show full processlist;

するとmysqlのプロセスが大量に残っている。

max clientsの上限まで立っているエラーでした。

この方法はmysqlというよりは単にプロセスを殺して解決した際のメモなので、
参考程度でお願いします(^_^;)


# service mysqld stop mysqld を停止中: [ OK ]

となるが実際はまだ起動中


# /etc/init.d/mysqld status mysqld (pid 20022) を実行中...

いくたstopコマンドをうってもダメ。


# service mysqld start

では失敗となる。

CentOS6.5のプロセスを確認すると

# ps -xaf | grep mysql

mysqldプロセスが残っている。

思い切って、プロセスを削除


# kill 対象プロセスid

これでも消えない。

もういいやと思い、強制的にプロセス削除


# kill -9 対象プロセスID

さすがに停止した。

で、
service mysqld start

すると、、また失敗。

で、サーバーの容量を疑いました。
最近容量いっぱいで、不要ファイル削除したばっかだよな。。とおもいつつ、
確認してみるとまた、、、


# df -h

100%使いきってました。。汗

不要なファイルを削除して、

再度


# service mysqld start

成功しました!・・・あああ
とてつもなく初歩的

参考にさせて頂いたサイト
http://beyondjapan.com/blog/2016/03/mysql-stop-start-issues

CentOS6.5に docker + fig のインストール

まずdockeryumでインストール

$sudo yum install docker
$sudo docker --version

次にfigをインストール

curlでインストール

$sudo sh -c "curl -L https://github.com/docker/fig/releases/download/0.5.2/linux > /usr/bin/fig"
$sudo chmod +x /usr/bin/fig
$sudo fig --version 

僕の場合これで下記のようなエラーになったが、

fig: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /tmp/_MEIieSV5R/libz.so.1)

pipでインストールすると

$sudo yum install python-pip
$sudo pip install -U fig
$fig --version
fig 1.0.1

おお、成功!!

あとはfig.ymlなどつくって、fig up