PG WORKS

PHPやLinux(サーバー)などのノウハウや、便利なツールを紹介していきます。

エックスサーバーにComposerをインストールする方法

いつもはさくらVPSを使っているのですが、今回新しくエックスサーバーを契約してみました。

Carbon(カーボン)という日付処理が簡単にできるライブラリを使用するには、Composer(コンポーザー)が必要になりましたので、インストール手順を掲載したいと思います。

最初に、エックスサーバーのサーバーパネルにログインして、SSHで操作できるように設定をONにします。

次に、公開鍵認証用鍵ペアの生成ページから、パスフレーズ(お好きなパスワード)を入力して、「公開鍵認証用の鍵ペア生成」ボタンを押します。
※「.key」という拡張子のファイルがダウンロードがされます。

SSHの使い方(Tera Term)

SSHにログインするためには、「Tera Term」というソフトウェアを使います。
macの場合、付属のターミナルソフトでもログイン可能です。
osdn.jp

そのまま「Tera Term」を開いてもいいですが、SSHを自動ログインすることができるマクロを組み込めるため、下記のサイト様を参考にマクロを作成します。

www.j-oosk.com

作成後は、TeraTermをダウンロード時に一緒に付属している、「ttpmacro」から、マクロファイル「.ttl」を開き、ログインできれば完了です。

mac付属のターミナル接続方法

これも調べたら、下記のサイト様から設定手順が記載されてましたので紹介します。

ssh 接続を簡単にする ~/.ssh/config | dogmap.jp

私の場合、「.ssh」のフォルダがなかったため、「mkdir」コマンドでフォルダを作成してから、ssh_configファイルを作成しました。

SSHにログイン後、下記のコマンドを実行します。
※「composer」をインストールする前に、インストール先のフォルダを作ってから、上記のコマンドを実行したほうが、管理しやすいと思います。

// ディレクトリの作成
mkdir carbon

//「/carbon」ディレクトリに移動
cd carbon

// composerのダウンロード
curl -sS https://getcomposer.org/installer | /usr/bin/php5.6

※「/usr/bin/php5.6」はPHPのバージョンによって異なるため、XSERVERのサーバ情報のコマンドパス一覧から確認。

下記のメッセージが表示されていれば、完了です。

「Composer successfully installed to: /home/XXX/composer.phar」

インストールしても何も動かないので追記w

Carbonのインストールまでこの記事に書いていきたいと思います。

まずは、composerをダウンロードしたディレクトリに移動します。

// ディレクトリ移動
cd carbon

Linuxコマンドと同様に、composerと入力するだけで動くように設定します。

// ディレクトリの作成
mkdir ~/bin

// composer.pharの移動と名前変更
mv composer.phar ~/bin/composer

// 動作テスト
composer

下記の文字が表示されれば、正常に動作しています。
f:id:zen6a:20160302222245p:plain

最後に下記のコマンドで、carbonをダウンロードします。
※そのままコマンドを実行すると、現在のディレクトリにダウンロードされてしまうため、コマンド実行前にcdで移動します。

cd /bin

composer require nesbot/carbon

「vendor」というフォルダがあれば、ダウンロード成功です。

※carbonの使い方を公開しました。

zen6a.hateblo.jp

Windows Serverのライセンスの仕組みを理解してみる

システムの動作関係上、WindowsServerがないと動かないと、愚痴を言われて仕方なく調べていたのですが、Linuxには存在しない、CALというライセンスがあり、知らないとトラブルになる可能性があったので調べてみました。

Windows Server OSの種類

現段階(2016年2月)での最新は、Windows Server 2012 R2になります。

4つのエディションがありますが、中小企業でよく使われるのは、下記のエディションになると思います。

  1. Standard
  2. Essentials

StandardとEssentialsどちらかを選ぶポイント

無難にStandardを選んでおけば、全ての機能が使えるため一見問題ないように見えますが、WindowsServerにアクセスするために必要なCALが絡んできます。
※厳密には、WindowsServerに入っているサービスにアクセスするために必要。

Essentialsは、CALが不要で最大25ユーザまで、アクセスすることが可能なため、小規模なものであればこちらで問題なさそうです。
※25ユーザを超えると、アクセスできなくなるため注意。

Standardは、金額が10万円と高価なOSですので、今後の拡張性も考慮した上で選ぶべきです。

サーバ運用でCALが不要なものとは

Windows Serverを使い、Webサイトを全体公開するものであればCALの購入は必要ないとのことです。
ただし、一部のユーザだけが閲覧できるものがある場合、エクスターナルCALが必要になるそうです。

「ECL(エクスターナル コネクタ ライセンス)」外部ユーザーのアクセス向けCAL – PGDブログ

SQLServerExpressを使う場合にもCALが必要なのか?

SQL Server Expressを使用した場合、SQL Server CALは必要か不要か?
http://salaryman-life.blogspot.jp/2013/03/sql-server-expresssql-server-cal.html

上記のサイト様より、直接質問した履歴を見てみると、SQLServerExpressであれば、CALは不要だが、WindowsServerのCALは必要とのことです。

結局どっち選べばいいのか

Standardを選んでおけば、契約したCALの数が一時的に超えていても使用できるそうです。ただし、ライセンス違反になるため、必要に応じて追加のCALを購入、管理する人が必要になりそうですね。。。

値段だけ見ると、OSの導入でもかなり高価なのに、ライセンスでさらに取るとなると、大企業でしか導入できないようなイメージがありますが。。。どうなんでしょうか。

よく使うLinuxのコマンド一覧

使う頻度が高いものと、頻度は低いけど覚えておいて損はないコマンド一覧を書きます。

覚えておきたいコマンド一覧

>>ユーザ切り替え
su -[ユーザ名]

>>ディレクトリの移動
cd [移動先]

>>ファイルを編集する
vi [ファイル]

>>所有者の変更
chown [ユーザ名] [ファイル]

>>グループ名の変更
chgrp [ユーザ名] [ファイル]

>>パーミッション変更
chmod [パーミッション] [ファイル]

>>ディレクトリを作成
mkdir [ファイル]

>>ユーザの追加
useradd [追加するユーザ名]

>>パスワードの設定
passwd [ユーザ名]

>>日付の確認
date

>>実行中のプロセスを表示
ps -awfx

>>ディスク・ドライブの空容量確認
df -h

>>クローンの確認
crontab -l

>>クローンの書き換え
crontab -e
※間違って「-r」にするとcronの内容が全て消えるため注意!

>>プロセス番号を指定して強制終了させる
kill 「プロセス番号」
※プログラムが終わらなかったり、プロセスがずっと残っていた場合使用する

>>現在のサーバ状況を1秒単位で表示する
top -d1

>>ファイル検索その1
locate 「ファイル名」

>>ファイル検索その2
find ~/ -name "「調べたいファイル名など」" -ls

あのコマンドなんだったかな?と思ったときに

コマンドが思い浮かばないとき、コマンドの最初の文字を入力して「Tabキー」を押すと候補のコマンド一覧が表示されます。

覚えておいて損はないコマンド一覧

>>ファイルをコピー
cp [コピー元] [コピー先]

>>ファイルを移動させる
mv [移動するファイルパス] [移動先のパス]

>>ファイルの所有者とグループ名を一緒に変更
chown [ユーザ名]:[ユーザ名] [ファイル]

>>指定したディレクトリ内にあるファイルの所有者とグループ名を一括変更
chown -R [ユーザ名]:[ユーザ名] [ファイル]
※オプションの「-R」は、cp/chgrp/chmodでも利用可能です。

>>phpのバージョンを表示
php -v

>>プログラム名を指定してプロセスを強制終了させる
kill `ps aux | [ファイル]|cut -c10-14`

>>クライアントの通信が終了してからapacheの再起動をさせる
service httpd graceful

>>「httpd.conf」にエラーがないか確認
service httpd configtest

>>apacheを自動起動させる
chkconfig httpd on

>>apacheを自動起動を解除
chkconfig httpd on

>>apacheの自動起動の確認
chkconfig --list httpd

>>ファイルのダウンロード
wget [ダウンロードするファイルのURL]

>>サーバをシャットダウンする
shutdown -h now

>>サーバを再起動する
shutdown -r now

>>rsync
rsync -auz -e ssh [コピー元] [ユーザ名]@[IP]:[コピー先]

>>ユーザのログインディレクトリの指定
useradd -d [ディレクトリ名] [追加するユーザ名]

自動起動関係は、CentOS7から変更されています。
CentOS 7 サービス自動起動設定 | server-memo.net

よく使うのに忘れてしまうHTMLタグ

よく使うタグは書けるものの、普段コピペで終わってしまうタグだったりすると、いざ使いたいときに、出てこないときがよくあります(汗

なので、ブログに書き留めて、改めて勉強w

metaタグ

<meta name="description" content="サイト紹介文">
<meta name="robots" content="noindex">

CSSファイルの読み込みタグ

<link rel="stylesheet" type="text/css" href="cssファイルのパス">

JSファイルの読み込みタグ

<script type="text/javascript" src="jsファイルのパス"></script>

HTMLファイルに直接CSSを書き込むときの宣言

<style type="text/css">
</style>

HTMLファイルに直接JSを書き込むときの宣言

<script type="text/javascript">
<!--
// -->
</script>

jQuery読み込み

>>1.x系 IE6~IE8を対応したい場合
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

>>2.x系
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

>>3.x系
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Hosted Librariesの最新バージョンはこちらから
developers.google.com

aタグでジャンプリンク

>>同じページ内での特定位置へジャンプする
<a href="#test">ジャンプリンク</a>
<h3 id="test">ジャンプ先</h3>

リンク先にリファラーを飛ばさないようにする

<a href="http://zen6a.hateblo.jp/" rel="noreferrer">PGWORKSへ</a>

はてなブログ専用タグ

help.hatenablog.com


次回は、CSSファイル内での書き方や便利なタグの記述方法を紹介していきたいと思います。
CSSに関する内容を書きました。
http://zen6a.hateblo.jp/entry/2016/01/13/233040zen6a.hateblo.jp

【Apache】htaccessを使いURLを書き換えてみよう

.htaccess」を使いURLの書き換え対応のサンプルを紹介したいと思います。

まずは、サンプルを見てみましょう。

URL書き換えサンプル

Options +MultiViews
RewriteEngine on
RewriteCond []%{QUERY_STRING}[] ^id=(.*)&name=(.*)$
RewriteRule []^search.php[] /item/%1-%2? [R=301,L]

「Options +MultiViews」で拡張子の省略が可能になります。

http://zen6a.net/search.php

通常はファイルの拡張子を入力する必要がありますが、下記のように変更が可能です。

http://zen6a.net/search

次に、クエリーストリング部分を静的URLぽくしている箇所が下記の部分になります。

RewriteCond []%{QUERY_STRING}[] ^id=(.*)&name=(.*)$
RewriteRule []^search.php[] /search/%1-%2? [R=301,L]

実際の例を書いていくと、

http://zen6a.net/search.php?id=111&name=aaa[]

上記のURLで飛んできたものに対して、下記のURLに変換するようにしています。

http://zen6a.net/search/111-aaa

URLを見た限り、動的なページではない形になりました。

なぜURLを変更するのか

かなり昔の話になりますが、動的なURLだと検索エンジンのクロールが正常に働かないということがありました。

今は気にする必要はありませんが、公開するサイトでしたら、どんなページなのかわかりやすくした方がいいですし、見栄えも良くなると思います。

また、ページ送りなどでコンテンツが同じになりそうであれば、クエリーストリングなどで判断して、noindex処理を追加しておきましょう。