Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
MariaDB 10.4 (XAMPP) で「Got error 176 "Read page with wrong checksum" from storage engine Aria」への対応記録 2020.3.9 MariaDB はじめに XAMPP を起動して、ローカル環境で開発をしようと思ったら、急にデータベースへの接続ができなくなりました。 そして phpMyAdmin で当該データベースの特権を確認しようとしたところ、下記エラーが出ました。 Got error 176 "Read page with wrong checksum" from storage engine Aria 調査しても明確な解決方法は見つからなかったのですが、とりあえず解決はしたのでその手順を紹介します。 ただし、下記手順により各データベースの特権情報がリセットされました。 (ユーザー情報は残っていまし
エラーや例外の取り扱いの変更 fatal error や recoverable fatal error の多くが、PHP 7 では例外に変換されるようになりました。 これらの例外は Error クラスを継承したもので、 このクラスは Throwable インターフェイスを実装しています。 この新しいインターフェイスを、すべての例外が実装しています。 エラーではなく例外がスローされるようになるということは、自作のエラーハンドラは呼び出されなくなるということです (Error 例外をキャッチしなかった場合は、致命的なエラーが発生します)。 PHP 7 におけるエラーハンドリングの詳細な説明は PHP 7 のエラー を参照ください。 この移行ガイドでは、下位互換性のない変更点を列挙するだけにとどめます。 set_exception_handler() が常に Exception オブジェクトを
WYSIWYGのエディタSummernoteではファイルアップロード機能を実装できる Data URI schemeとFile Upload Bootstrap3でデザインされたWYSIWYGのエディタSummernoteに画像アップロード機能を実装する。 SummernoteをCakePHPで利用する SummernoteにはデフォルトでData URI schemeで画像ファイルをエディタに貼り付けることが可能。実際に画像を貼り付けて、HTMLのソースコードを確認してみたのが下の画像の状態になる。 Data URI schemeの方法を用いると画像をサーバ側にアップロードすることなく、画像をすべてエンコードしてテキスト状態にして貼り付けるため、画像を参照するためのHTTPリクエストが発生しないというメリットがある。 File Upload方式にて画像を管理したい場合には、Summern
Stay up to date with the latest from the Knowledge Center. See all new Knowledge Center articles published in the last month, and re:Post’s top contributors. 簡単な説明 次の要因で、Linux インスタンスを Nitro ベースのインスタンスに変更した後、そのインスタンスが起動しない場合があります。 インスタンスで拡張ネットワーク機能の enaSupport 属性を有効化しなかった。 インスタンスに Elastic Network Adapter (ENA) ドライバーをインストールしなかった。 インスタンスに NVMe ドライバーをインストールしなかった。または、インスタンスの initramfs イメージに NVMe モジュールが
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTMLファイルからPOSTでJSONデータを送信する</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $("#response").html("Response Values"); $("#button").click( function(){ var url = $("#url_post").val(); var JSONdata = { value1: $("#value1").val()
最近勉強のためにAWSにサーバを立てて色々といじっていたのですが、ちょっとSSHの設定をミスったままsshdを再起動してしまい、sshdが起動せず接続不可能な状況に陥ってしまいました。 AWSはクラウドサーバなのでSSHが使えないと何もできません。設定の修正すらできないので詰み状態です。 とはいえ対処法がないわけではありません。単体で詰みならもう一つ用意してそっちで作業すればよいわけで、 新規インスタンスを作成->問題のサーバのEBSボリュームをAttach->新インスタンスで設定を修正->EBSボリュームを戻す という手順で復旧は可能です。他のPCにディスクを繋げていじる感覚ですね。 実際やってみましたが、注意点がいくつかあります。 Attach時に指定したマウント先と実際のOS上でのマウント先が異なる場合があります (CentOS7では/dev/sdf -> /dev/xvdf) mo
以前、CakePHPでjQueryのAjaxを使う方法というエントリーを書きましたが、 今回はJSON形式の配列を返却するAPIを作ってみます。 ここ一年間、APIを設計したり使ったりしましたが、自分なりのノウハウをまとめてみようと思います。 JSON形式で返すメリットjavascriptでオブジェクトとしてそのまま扱えるPHPから他の言語へデータの受け渡しが容易JSONはXMLなどと比べ軽量JSONを返すWebAPIはjavascriptとの相性も良く,Ajaxでのやりとりにも使えます。 PHPの場合はjson_encode、json_decodeで等でJSONと配列を簡単に変換できます。 $json = json_encode(array('あ', 'い', 'う')); echo $json; // ["\u3042","\u3044","\u3046"] ※["あ","い","う"
facebookのoauthとは よくfacebookでログインというボタンを見ますが仕組み的にはfacebookが用意しているoauthのAPIを使用して実現しています。 このAPIは他にも色々情報をとれるので、今回はユーザID以外にメールアドレスも取得してみます。 アカウントの作成 まずfacebookアカウントを作成します。 アカウントにAPIが紐づくのでサイト専用のアカウントを用意した方がいいかもしれません。 アカウントにアプリを紐づけます 下記サイトよりアプリまたはサイトをアカウントに紐づけます。 https://developers.facebook.com/ 「マイアプリ」を押下して「新しいアプリを追加」よりアプリを登録します。 Product Setupで質問されるので「Facebookログイン」を選択します。 アプリの設定 登録後、幾つかをデフォルトから変更しておきます。
# !/usr/bin/env node var WebSocketServer = require('websocket').server; var http = require('http'); var server = http.createServer(function(request, response) { console.log((new Date()) + ' Received request for ' + request.url); response.writeHead(404); response.end(); }); server.listen(8080, function() { console.log((new Date()) + ' Server is listening on port 8080'); }); wsServer = new WebSocket
INI_* モードの詳細および定義については どこで設定を行うのか を参照してください。 以下に設定ディレクティブの簡単な説明を示します。 error_reporting int エラー出力レベルを設定します。パラメータは、あるビットフィールドを表 す整数か定数名で指定します。このerror_reportingのレベルと定数は、 定義済の定数および php.iniに記述されています。 実行時に設定するには、 error_reporting() 関数を指定してください。 display_errors ディレクティブも参照ください。 デフォルト値は E_ALL です。 PHP 8.0.0 より前のバージョンでは、 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED でした。 これは、E_NOTICE、 E_STRICT、 そして E_DEPRECATED
apacheのログ「access_log」「error_log」はほっておくとどんどん容量が増えて無駄にディスクを消費する上にapacheのパフォーマンスが落ちます。 ログをローテーションするには「logrotate」を使用します。 ・まず共通の設定を行います。 vi /etc/logrotate.conf weekly rotate 4 errors root create include /etc/logrotate.d ● logrotateのオプション weekly:週単位でローテーション(daily:日単位 monthly:月単位) rotate 4:最大4つ前までのファイルを残す errors root:エラーがあれば rootまでメールする create [パーミッション] [グループ名] [ユーザ名]:ローテーション後すぐに同名のログファイルを作成する。 compress:
WebスクレイピングのライブラリhtmlSQLの使い方メモ。 スクレイピングの準備 //Snoopyをinclude include_once("../snoopy.class.php"); //htmlSQLをinclude include_once("../htmlsql.class.php"); //インスタンス生成(Exampleで使われている"$wsql"という変数名は、昔はWebSQLという名前だった名残り) $wsql = new htmlsql(); Webページからスクレイピング if (!$wsql->connect('url', 'http://codedump.jonasjohn.de/')){ print 'Error while connecting: ' . $wsql->error; exit; } ローカルにあるファイルからスクレイピング if (!$ws
RDSのログファイルを取得出来るようになった Amazon Web Services ブログ: 【AWS発表】Amazon RDS - より簡単にログファイルにアクセス可能に ということで、RDS( MySQL )のログを取得する手順。 注意点として、RDS(MySQL)では4種類のログ(エラーログ、エラーランニングログ、ジェネラルログ、スローログ)にアクセスできるが、デフォルトではエラーログのみ有効となっている。 Working with MySQL Database Log Files - Amazon Relational Database Service 他のログを有効にするためには、Parameter Groupの以下を設定変更する必要がある。 パラメータ名デフォルト値変更値 general_log (null) 1 log_output TABLE FILE slow_quer
この記事は年以上前に書かれたもので、内容が古かったり、セキュリティ上の問題等の理由でリンクが解除されている可能性があります。 htmlSQLはWebスクレイピング(部分的にHTML抽出)を可能にするPHPライブラリです。ソースが公開されていたのでご紹介します。 ※先日、お知らせさせて頂きましたように、この記事は僕が管理していた別のブログの過去記事を移行したもので正確性に欠ける可能性があります。何卒ご了承願います。 HTML内を部分的に取り出し、表示する事で、それを容易にするスクリプトがhtmlSQLというPHPライブラリです。DOM解析をSQL風に指示するらしい。 デモがありますのでご体感下さい。→htmlSQL – live example 以下のコードを使うようです。 <?php /* ** htmlSQL - Example 1 ** ** Shows a simple query
「真面目にエロサイトを作ってみた」というエントリで紹介されていた、スクレイピングに使われている htmlSQL に興味を持ったので試しに使ってみた。 jonasjohn.de: htmlSQL – a PHP class to query the web by an SQL like language 準備 上記サイトよりダウンロードして解凍した中に入っている “snoopy.class.php” と “htmlsql.class.php” という2つのファイルを使用する PHP からインクルードできるところに入れます。 使い方 実際に Yahoo! のトップページからヤフーニュースのトピックスのニュースタイトルを取ってくるコードを書いてみました。 コードを見てもらえば分かるようにまさに SQL を発行している感じです。 include_once("snoopy.class.php");
追記 この記事のやり方でもいいっちゃいいのですが、PHP7以降では"set_error_handler"でエラーを例外に変換せず、"Error"例外を直接キャッチするほうがよりスマートだと思います。 PHP: PHP 7 でのエラー - Manual なので「例外でキャッチできないエラーがある」というのがほぼなくなった感じですね。 (ただし、"Error"は"Exception"と兄弟関係なので、全部キャッチするつもりのcatch(\Exception $e)ではキャッチできない事に注意。) 追記終わり。 PHPはエラーが扱いづらい いきなりですけど、PHPはエラーが扱いづらい言語だと思います。(おっと、最初の行からPHP Disだ、ブクマが稼げる) 「サーバーにPHPをアップロードして、ブラウザで試行錯誤する」というスタイルを実現するために、なにかあってもInternal Server
とりあえず結論を知りたいという技術者の方へ とりあえず catch (Exception $e) を catch (¥Exception $e) に変更してリトライしてみてください。 それでもダメな場合は、エラーの内容を確認してみてください ※PHP は throw した例外以外は catch しません 例えば 0 の除算とか… オブジェクトが null でしたとかは catch しないです そちらの場合は、 set_error_handler を使う必要があります まずは大丈夫なパターンから このパターンは問題なくキャッチされる <?php class TestException extends Exception { } class Test { public function goTest() { try { echo "### Start ###¥n"; throw new Tes
php.iniをいじったりソースをいじったりするのが嫌なときにはオプションを付ければいいみたい ~~~ php -d display_errors homu.php ~~~ Usage: php [options] [-f] [–] [args…] php [options] -r [--] [args...] php [options] [-B ] -R [-E ] [--] [args...] php [options] [-B ] -F [-E ] [--] [args...] php [options] -- [args...] php [options] -a -d foo[=bar] Define INI entry foo with value 'bar' PHP: オプション - Manual
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く