ServersManでNginx+PHP7+MariaDBをインストール
ServersMan@VPS Entryプランを契約したので、CentOS6にNginx、PHP7、MariaDBをインストールした。
最初CentOS7でやろうとしたがServersManの7は問題があるようなので6にした。
環境 CentOS6.5 Nginx1.0.15 PHP7.0.6 MariaDB10.1.13
Nginxインストール
Nginxをリポジトリに追加する。
# yum -y install epel-release # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # yum install --enablerepo=epel nginx -y
PHP7インストール
次にPHPをインストールする。
# yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd php-fpm -y
php-fpmの設定をする。(php-fpmは上記でインストール済み)
userとgroupを「apache」から「nginx」に変更し、php-fpmを起動する。
vi /etc/php-fpm.d/www.conf --user = apache --group = apache ++user = nginx ++group = nginx # /etc/rc.d/init.d/php-fpm start # chkconfig php-fpm on
--;date.timezone = ++date.timezone = 'Asia/Tokyo' --;error_log = php_errors.log error_log = /var/log/php_errors.log
Nginxの設定ファイルを変更する。
/etc/nginx/conf.d/default.conf
--location / { -- root /usr/share/nginx/html; -- index index.html index.htm; --} ++location / { ++ root /var/www/html; ++ index index.html index.htm index.php; ++} --#location ~ \.php$ { --# root html; --# fastcgi_pass 127.0.0.1:9000; --# fastcgi_index index.php; --# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; --# include fastcgi_params; --#} ++location ~ \.php$ { ++ root /var/www/html; ++ fastcgi_pass 127.0.0.1:9000; ++ fastcgi_index index.php; ++ fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; ++ include fastcgi_params; ++}
パーミッションを変更する。
# chown nginx:nginx /var/lib/php/session # chown nginx:nginx /var/lib/php/wsdlcache # chown nginx:nginx -R /var/www/html
Nginxを起動する。
# /etc/rc.d/init.d/nginx start # chkconfig nginx on
MariaDBをインストール
# rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
リポジトリの追加
/etc/yum.repos.d/mariadb.repo
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 enabled=1
yumでインストール
# yum -y install MariaDB-devel MariaDB-client MariaDB-server
MariaDBの起動
# /etc/init.d/mysql start # chkconfig mysql on
MariaDBのパスワード変更
# /usr/bin/mysqladmin -u root password 'hogehoge'
sudo vi /etc/my.cnf.d/server.cnf [mysqld] character-set-server = utf8 sudo vi /etc/my.cnf.d/mysql-clients.cnf [mysql] default-character-set = utf8
sudo service mysql start
Realmの事前準備
環境 OS X El Capitan Xcod7.2
SwiftでRealmを使うための準備。
まずRealmのデータを閲覧するため、Realm Browserをインストールする。
Xcodeのプラグインをいれる。
Alcatrazをインストールしてない場合は最初にAlcatrazをインストールする。
ターミナルで下記のコマンドを実行。
curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
Xcodeを再起動し、Xcodeの上部メニュー「Window」の「Package Manager」を選択する。
RealmPluginで検索し、インストールする。
ディレクトリ内のファイル一覧をCSVに出力する
あるディレクトリのファイル一覧をステップ数付きで出すというスクリプト。
再帰的に見ていくので対象ディレクトリの下層のディレクトリにも対応。
面倒なのでGistのソースをそのまま貼り付け。
gist.github.com
Macbookの外付HDDにWindowsをインストールする
環境 Macbook El Capitan VirtualBox5.0.14
VirtualBoxを使い、Windowsをインストールする。
Macbookなので容量を節約するため、外付HDDにインストールした。
ISOイメージの作成
WindowsインストールディスクからISOイメージを作成する。
ディスクユーティリティを起動する。
El Capitanからはメニューから作成するようになったらしい。
「ファイル」-「新規作成」-「xxからイメージ作成」をクリック。
フォーマットを「DVD/CDマスター」をする。
ファイルの拡張子は「cdr」を「iso」に変更する。
VirtualBoxのインストール
公式サイトからダウンロードしてインストール。
https://www.virtualbox.org/wiki/Downloads
環境設定から保存先を外付HDDに設定する。
Alcatrazのインストール
Xcodeのプラグイン管理にAlcatrazを入れたメモ。
インストールはシェルを実行するだけ。
curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
指示に従いXcodeは再起動。
再起動するとWindowメニューにPackage Managerができる。
入れたプラグイン
・KSImageNamed
Imageの名前を補完する。
・VVDocumenter
///でコメントを自動生成する。
・Backlight
選択業をハイライト表示する。
・ColorSenseRainbow
Color入力時に色を表示する。
・RealmPlugin
Realm用
・RealmBrowser
UITextFieldに日付を入力する
環境
Mac OS X El Capitan Xcode7.1 Swift2.1
DatePickerを使ってUITextFieldのキーボードを日付入力にする。
ストーリーボードを使う場合はActionでdateEditingを呼べばOK。
問題点として選択時に今日の日付が表示されるが、
今日の日付をセットするには一旦日付を変更しなければUITextFieldに反映されない。
ソースはGistを参照。
gist.github.com
iOSアプリ上でローカライズを切り替える
環境
Mac OS X El Capitan Xcode7.1 Swift2.1
通常はアプリのローカライズはiOSで設定している言語が適用されるが、
アプリ上で設定できるようにしたサンプル。
今回はセグメントコントローラで設定した言語のメッセージをラベルに表示するというiOSアプリ。
まずSingle View Applicationを作成する。
Main.storyboardでラベルとセグメントコントローラを追加する。
infoにあるLocalisationsにJapaneseを追加する。
新規作成でString Filesを選択し、Localisable.stringsというファイル名で作成する。
ファイルを選択し、右側の「Localization」でBase、Japaneseにチェックをつける。
ここまで設定できたら実際にコーディング。
まずStringを拡張してlocalisedメソッドを作成する。
このやり方はStackoverflowを参考にした。
extension String { func localized(lang: String) -> String { let path = NSBundle.mainBundle().pathForResource(lang, ofType: "lproj") let bundle = NSBundle(path: path!) return NSLocalizedString(self, tableName: nil, bundle: bundle!, value: "", comment: "") } }
最後にViewControllerの実装。
基本的にはセグメントコントローラのアクションで言語を切り替えて、ラベルのテキストに反映するだけ。
class ViewController: UIViewController { var lang: String = "Base"; @IBOutlet weak var lbl: UILabel! @IBAction func switchSegment(sender: AnyObject) { if sender.selectedSegmentIndex == 0 { lang = "Base" } else { lang = "ja" } lbl.text = "LblText".localized(lang) } override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
今回はラベルだけ変更しているので問題ないが、ボタンの名前とかは正しく反映されないかもしれない(未検証)