カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

さくらインターネット 常時SSL化の弊害

さくらインターネットで常時SSL化した際に起こる弊害について、
限られた条件下ではありますが、解決法を見つけたので書いておきたいと思います。

まずルートディレクトリになんらかのWEBサイト(WordPressでも何でも)を運用しているとします。
そして下層ディレクトリにWordPressをインストールし、オプションのサブドメインを使用している場合のお話です。

例)test.achoo.jpというサブドメインでルートディレクトリを/achoo/に設定

さくらインターネットのサーバーで共有SSLを利用する場合、SSLを設定できるのは
デフォルトのサブドメインのみです。
オプションのサブドメインで下層ディレクトリをルートディレクトリとしている場合には
対象外となります。
続きを読む…»

1,486 views

findとgrepを使ってファイルの中身を一括検索と置換

ホームページを制作していて、基幹に関わるファイル名等を変更したとき、サーバーにあるファイルのどのファイルから読み込まれているかを全て把握した上で変更しないといけないですよね。

小規模なサイトであれば問題はありませんが、大規模なサイトになると難しいこともあるでしょう。

これはサーバーが直接操作できる、もしくはsshでログインできる場合に限られますが、便利な方法をご紹介します。

findとgrepのコマンドを組み合わせてファイル内に該当ファイル名が記述されているファイルを探します。
例として「example.js」というファイルが読み込まれているhtmlファイルを探します。

find / -name '*.html' -type f | xargs grep -l 'example.js'

findコマンドのほうは、第1引数に探すディレクトリ(この場合ルート)、-nameオプションでファイル名を絞り込んでいます。
-type fは通常のファイルを指定しています。※シンボリックリンク等含まれない
続きを読む…»

4,582 views

iOS メールを一括で削除する

こちらの方法はiOS7の頃からあった方法のようですが、
現在のiOS11でも出来ます。
少しやり方が特殊で私自身も忘れるのでメモしておきます。

  1. 事前に[編集]-[すべてマーク]-[開封済みにする]で全てのメールを開封済みにします。
  2. 再度[編集]をタップします。
  3. 一番上のメールにチェックを入れます。
  4. 下の[移動]を押しながら、先ほどチェックしたメールのチェックを外します。
  5. [移動]から指を離します。
  6. 全てのメールが選択されたことになり、移動先を聞いてくるのでゴミ箱を選択します。

すると全てのメールを一括でゴミ箱に移すことができました。

918 views

JSONデータをCodableを使って構造化する

JSONデータを解析するためにJSONSerializerを使っていましたが、Swift4からもっと簡単にできるようになったのでやってみました。

CodableというプロトコルがSwift4から新たに追加されました。
これを利用すれば簡単に構造体に落とし込むことができます。

まずはデータを扱う構造体を宣言します。
Codableと付け加えましょう。

struct myData: Codable {
    
    let ID_C: Int
    let NAME_C: String
    let COMMENT_C: String? //nullを許容
    let DATE_C: String

}

次にWEB上からデータを取得するため、URLSessionを使用します。

let session = URLSession(configuration: URLSessionConfiguration.default)
let url = "http://www.example.jp/json.php" //JSONデータを取得するURL

単純に文字列で出力してみましょう。 続きを読む…»

2,225 views

VisualC#でSQLServerへの接続

VisualC#でSQLServerに接続し、データを取得するサンプルです。
割と簡単に取得できますので、是非やってみてください。

まずはSqlClientの参照が必要です。

using System.Data.SqlClient;

接続の設定をします。

private string GetConnectionString()
{
    var builder = new SqlConnectionStringBuilder()
    {
        DataSource = "サーバーのIPアドレス",
        InitialCatalog = "データベース名",
        IntegratedSecurity = false, //User ID および Password を接続文字列中に指定するか
        UserID = "ユーザーID",
        Password = "パスワード"
    };

    return builder.ToString();
}

続きを読む…»

2,109 views