2020年
1月2月3月4月5月6月7月8月9月10月11月12月
2021年
1月2月3月4月5月6月7月8月9月

プログラミング等とは関係ありません。

ちょっと移動する機会があり,出発した直後に「マスクをしていない」ことに気付きました。

地方では大分沈静化しているとはいえ,やはり,マスクがないと怖さはあります。

しかし,マスクをとりに帰ると,どうしても「乗りたい便に遅れる」ので,仕方なくマスクをせずに駅へ向かいました。

メディアでは,すこし,マスクの在庫がダブつきだした,なんてはなしも聞きます。

駅には小さな売店がいくつかあるのですが,そこで「マスクが売っていないか」を少し期待しながら聞いてみました。

「すいません,今はないんです。」

当然の返事。

さすがにここら辺は関係ないよなーと,最後の店舗に在庫を聞いてみたところ,

「売ってはないんです。でも,マスクはあるので,それを差し上げますよ!」

と,売り物ではない,個人のマスクを1枚いただきました。

出発間際で急いでいたので,お礼しか言えず,お店の別の品を買うという発想が浮かばなかったのが申し訳ない。

次,その店に伺ったときは,何か買う予定です。

以上,日記です。

PHPを使った開発からしばらく離れていた。

今使っているPHP7系のMySQLのドライバと,PHP5系のドライバは違うらしい。

そのため,古いプログラム(MySQLへの接続の関数)を使ったものがエラーで動かない。

よって,phpenv でphp5系をインストールすることにする。


% phpenv install 5.6snapshot

(略)

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
configure: error: Please reinstall the libcurl distribution -
    easy.h should be in <curl-dir>/include/curl/
-----------------------------------------

当然のごとく,エラー。


$ phpenv install 5.6.40

ちなみに,5.6.40もエラーが出てインストールできない。

エラー内容からすると,curlやら,opensslあたりが問題らしいが,それ系はhomebrewでインストール済みである。

早速ググって解決を図る。


phpbrewでphpインストール

$ brew install zlib bzip2 libiconv curl
$ phpbrew install 5.6.40 +default +bz2="$(brew --prefix bzip2)" +zlib="$(brew --prefix zlib)" +curl="$(brew --prefix curl)"

失敗。


Macのphpenv(php-build)でビルドしようとしたら出るエラーと解決まとめ
$brew install libmcrypt

こちらもエラー。なかなかうまくいかない。

エラー内容を抜粋が次の通り。

Please reinstall the libcurl distribution

libcurl を再インストールせよとある。

homebrewインストール、libcurlをhomebrewインストール

上をみると,brew install curl で良いように書いてある。


php5系が動けば良いので,バージョンを5.5に変えてみる。

$ phpenv install 5.5snapshot

(略)

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
Failed to run 'buildconf'.
You should not run buildconf in a release package.
use buildconf --force to override this check.
-----------------------------------------

エラー内容が変わった。

これも調べてみるが,今いち,解決しそうな記事が見つからない。


どうも,またパスの問題らしい。

macOS 10.15 Catalina 上で phpenv を使って PHP 5.6 を build するのにものすごく苦労した話

ちなみに, ここで用いる bison は古いモノを使わなければならないので,それをインストールする。

Macでphpenvによるphpのインストールにハマりにハマった件

brew install bison@2.7
% YACC=$(brew --prefix bison@2.7)/bin/bison \
PHP_RPATHS="/usr/local/Cellar/openssl/1.0.2r/lib /usr/local/opt/zlib/lib /usr/local/opt/bzip2/lib /usr/local/opt/curl/lib /usr/local/opt/libedit/lib /usr/local/opt/libiconv/lib /usr/local/opt/mcrypt/lib" \
PHP_BUILD_CONFIGURE_OPTS="--with-openssl=/usr/local/Cellar/openssl/1.0.2r --with-curl=/usr/local/opt/curl --with-zlib-dir=/usr/local/opt/zlib --with-bz2=/usr/local/opt/bzip2 --with-curl=/usr/local/opt/curl --with-libedit=/usr/local/opt/libedit --with-iconv=/usr/local/opt/libiconv --with-mcrypt=/usr/local/opt/mcrypt --with-tidy" \
PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j4 \
phpenv install 5.6snapshot

結果。

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
configure: error: GD build test failed. Please check the config.log for details.
-----------------------------------------

The full Log is available at '/tmp/php-build.5.6snapshot.20200609005430.log'.
[Warn]: Aborting build.

うーん。ちなみに,ログを cat しても次の行しか出てこない。

configure: error: GD build test failed. Please check the config.log for details.

さて,どうしたものやら。

Search Replace DB

本番環境のDBのエクスポートについては,MySQLDumpコマンドでDBごとエクスポートします。

それを,ローカルでインポートするわけですが,WordPressでは,DBのカラムの値に本番環境のURLが入っている箇所が多くあるため,インポートしただけでは,ローカルで動かすことができません。

単純に1つ1つ置換するのも,SQLコマンド打つのも面倒(* 分からない)ので,「Search Replace DB」というプログラムを使います。

参考:【WordPress】DBの置換には「Search Replace DB」を使おう

いろいろ,WEB記事を見ていると,本来は,ローカルで開発したものを,本番環境にあげて,全置換することに使われることが多いようですが,今回はその逆になります。

Database Search and Replace Script in PHP(公式サイト)

現在の最新版は 4.1.1 のようです。
(ページの下の方を辿れば,v.3 系や,v.2 系も公開しているようです。)

公式サイトにアクセスすると,メールアドレスや名前を入力するフォームがあるので,それらを送信すると,ダウンロードリンクの書かれたメールが送られます。

ダウンロードファイルは,プロジェクトフォルダにコピーします。
Git を使っている場合は,.gitignore

Search-Replace-DB-4.1.1/
Search-Replace-DB-master/
search-replace22/

を無視するように追加しといた方が良い(楽)かもしれません。
(「Search-Replace-DB-master」は V.3 系,「search-replace22」は V.2 系です。)

ちなみに,v.3系にアクセスすると,

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?

なるエラーが出ます。PHP7.3 以降から出るらしいです。

参考:PHP7.3からbreakの代わりにcontinueを使うとWarningになる。

使い方については,先のページ(【WordPress】DBの置換には「Search Replace DB」を使おう)と同じです。

これで,
1)ドメイン名の置換(本番環境のドメインをローカルの開発環境へ)
2)https を http に置換(本番環境が https の場合)
を行います。

以上,本番環境のWordPressDBをローカルの開発環境へ移動することのまとめです。

ちなみに,前回の記事で,必死にphp5系を入れようとしていましたが,それは,「Search-Replace-DB」のv.3系で,ローカル開発環境のDBにアクセスできなかったためです。

v.3系では,確か,MySQL8へ接続するプログラムでなかったことが原因だった気がします。そのあたりもv.4系になって改善されたのでしょう。これで,PHPのバージョンを5系に落とす必要(手間)がなくなりました。ありがたいかぎりです。

雑記。

予約開始日から注文していた「アニマル連邦」が今日届きました。
発売日が12日だったので,2日遅れですね。

Amazonの予約販売も,発売日に届くようにしてくれると嬉しいのだけど,それは難しいのでしょうか。
12日に商品ページを見たら,Primeで「13日に配送される」と書いており,あまり予約注文のメリットがないようにも感じます。
(といっても,あまり読む時間ないので,しばらく積むでしょうが・・・。)


しかし,まさか書籍化するとは。

Twitterで火がついたのは,クレヨンしんちゃんの絵柄そっくりなパロディからだったと思います。かなり完成度が高かった。

パロディの内容は,ドラッグや宗教といったタブーなものが多く,あのタッチで,世界観がまったく違う内容(ギャップ)が良かった(?)のでしょうか。

そこから,オリジナルの漫画を並行して出して,それが見事に書籍化するまで大ヒット。

電通をバックにして盛り上がった(ように,見せかけていた,マッチポンプの)ワニと違う点は,「仕掛けがない」ところだと,信じています。

これも,何かしらマスメディアと組んで,フォロワー数をいじっていたのだとしたら残念ですが,内容的に,これをプッシュするメディアはいないでしょう。

有名作品のカバー・パロディで人気を得る

オリジナル作品を広める

というのが,トレンドになるのかな(もしくは,すでになっている?)。
どうでしょう。

今後にも期待です(2巻は出るのかな?)。


堺屋太一の「歴史からの発想」も届きました。

読む時間がないので,早速積んでいます。
メルカリで300円で買ったので,本当に余裕のできたときに,でよかろう。

堺屋太一だから,面白いに,違いないだろう!

% phpenv uninstall 7.4.6_debug
~/.phpenv/plugins/php-build/bin/rbenv-uninstall: line 69: phpenv-hooks: command not found

Debugで入れたときのPHPを削除しようとコマンドを打ったところ,エラーが返ってくる。

どうやら,phpenv-hooks というものが必要らしい。

ので,Googleで探してみたところ,コメントアウトすると動くとの記事が見つかる。

phpenv installの前に下記のようなエラーが出たのでコメントアウトしたら動きました・・・なんだったんだろう・・

/usr/local/bin/rbenv-install: line 128: phpenv-hooks: コマンドが見つかりません

phpenv+php-build 複数のPHPのversionを使い分け

早速, rbenv-uninstall を vim で開き, 69 行目をコメントアウトする。

そして,再度コマンドを実行。

% phpenv uninstall 7.4.6_debug
Are you sure you want to remove version ‘7.4.6_debug’? [y/N]: y
Version ‘7.4.6_debug’ (~/.phpenv/versions/7.4.6_debug) successfully removed.

無事,アンインストールが完了。

ほかの異常にあたるまでは,とりあえず,コメントアウトのママで良いかと思います。

% php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicuio.66.dylib
  Referenced from: ~/.phpenv/versions/7.4snapshot/bin/php
  Reason: image not found
zsh: abort      php -v

php のコマンドを打つと,上のようなエラーが出るようになった。

色々あたったところ,

1) brew update && upgrade を打つ
2 )PHPを再インストールする

という解決方法がえられた。

参考:MacでPHP実行時にlibicui18n.62.dylibのエラーが出る場合の対処方法


というわけで,phpenv を使って,php を再インストールする。
( 1 のbrew のコマンドは実行済み)

まず,phpenv でインストールした7.4から,システムのバージョンに戻す。

% phpenv global system
% phpenv rehash

次に,7.4をアンインストール&再インストール,そして,切り替えを行う。

% phpenv uninstall 7.4snapshot
% phpenv install 7.4snapshot
% phpenv global 7.4snapshot
% phpenv rehash
% php -v
PHP 7.4.7-dev (cli) (built: Jun 15 2020 02:05:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.7-dev, Copyright (c), by Zend Technologies
    with Xdebug v2.9.7-dev, Copyright (c) 2002-2020, by Derick Rethans

エラーなく実行できることを確認できた。

ローカルで開発するときも,こういったことが起こるから面倒ですね。
Docker で開発するのが楽なのかな・・・。