cronでLet’s EncryptのSSL証明書の更新が失敗する

Linuxサーバー

Let’s Encryptのcertbot-autoをrootで手動実行すると、正常にSSL証明書が更新できますが、cron経由で実行すると下記エラーが発生しました。

 Certbot has problem setting up the virtual environment
 You are using pip version 8.0.3, however version 9.0.1 is available

この問題を解決するには、cron処理の先頭にexprot HOME=/rootを追加する必要がありました。
/root/.local/share/letsencrypt以下のライブラリを参照できるようにする必要があるようです。
また、certbot-auto自身の更新が起きると、下記パッケージ及び依存パッケージの更新が求められる場合があり
自己アップグレードは抑制した方が良いようです。

 mod_ssl
 openssl
 openssl-devel

正常に動作するcron記述の例になります。

 30 2 * * * export HOME=/root; /root/bin/certbot-auto renew --quiet --no-self-upgrade

参考
https://github.com/certbot/certbot/issues/4033

controllerからviewへ値を渡す方法

PHP

codeigniter controllerからviewへ値を渡す方法

controllerからviewへ行く時は、controllerに、

 $this->load->view('ビューフォルダ名');

を記載しますが、controllerで設定した値を使おうとしたら、

 Undefined variable:〇〇

と表示されたことはないですか???
んで、調べました!!!
非常に簡単なので使って下さい!!!

controllerには普通に定義するが、「&color(crimson){$this->load};」の箇所だけ変更↓

 <?php
 class Blog extends Controller {
    function index(){
        $data['title'] = 'My Page Title';
        $data['heading'] = 'My Page Heading';
        $this->load->view('blog_view', $data);
    }
 }
 ?>

viewでは以下のように記載する!!

 
 <html>
 <head>
 <title><?php echo $titie; ?></title>
 </head>
 <body>
 <h1><?php echo $heading; ?></h1>
 </body>
 </html>

contact-form7と、ajaxzip3を使って郵便番号を入力したら住所が入る

WordPress
Javascript

WordPress 「contact-form7」というプラグインと、「ajaxzip3」というjavascriptを使って、郵便番号を入力したら自動で住所が入力されるように設定する

これ、約半日かけてできました。(こんな事を言ったら上司に怒られそうですが…。)

まず、2通りのパターンで、下記サイトからコピーし、テキストエディタに貼り付け、保存します。
# httpサーバの場合
http://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js

# httpsサーバの場合
https://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3-https.js

以下、コードです。

 <head>
 <script src="<?php bloginfo('template_url') ?>/js/jquery.js"></script>
 <script src="<?php bloginfo('template_url') ?>/js/ajaxzip3.js" charset="UTF-8"></script>
 <script type="text/javascript">
 //<![CDATA[
 jQuery(function(){
 AjaxZip3.JSONDATA="http://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/zipdata";
 jQuery('#zip').keyup(function(event){
 AjaxZip3.zip2addr(this,'','addr','addr');
 })
 })
 //]]>
 </script>
 </head>

後は、以下のコードになるように「contact-form」で設定して下さい。
郵便番号: 
住所  : 

ポイントは、内である「jQuery」内の、(‘#〇〇’)と、郵便番号欄の「input」内の、「id=”〇〇”」を同じにすることです。
同様に、内である「jQuery」内の「AjaxZip3.zip2addr(this,”,’△△’,’△△’);」と、住所の「input」内の、「id=”△△”」を同じにすることです。

composer エラー Unable to get primary namespace for package

PHP
composer

最近では、PHPの何かをする際に、composerは避けて通れない存在となっていますね。
便利なのですが、よくわからない部分も実はあったりします。

composerの中に、Autoloadという機能があります。
必要なファイルに対して、requireとか書かなくてよくなるので、便利な機能です。ただ、このあたりよくわかっていないので、別の機会に時間があったらちゃんと調べて書きたいと思っています。

Autoloadを更新するために、composer.jsonを書き換えたら、

 composer dumpaotoload

とやって、オートロードを更新する必要があります。

んで、composer dumpaotoloadとやっていても、下記のエラーが出て成功しません。。。

 [RuntimeException]
  Unable to get primary namespace for package cakedc/search.
  Ensure you have added proper 'autoload' section to your plugin's config as
  stated in README on https://github.com/cakephp/plugin-installer

いろいろと考えてみたところ、同じアプリケーションの中に、package cakedc/search.をコピーしてほかの場所に入れちゃっていたのでした…(^_^;

Unable to get primary namespace for package cakedc/search. となるわけですね。