ffmpeg のビルド

VLC をビルドしようとして、./configure すると

configure: error: No package 'libavcodec' found
No package 'libavutil' found

エラーが出るのでFFmpeg を下記サイトを参考にビルド。

LinuxでFFmpegをほぼ全自動でビルドする(CentOS、Ubuntu等に対応) CentOS6

LinuxでFFmpegをほぼ全自動でビルドする(CentOS、Ubuntu等に対応) CentOS7

スクリプトファイルをコピーして自動でビルドする。

./ffmpeg_build.sh すると-fPIC オプションでコンパイルしろと怒られる。

/usr/local/lib/libavcodec.a: could not read symbols: Bad value
make error "recompile with -fPIC" 

./configure の前にCFLAGS=-fPIC を付けスクリプトを編集。

libvpx, libass の.configure でエラーが出るのでスクリプトを編集、オプションを追加。

261行目
./configure --prefix="$prefix_dir" --disable-unit-tests
277行目
./configure --prefix="$prefix_dir" --disable-shared --disable-require-system-font-provider

デフォルトでのインストール先 の/usr/local/ffmpeg_build にインストールされました。PATHの設定をして完了です。

VLC は、env PKG_CONFIG_PATH=/ でpkgconfig の場所を指定すると、冒頭のno package found エラーがなくなり./configure できました。

env PKG_CONFIG_PATH=/usr/local/ffmpeg_build/lib/pkgconfig ./configure

(追記

VLCはビルドしなくてもnux Dextop Repository からyum でインストールできました。

http://www.tecmint.com/install-vlc-media-player-in-rhel-centos-fedora/

JavaScript のカレンダー例

こちらのサイトでJavaScriptのカレンダーの作り方が載っていたので年間カレンダーを作ってみました。

コピペでスミマセン。センセンシャル。

http://cya.sakura.ne.jp/java/calendar.htm

window.onload = function() {
  createMonth = function(thisMonth) {
    var myDate = new Date();
    var arrWeek = new Array("日","月","火","水","木","金","土");
    var monthNum = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    myYear = myDate.getFullYear();
    if ((myYear%4 == 0 && myYear%100 != 0) || myYear%400 == 0){
      monthNum[1] = 29;
    }
    myMonth = myDate.getMonth();
    today = myDate.getDate();
    myDate.setMonth(thisMonth);
    myDate.setDate(1);
    weekDay = myDate.getDay();
    tblLine = Math.ceil((weekDay + monthNum[thisMonth])/7);
    var tblArr = new Array(7*tblLine);
    for (i = 0; i < 7*tblLine; i++) tblArr[i] = " ";
    for (i = 0; i < monthNum[thisMonth]; i++) tblArr[i + weekDay] = i + 1;
    var title = document.createElement('caption' + thisMonth);
    var divId = document.getElementById('result' + thisMonth);
    title.innerHTML = myYear + "年" + (thisMonth+1) + "月 ";
    var table = document.createElement('table');
    divId.appendChild(title);
    divId.appendChild(table);
    table.id = 'data' + (thisMonth);
   var tbody = document.createElement('tbody');
    tbody.id = 'tbodyID';
    table.appendChild(tbody);
    var tr0 = document.createElement('tr');
    for (var i = 0; i < 7; i++) {
      var td0 = document.createElement('td');
      td0.innerHTML = arrWeek[i];
      tr0.appendChild(td0);
    }
    tbody.appendChild(tr0);
    for (var i = 0; i < tblLine; i++) {
      var tr = document.createElement('tr');
      for (var j = 0; j < 7; j++) {
        var td = document.createElement('td');
        td.innerHTML = tblArr[j + i*7];
        if (myMonth == thisMonth && tblArr[j + i*7] == today) {
          td.style.backgroundColor = 'black';
          td.style.color = 'white';
        }
        tr.appendChild(td);
      }
      tbody.appendChild(tr);
    }
  }
  for (var i = 0; i < 12; i++) {
    createMonth(i);
  }  
}
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
  <script type="text/javascript" src="./calendar.js"></script>
</head>
<body>
<div class="box">
<div id="result0" style="position:absolute;top:20px;left:50px"></div>
<div id="result1" style="position:absolute;top:20px;left:250px"></div>
<div id="result2" style="position:absolute;top:20px;left:450px;"></div>
<div id="result3" style="position:absolute;top:20px;left:650px;"></div>
<div id="result4" style="position:absolute;top:220px;left:50px"></div>
<div id="result5" style="position:absolute;top:220px;left:250px;"></div>
<div id="result6" style="position:absolute;top:220px;left:450px;"></div>
<div id="result7" style="position:absolute;top:220px;left:650px;"></div>
<div id="result8" style="position:absolute;top:440px;left:50px;"></div>
<div id="result9" style="position:absolute;top:440px;left:250px;"></div>
<div id="result10" style="position:absolute;top:440px;left:450px;"></div>
<div id="result11" style="position:absolute;top:440px;left:650px;"></div>
</div>
</body>
</html>

MySQL のバージョンアップ

シナリオは、以下のサイトで示されています。

http://qiita.com/tachitechi/items/b59278a16f636651410f

MySQL のシャットダウン、削除、リポジトリの追加、yum でインストール、バージョンアップの有効化の繰り返しです。

機械的な操作で簡単にバージョンアップできました。おすすめです。

 

sambaポートの設定

今までネット上にsambaポート開放してたかも。(怖っ

「ホームゲートウェイでNetBIOS とMicrosoft-ds のポート開放しないとローカルネット内のsambaプロトコルで通信できない。」という思い込み。

RTX810のファイアウォール設定を確認してもブロックされているように見えたので問い合わせたところ、

「ローカルネットワークでのルーターはL2スイッチとして働くので開放しなくても通信できる。」

との回答を頂きました。何か設定が間違っていたのかな。無線LANルーターをoffにしてルーター直結したところ、Linux共有が見えました。

めでたし、めでたし。

WordPress の画像編集

件のキーワードで検索したブログで解決しました。ありがたや~m(_ _)m

/pass/to/wordpress/wp-include/class-wp-image-editer-gd.php の450行 switch 文の手前に、

while(@ob_end_clean());

を追加すると画像が編集できるようになりました。

参考URL:【備忘録】WordPressの画像編集で画像が表示出来なくなった場合の対応方法 – Dream Seed

PHPのバージョンアップ

コンソールから php -v と叩くとPHP 5.6.14 と表示されるのに、phpinfo で確認するとPHP 5.6.27 とバージョンが違う不思議。原因は、./configure の –bindir=/ オプションで/usr/bin と /usr/local/bin の違う場所にphpをビルド、インストールしていたからでした。めんどくさいので最新版のマイナーバージョン 5.6.30(2017年4月12日現在)をソースから–bindir=/usr/local/bin にビルド、インストール。

php -v すると、

PHP Startup: Unable to load dynamic library ...

と縦スクロールのエラーメッセージがだらだらと・・・。
ここは、/usr/lib64/php/modulesディレクトリから拡張ライブラリをまるっとコピー。

# cp /usr/lib64/php/modules/*.so /path/to/extension_dir/

再び php -v 。今度も縦スクロールのエラーが・・・。

Module 'PDO' already loaded in Unknown on line 0

./configure オプションで –with-config-file-scan-dir=/ を指定して.iniファイルがライブラリを2度読みしていたのが悪かったみたいです。

指定なしで再ビルド。

# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --includedir=/usr/include --bindir=/usr/local/bin --with-openssl=/usr/local/ssl --with-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-gd --with-zlib --with-curl --with-xsl --enable-gd-native-ttf --with-gettext --with-libxml-dir=/usr/bin/xml2-config --enable-mbstring

# make && make install

3回目の正直。php -v 今度は正常に PHP 5.6.30 と表示されました。

IE11のリセット

先週、Wordpress で再ログインしようとするとユーザー名とパスワードを要求されたのでいつもの通り[ログイン状態を保存する] にチェックを入れてログインできたのですが、ブラウザを終了するたび再びユーザー名とパスワードを求められるようになりました。

IE11だけで起きる不具合でEdgeではログインできました。またEPSON機のIE11でもログインできたのでVAIO機のIE11が壊れていることがわかりました。

Google 先生に訊いてみるとIEをリセットすると良いとのことで、[コントロールパネル]-[プログラムと機能]-[Windowsの機能の有効化または無効化]から、IE11のチェックを外して[OK]、再起動、再び[コントロールパネル]からチェックを入れて有効化したところ直りました。

原因は不明ですが今回は解決済みとしておきます。