67
80

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

XSERVERでssh接続→git最新版インストール→php5.6でlaravel deployまで

Last updated at Posted at 2017-02-05

XSERVERで、laravelを動かすというプロジェクトがあったため、
ssh接続できるようにし、最新のgitをインストールして、laravelをdeployしたのでメモ

#全体の流れ

  1. SSHでつながるようにする
  2. gitをインストールする
  3. パス(path)を通す
  4. composerのインストール
  5. laravelのプロジェクトを特定のディレクトリへデプロイ、インストール
  6. デプロイした公開ディレクトリを、WEBの公開ディレクトリからリダイレクト

#XSERVERって

  • https://www.xserver.ne.jp/
  • いわゆるレンタルサーバー
  • SSH接続が可能!!(これが出来るレンタルサーバーは少ない)
  • root権限はないが、ミドルウェアのインストールはできる
  • 対応しているPHPのバージョンが幅広い(7.0.7まで選択できる 2017/02/05現在)
  • 機能についてはこちらを参考
  • 最近のサーバーにはgitが既にインストールされているっぽい
    • 公式サイトでの記述は見当たらなかった、使ってるサーバーにもよるかも
  • composerもインストールされていた(最新ではない)
#git version 1.8.3.1
$ /usr/bin/git --version

#Composer version 1.3.1
$ /usr/bin/composer --version

##1. SSHでの接続設定

  • まずはXSERVERのコントロールパネルへログインします
  • 次にSSH接続のボタンをクリック
  • SSHの設定をONへ
  • 今回は複数名でのプロジェクトなので、公開鍵認証用鍵ペア作成を作成し、複数人がSSH接続できるようにします
  • パスフレーズを設定し、公開鍵認証用の鍵ペア作成を押下していくと、秘密鍵がダウンロードできます
  • 参考)https://www.xserver.ne.jp/manual/man_server_ssh.php

###SSH接続

  • 私はVagrant上のubuntuからssh接続をしているので、vagrantへダウンロードした鍵ファイルを設置します
  • 場所はどこでも良いですが、仮で/home/vagrant/.ssh/へダウンロードしたhogehoge.keyを設置します
  • この時、hogehoge.keyのパーミッションは600になるようにして下さい
    image
  • これで接続の準備は完了しました、早速SSH接続してみます
  • XSERVERではsshのポートは10022です、接続ユーザー名、サーバー名は自分の環境に置き換えてください
  • 接続例) $ ssh -i ~/.ssh/hogehoge.key -p 10022 hogehoge@サーバー名.xserver.jp
  • 正しい情報で接続していると、パスフレーズを求められるのでパスフレーズを入力して接続します

##2. Gitのインストール

  • gitのインストールにはgettextが必要との事なので、まずgettextをインストールします
  • ちなみにGitが最新じゃなくても良いって人は元々はいっているGitを使われても良いと思います

#インストールディレクトリ
$ mkdir ~/opt
#作業ディレクトリ
$ mkdir ~/sysad

$ cd ~/sysad
$ wget "http://ftp.gnu.org/gnu/gettext/gettext-latest.tar.gz"
$ tar zxvf gettext-latest.tar.gz

#解凍されたディレクトリへ移動しmakeしてinstall 解凍ディレクトリ名はバージョンによって異なります
$ cd gettext-0.19.1
$ ./configure --prefix=/home/<USER>/opt
$ make install

##インストールされたか確認
### gettext (GNU gettext-runtime) 0.19.8.1 のようにバージョンが表示されれば成功
$ ~/opt/bin/gettext --version 

#git install
$ cd ~/sysad/
$ wget https://codeload.github.com/git/git/zip/master
$ unzip master
$ cd git-master
$ autoconf
$ ./configure --prefix=/home/<USER>/opt
$ make all
$ make install

##インストールされたか確認
### git version 2.11.GIT
$ ~/opt/bin/git --version

##3. パスを通す

  • gitは~/opt/bin/gitへインストールされていますが、都度/opt/bin/gitは打つのが手間なので、pathを通しておきます
  • zserverはbashで動いているので、~/.bashrcを変更します
  • これにより、$ /opt/bin/git clone git@hogehoge ではなく、$ git clone git@hogehoge で実行できるようになります
##バックアップの作成
$ cp ~/.bashrc ~/.bashrc.bk
##編集の実行
### export PATH=$HOME/opt/bin:$PATH の追加
$ vi ~/.bashrc

##変更内容の反映
$ source ~/.bashrc

##確認
### git version 2.11.GIT 
### ~/opt/bin/git --version と同一の結果になっていればOK
$ git --version

###変更後の.bashrc

~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
export PATH=$HOME/opt/bin:$PATH

##4. composerのインストール

  • 今回はphp5.6を使用するので、php5.6がインストールされているパスを指定します
  • パスは以下より確認できます
  • https://www.xserver.ne.jp/manual/man_program_soft.php
  • php5.6は /usr/bin/php5.6へインストールされているようです
  • composerのインストールコマンドに従い、パスを通した~/optのbinへインストールします
  • ここまでやってサーバー側に既にcomposerはインストールされていることに気づきました・・・しかも結構最新・・・
  • $ /usr/bin/composer --version 1.3.1
$ cd ~/opt/bin
$ curl -sS https://getcomposer.org/installer | /usr/bin/php5.6
$ mv ~/opt/bin/composer.phar ~/opt/bin/composer

#確認
##Composer version 1.3.2
$ composer --version
##サーバーに元からインストールされているバージョンが表示される場合は再度bashrcの再読込を実行
$ source ~/.bashrc

##5. laravelのプロジェクトを特定のディレクトリへデプロイ・インストール

  • laravelのデフォルトの公開ディレクトリはpublicですが、XSERVERの公開ディレクトリはpublic_html、サブドメインの場合は、public_html/サブドメイン名が公開ディレクトリとなります
  • このままだとプロジェクトの階層を変えたりと手間なので、新たに非公開領域へディレクトリを作成し、そこへデプロイを行い
  • シンボリックリンクとhtaccessでapacheの公開ディレクトリと、プロジェクトのpublicをつなげたいと思います

###構造のイメージ

~/production/    プロジェクトディレクトリ gitをcloneする場所
          /app
          /public      laravelの公開ディレクトリ

~/ドメイン名/public_html  ドメインの公開ディレクトリ
          /.htaccess 全てのアクセスをpublic配下へ移動させる
          /public  ~/production/publicへのシンボリックリンク

###deploy、composerの実行、laravel setup

##ソースコードの展開
$ mkdir ~/production
$ cd ~/production
$ git clone git@github.com:FullSpeedInc/ProjectName .
##ライブラリのダウンロード
$ composer install
##laravelの設定
$ /usr/bin/php5.6 artisan key:generate
$ chmod -R 777 storage
$ chmod -R 777 bootstrap/cache
##dbのmigration
$ /usr/bin/php5.6 artisan migrate

###6. デプロイした公開ディレクトリを、WEBの公開ディレクトリからリダイレクト

  • 5の構造に合わせて、htaccessの作成とシンボリックリンクの設定をします
cd ~/ドメイン名/public_html
vim .htaccess
ln -s ~/production/public ./public
.htaccess
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [QSA,L]
67
80
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
67
80

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?