MACOSX へのLaravel Homesteadのインストール

環境確認

$ php -v
PHP 5.4.30 (cli) (built: Jul 29 2014 23:43:29)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.9.5
BuildVersion: 13F34

VirtualBoxとVagrantのインストール

http://www.vagrantup.com/

https://www.virtualbox.org/

Vagrantの設定

Homesteadフォルダを作る場所へ移動
$ vagrant box add laravel/homestead
$ git clone https://github.com/laravel/homestead.git Homestead

$ vi Vagrantfile

homesteadYamlPath = File.expand_path(“./Homestead.yaml”)
# homesteadYamlPath = File.expand_path(“~/.homestead/Homestead.yaml”)
afterScriptPath = File.expand_path(“./after.sh”)
# afterScriptPath = File.expand_path(“~/.homestead/after.sh”)
aliasesPath = File.expand_path(“./aliases”)
# aliasesPath = File.expand_path(“~/.homestead/aliases”)

作業用フォルダの作成

Homesteadとは別にした方がよいと思われる

Homesteadの設定

$ vi Homestead.yaml

authorize: ~/.ssh/id_rsa.pub

keys:
– ~/.ssh/id_rsa

folders:
– map: (作業用フォルダ)
to: /home/vagrant/Code

sites:
– map: homestead.app
to: /home/vagrant/Code/
hostsの追加

$ sudo vi /etc/hosts

127.0.0.1 localhost homestead.app
Composerのインストール

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

Laravelインストールに必要なモジュールのインストール

$ brew tap josegonzalez/homebrew-php # いらないかも
$ brew tap homebrew/php
$ brew tap homebrew/dupes

$ brew update

$ brew install php54-mcrypt

/etc/php.iniが無いとき $ sudo cp /etc/php.ini.default /etc/php.ini
$ sudo vi /etc/php.ini

extension=mcrypt.so
フルパスで指定しないとエラーになることがある

エラーが気になるなら以下も設定

date.timezone = Asia/Tokyo
Laravelのインストール

(作業用フォルダ)へ移動
$ composer create-project laravel/laravel Laravel –prefer-dist

一度失敗して再度実行するとnot emptyのエラーになるので、一旦削除して再実行する

起動

$ vagrant up

動作確認

http://homestead.app:8000

[Ubuntu]monitでmysqlプロセス監視

Windows AzureのUbuntuでmysqlが度々落ちるので、monitで監視してみます。

$ sudo apt-get install monit
$ sudo vi /etc/monit/monitrc

以下を追加

set mailserver localhost
set alert abc@gmail.com

メール送信がちゃんと設定されている必要があります。

$ sudo service monit restart
$ sudo vi /etc/monit/monitrc

管理画面のhttpdの設定

set httpd port 2812 and
    allow username:password
    allow @monit
    allow @users readonly

username:passwordがBASIC認証のログイン情報。
本当はアクセス元の制限をかけたいところだけど、固定IPじゃないので、、、

Windows Azureのポータルで、エンドポイントに2818を追加して、

$ sudo service monit restart

http://xxxxx.yyyyy.com:2818

で管理画面へアクセスできます。

監視対象の追加は、面倒なのでサンプルをそのまま使います。

$ sudo ln /etc/monit/monitrc.d/mysql /etc/monit/conf.d/
$ sudo service monit restart
$ sudo monit -vI

でテストができます。

再起動の設定をしたいところだったけど、時間切れでここまで!

[Ubuntu]apt-get updateで404 Not Found

Windows Azure上のmysqlが時々落ちるので、monitを入れてプロセス監視しようと思ったら、以下のエラーがでてはまる。

$ sudo apt-get install monit
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following NEW packages will be installed:
  monit
0 upgraded, 1 newly installed, 0 to remove and 90 not upgraded.
Need to get 281 kB of archives.
After this operation, 758 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  monit
Install these packages without verification [y/N]? y
Err http://azure.archive.ubuntu.com/ubuntu/ raring/universe monit amd64 1:5.5-6
  404  Not Found
Failed to fetch http://azure.archive.ubuntu.com/ubuntu/pool/universe/m/monit/monit_5.5-6_amd64.deb  404  Not Found
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Ubuntu 13.04のサポート切れで、パッケージのファイルの置き場所が old-releases.ubuntu.com に変わったからでした。

バックアップを取って、

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak

サーバーを書き換え

$ sudo sed -i -e 's|//.*ubuntu.com/|//old-releases.ubuntu.com/|' /etc/apt/sources.list
$ sudo apt-get upgrade

成功!!

SQL Serverのダンプ

SQL Serverのダンプ。

近頃は、ほとんどMySQLなので、すっかり簡単な方法になれてしまい。

SQL Serverのダンプの仕方がわからない、、、

調べて何度かやってみて、ようやく慣れてきた。

でも、根本的に考え方が違うので、教えてもらわないとわからないかも。

 

データベースを右クリックし、タスク→スクリプトの生成を選びます。

Windows_7_Ultimate

出力する対象を選びます。

Windows_7_Ultimate

ファイルの保存場所を選びます。

出力するパスが毎回リセットされるのが面倒、、、

 

Windows_7_Ultimate

ここで注意が必要なのは、デフォルトだとテーブル定義だけの出力になり、データは出力されないということ。

必ず、詳細設定ボタンをクリックして、データを出力するように変更する必要があります。

この設定が出力場所指定の画面にあるのもわかりづらい><

phpMyAdminとかだと、デフォルトでデータを出力されるので、気付かずにしばらく悩みました。

 

Windows_7_Ultimate

スクリプトを生成するデータの種類を「スキーマとデータ」に変更します。

 

ここは、確認だけなので、そのままでOK。

Windows_7_Ultimate

問題なければ、すべてのテーブルについて処理が実行されます。

完了を押して終了。

Windows_7_Ultimate

Azure Machine Learningを使うまでメモ(その1)

仮想マシンの作成

(1)Microsoft Azure のポータルにログインする。

Azure__Microsoft_のクラウド_プラットフォーム

ご自分のWindows Liveアカウントでログインしてください。

(2)仮想マシンの作成

仮想マシン_-_Microsoft_Azure_と_aomo_heteml_-_sftp___akihiro0117_ssh26_heteml_jp_2222_-_FileZilla

今回は一番簡単に安くということで、Ubuntu Server 14.10 / 基本 A0 にしました。

Microsoft_Azure

作成が完了するまでは、20分くらいかかります。

仮想マシン_-_Microsoft_Azure

仮想マシンのダッシュボードを開いて、状態が「実行中」になるのを待ちます。

仮想マシン_-_Microsoft_Azure

(3)正常に作成できたか確認する。

作成が完了したら、SSHでログインしてみます。

ホスト名は、ダッシュボードで確認できます。

as_—_azureuser_mltest01____—_ssh_—_80×49

無事ログイン出来ました。

 Pythonの環境を整備する

(1)Python Azure クライアント ライブラリをインストールする

以下は、仮想マシンのSSHコンソール上での操作です。

Pythonは最初からインストールされているはずなので、Python Azure クライアント ライブラリをインストールします。

curl https://bootstrap.pypa.io/get-pip.py | sudo python

sudo pip install azure

(2)エンドポイントを作成する

仮想マシン_-_Microsoft_Azure

仮想マシン_-_Microsoft_Azure

仮想マシン_-_Microsoft_Azure

(3)ApacheとDjangoのインストール

以下は、仮想マシンのSSHコンソール上での操作です。

$ sudo apt-get install python-setuptools

$ sudo easy_install django

$ sudo apt-get install apache2 libapache2-mod-wsgi

 

 

「Python Django hello world アプリケーション」チュートリアルで Azure アプリケーションを作成する

http://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-python-django-web-app-linux/

(1)Django プロジェクトを作成します。

$ cd /var/www
$ sudo django-admin.py startproject helloworld

(2)表示処理用のコードを作成します。

$ sudo vi helloworld/helloworld/views.py

以下のコードを入力します。

from django.http import HttpResponse
def hello(request):
html = "<html><body>Hello World!</body></html>"
return HttpResponse(html)

(3)URLのルーティングを修正します。

$ sudo vi helloworld/helloworld/urls.py

以下のコードを入力します。

from django.conf.urls import patterns, include, url
from helloworld.views import hello

urlpatterns = patterns('',
 (r'^$',hello),
)

(3)Apacheの設定をします。

sudo vi /etc/apache2/sites-available/helloworld.conf

以下を入力します。

<VirtualHost *:80>
ServerName yourVmUrl
</VirtualHost>
WSGIScriptAlias / /var/www/helloworld/helloworld/wsgi.py
WSGIPythonPath /var/www/helloworld

(4)サイトを有効にします。

$ sudo a2ensite helloworld

(5) Apache を再起動します。

$ sudo service apache2 reload

(6)動作を確認する。

ブラウザで、http://xxxxxx.cloudapp.net (xxxxは環境に合わせて変更)を見ると、

Hello World!!

が表示される。

 

 

作業を中断する場合は、インスタンスを停止しておきましょう。

無駄に課金されてしまいます。

 

(続く)