XSERVER で phantomjs を使って動的サイトをスクレイピングする

● XSERVER で phantomjs を使って動的サイトをスクレイピングする

(node.jsはあらかじめこちらの方法でインストールしておいてください。)
XSERVER で node.js を利用する|プログラムメモ

● XSERVER に phantomjs をインストールする

npm install phantomjs

● phantomjs の バージョン確認

./node_modules/phantomjs/bin/phantomjs -v

●(phantomjs 1)phantomjs でスクリプトを動かす( Hello World ! )

test_helo.js というファイル名で以下のファイルを作成

console.log('Hello, phantomjs');
phantom.exit();

phantomjs で実行する

./node_modules/phantomjs/bin/phantomjs test_helo.js

●(phantomjs 2)phantomjs でスクリプトを動かす( 動的サイトからのスクレイピング )

動的サイト「https://dev.to/top/week」からソースを取得します。

test_web.js というファイル名で以下のファイルを作成

var webpage = require('webpage').create();
var url = 'https://dev.to/top/week';

webpage.open(url, function() {
    console.log(webpage.content);
    phantom.exit();
});

phantomjs で実行する

./node_modules/phantomjs/bin/phantomjs test_web.js

これで「https://dev.to/top/week」のHTMLソースが表示されればOKです。

●(phantomjs 3)Curlの代わりに使用する

curl_phantom.js というファイル名で以下のファイルを作成

var system = require('system');
var args = system.args;

if ( ! args[1] ){
	console.log( 'ERROR: please set URL' );
	phantom.exit();
}

var webpage = require('webpage').create();
var url = args[1];

webpage.open(url, function() {
    console.log(webpage.content);
    phantom.exit();
});

phantomjs で実行する

./node_modules/phantomjs/bin/phantomjs  curl_phantom.js  https://dev.to/top/week
No.1423
01/23 10:07

edit

XSERVER で node.js を利用する

● XSERVER で node.js を利用する

● 1. nodebrewのインストール

XSERVER へ ssh接続して

mkdir src
cd src
wget git.io/nodebrew
perl nodebrew setup
echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile

これで一旦ログアウトして再度 ssh接続します。

nodebrew

これでバージョンが表示されれば nodebrew のインストールが完了です。

● 2. インストール可能な node.js を表示

nodebrew ls-all 

● 3. (例)node.js v9.11.2 をインストール

nodebrew install-binary v9.11.2

パスを追加します

export PATH=$PATH:~/.nodebrew/node/v9.11.2/bin
No.1422
01/22 23:24

edit

さくらのレンタルサーバで形態素解析 mecab を使用する

● (1/2)mecab本体のインストール

・mecabのダウンロード

http://taku910.github.io/mecab/#download

・mecabのmakeとインストール

tar xvfz ./mecab-0.996.tar.gz
cd mecab-0.996
./configure --prefix=$HOME/local --with-charset=utf8 --enable-utf8-only
make
make install

・.bash_profile に 以下を追加

# mecab
PATH="$HOME/local/bin:$PATH"

・mecabのインストール場所

~/local/bin/mecab

・mecabのバージョン確認

mecab -v

● (2/2)mecab辞書(ipadic)のインストール

・mecab ipadicのダウンロード

http://taku910.github.io/mecab/#download

tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
make install

・インストールした mecab ipadicのエンコーディングの確認

mecab -d ~/local/lib/mecab/dic/ipadic -D
No.1368
01/29 22:36

edit

さくらレンタルサーバ

XSERVER の cli(ssh接続) で PHP7 を使用する

● ssh接続したXSERVERで php を実行するとバージョンが低いPHPが起動する

XSERVERのコンパネでphp7を設定してもコマンドラインから実行するphpのバージョンは低いままです。

php -v
PHP 5.4.16 (cli) (built: Apr 12 2018 19:02:01) 

なぜこれが起きているかというと、php と打った時に実行されるファイルは

which php
/usr/bin/php

/usr/bin/php となっています。これのバージョンが(PHP 5.4.16)なのです。
そこで /usr/bin/php の代わりに /usr/bin/php7.2 を見に行くように変更します。

● phpのコマンドを /usr/bin/php7.2 に向ける

vi .bash_profile

この中の下記の行を変更します

PATH=$PATH:$HOME/bin

 ↓

PATH=$HOME/bin:$PATH

( $HOME/bin を先頭に入れ替えます )

● $HOME/bin/php を /usr/bin/php7.2 に向ける

mkdir $HOME/bin
ln  -s  /usr/bin/php7.2  $HOME/bin/php

● 一度ログアウトして再度ssh接続して確認

php -v
PHP 7.2.6 (cli) (built: May 30 2018 21:41:35) ( NTS )

これでOKです。

No.1350
11/17 15:18

edit

XSERVER

XSERVER に phpize で pecl拡張をインストールする

XSERVER では phpize できますので pecl拡張をインストールすることができます。

ホームディレクトリに php_source を作成してそこへインストールしたいモジュールを解凍して make します

例) XSERVERへ mailparse の PHP pecl拡張をインストールする

cd
mkdir php_source
cd php_source
wget https://pecl.php.net/get/mailparse-3.0.2.tgz
tar zxvf mailparse-3.0.2.tgz
cd mailparse-3.0.2
phpize
./configure
make

make が無事完了すると ~/php_source/mailparse-3.0.2/modules/ にモジュールが作成されます。

このモジュールを好きなディレクトリへ移動します。
(例えば ~/php_modules/)

● インストールしたモジュールを PHP の cli から使用する

php の -d オプションを使って直接モジュールファイルを指定して使用します

php -d extension=/home/<YOUR-ACCOUNT-NAME>/php_modules/mailparse.so  <実行したいPHPソース>

● インストールしたモジュールを WEBのPHPで使用する

XSERVERのコンパネの php.ini設定 から設定します

extension = /home/<YOUR-ACCOUNT-NAME>/php_modules/xxxxx.so
No.1207
11/17 14:49

edit

XSERVER

さくらのレンタルサーバでメール受信をきっかけにプログラムを起動する

● 1. メールアカウントを作成する( 例: autoexec )

さくらレンタルサーバのコンパネからメールアカウント「autoexec」を作成します。

● 2. .mailfilterを権限 0600 で作成する( 例: autoexec )

cd ~/MailBox/autoexec
touch .mailfilter
chmod 0600 .mailfilter

● 3. .mailfilterの中にプログラムに引き渡すコマンドを記述

.mailfilter

to "| /usr/local/bin/php <YOUR-PROGRAM-FULL-PATH>"

これでメール受信をきっかけにプログラムが起動します。

No.1202
11/09 09:22

edit

さくらレンタルサーバ

composer を さくらのレンタルサーバへインストールする

sshでさくらのレンタルサーバへログイン後に

● ログインシェルを bash に変更

chsh -s /usr/local/bin/bash

● composer のインストール

cd
mkdir -p usr/local/bin/
curl -sS https://getcomposer.org/installer | php -- --install-dir=usr/local/bin/

● .bash_profile に追加

とりあえず alias で設定します

# composer
PATH=$PATH:$HOME/usr/local/bin
alias      php='php -c~/www/php.ini'
alias composer='php -c~/www/php.ini ~/usr/local/bin/composer.phar'

● composer 高速化 リポジトリを日本のミラーサーバに変更

リポジトリを(packagist.jp)に変更します

composer config -g repos.packagist composer https://packagist.jp

(もしもの時に)戻す場合はこちらのコマンドからリポジトリを削除します

composer config -g --unset repos.packagist

● composer 高速化 hirak/prestissimo のインストール

composer global require hirak/prestissimo
No.1200
11/09 09:23

edit

さくらレンタルサーバ

さくらのレンタルサーバの Let's Encrypt SSL証明書を更新する

● さくらのレンタルサーバで自動更新が可能になりました

さくらのレンタルサーバ/マネージドサーバ Let's Encrypt
https://www.sakura.ne.jp/function/freessl.html?=mail_20171017

● さくらレンタルサーバ > ドメイン設定

https://secure.sakura.ad.jp/rscontrol/rs/domain

・「証明書」 「更新」をクリック
・「秘密鍵を含む新しい設定の作成」をクリック
・「LETSENCRYPT xxxxxxx」 をアップロード ・「有効化の確認」にチェックを付けて「新しい設定を有効化する」ボタンをクリック

No.1137
11/09 09:24

edit

さくらレンタルサーバ

さくらのレンタルサーバで無料の独自のSSL「Let's Enctypt」を導入する

● さくらのレンタルサーバで自動更新が可能になりました

2017年10月17日以降さくらのレンタルサーバで自動更新が可能になりました

さくらのレンタルサーバ/マネージドサーバ Let's Encrypt
https://www.sakura.ne.jp/function/freessl.html?=mail_20171017

● さくらのレンタルサーバで「Let's Enctypt」無料SSLを設定する手順

1. さくらコントロールパネルへログイン
2. 左のグローバルメニューから「ドメイン/SSL設定」を押す
3. 設定したいドメインの【登録】ボタンを押す
4. 【無料SSLの設定へ進む】ボタンを押す
5. 【無料SSLを設定する】ボタンを押す

● さくらのレンタルサーバで「http → https」 へリダイレクトする .htaccess

SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1 
<IfModule mod_rewrite.c>
RewriteEngine on 
RewriteCond %{ENV:HTTPS} !on 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
</IfModule>

昔ながらのやり方はこちら↓


● さくらのレンタルサーバで無料の独自のSSL「Let's Enctypt」を導入する

無料の独自SSL「Let's Enctypt」を簡単に導入し、独自ドメインを https://あなたのサーバー名/ でアクセスできるに設定します 。
簡単に導入できるネットオウルの無料ウェブサービス「SSLボックス」を利用します
なお、SSL認証レベルは【DV】です。

● SSL認証の認証レベルとは?

SSL認証の認証レベルは3段階あります。

1. ドメイン認証型(通称:DV)(ドメインの所有権を確認する一番低レベルなSSL認証)
2. 企業認証型(通称:OV)(ドメインの所有権に加えて企業の実在性を確認するスタンダートなSSL認証)
3. EV認証(通称:EV)(Extended Validation 認証。更に厳しい認証。取得するとブラウザのアドレスバーに企業名が表示される)

● ネットオウルのユーザー登録をする。

http://www.netowl.jp
の会員登録から会員登録を行います。

● ネットオウルの「SSLボックス」から 「Let's Enctypt」サーバ証明書を取得する

  • 会員登録後ログインしたら「SSLボックス管理」→「新規取得」へ移動します。
  • 「その他のサーバで利用する」をクリックします。
  • 下記のとおり入力します

https://secure.netowl.jp/netowl/?service=sslbox

SSL種別 : 『Let's Enctypt』を選択
コモンネーム : あなたのドメイン名
国 : JP
都道府県(state) : Tokyo (例)
市区町村(local) : Tokyo (例)
組織  (org) : Personal (例)
部署  (unit) : None (例)

入力後「所有者確認手続き」ボタンをクリックします

-「Web認証」「DNS認証」と選ぶ画面が出てきますが、「Web認証」を選択し、トークンファイル「ダウンロード」ボタンをします。

  • LteT1zJucsfEkFbRwObN_gckPht1yL8a4PERmoK4vBU のようなファイルがダウンロードされます。
  • ダウンロードしたトークファイルファイルをアップロードします。FTPでサーバに接続しサイトトップにディレクトリ「.well-known」を作成しその下にデレクトリ「acme-challenge」を作成しそのディレクトリにトークファイルをアップロードします。
  • アップロードが完了したらネットオウルの「所有者確認開始」ボタンをクリックします。
  • 確認が正常に完了すると証明書を発行するというボタンが表示されますのでそのボタンをクリックします。
  • 3つのファイルのダウンロードボタンが表示されますのでそれぞれクリックしてファイルをダウンロードします。ダウンロードされるファイルは以下の通り
CERT(SSL証明書) : LETSENCRYPTXXXXXXXX.cert
中間証明書    : LETSENCRYPTXXXXXXXXInt.cert
秘密鍵      : LETSENCRYPTXXXXXXXX.key

● さくらのレンタルサーバーに証明書ファイルをアップロードする


  • さくらのレンタルサーバーにログインし「ドメイン設定」ボタンを押して「 ドメイン 一覧 」を表示させます

  • 一覧リストの中の "SSL証明書を登録したいドメイン" の横の「登録」ボタンを押します
  • 「秘密鍵を既にお持ちの場合には、アップロードをしてください。」と表示されるので先程ダウンロードしたファイル『秘密鍵: LETSENCRYPTXXXXXXXX.key』をアップロードします。
  • 証明書のインストールを行います 」と表示されますので『証明書のインストール』のワクに先程ダウンロードしたファイル「CERT(SSL証明書) : LETSENCRYPTXXXXXXXX.cert」の中身をコピーペーストして貼り付けて送信します。
  • SNISSLが利用可能です 」と表示されれば正しくアップロードされています。
  • 同じ画面の真ん中あたりのメニューの「中間証明書のインストール 」をクリックします。『中間証明書    : LETSENCRYPTXXXXXXXXInt.cert』の中身をコピーペーストして貼り付けて送信します。
  • これで証明書のアップロードは完了です。画面上に「SNI SSLを利用するにはドメイン設定よりSNI SSLを有効にしてください。 」と表示されているので「ドメイン設定」をクリックします。
  • 『 4. SSLの利用をお選びください』の項目のところ「SNI SSLを利用する」を選択し送信ボタンを押します

● 独自SSLの確認

https://あなたのサーバー名/ へアクセスして独自SSLが正しく設定されていることを確認します。

添付ファイル1
添付ファイル2
No.1081
11/09 09:24

edit

添付ファイル

さくらレンタルサーバ

IDCFクラウドに仮想マシンを作成してSSHでログインする

● IDCFクラウドに新しいマシンを作成する

「仮想マシン作成」ボタンから新しいマシンを作成する。

● 管理画面の「コンソール」から仮想マシンにログインする

作成後に届くメールに SSHの PASS が書いてあるので
管理画面の「コンソール」から

id : root
pass : メールに記載のパスワード

でログインできる。

● SSHのキーを登録する

左メニューの「SSH key」から SSH KEY 登録画面を表示する
登録するキーは、自分のマシンのコンソールから

cat ~/.ssh/id_rsa.pub

で表示させる。

SSH KEY登録画面から「アップロード」タブを選択し

SSH Key名 : 任意の名前
RSA公開鍵を貼り付け : 先程のキーを貼り付ける

で登録する

● ファイアーウォールの設定

左メニューの「IPアドレス」からマシンのIPアドレス(xxx.xxx.xxx.xxx)をクリックして「 ファイアーウォール 」タブを選択し下記のように設定する

例 : SSHの設定の場合(HTTP,HTTPSも同様に設定する)

コメント : 任意のコメント(例:SSH)
ソースCIDR : IPによるアクセス制限(制限をかけたくなければ Any を選択)
タイプ: Custom TCP
ポートレンジ : 52222

● ポートフォワードの設定

左メニューの「IPアドレス」からマシンのIPアドレス(xxx.xxx.xxx.xxx)をクリックして「 ポートフォワード 」タブを選択し下記のように設定する

コメント : 任意のコメント
パブリックポート : SSH
プライベートポート: 49152〜65535 あたりから任意の値を選択 (例:52222)
仮想マシン : 先ほど作成したマシンを選択

● SSHでログインする

鍵ファイルが `id_rsa_idcf_cloud` の場合は以下のようにしてログインします

ssh -i ~/.ssh/id_rsa_idcf_cloud -p52222 root@xxx.xxx.xxx.xxx
添付ファイル1
添付ファイル2
No.1080
01/30 09:10

edit

添付ファイル

さくらのレンタルサーバへPHP のPECL拡張をインストールする

さくらのレンタルサーバへPECL拡張をインストールするには

  1. 使用しているPHPバージョンに対応するpecl拡張のソースをダウンロード・展開
  2. phpize , configure , make
  3. 任意の場所に【xxxxx.so】ファイルを移動
  4. php.iniに `extension = xxxxx.so` を記述

でできます。

例としてPECL拡張 `mailparse` をインストールしてみます。

1. 使用しているPHPバージョンに対応するpecl拡張のソースをダウンロード・展開する

https://pecl.php.net/
から使用したいpecl拡張をダウンロードします。 (この際対応しているPHPのバージョンを確認すること) 例 : mailparse バージョン 2.1.6 をダウンロードします

wget https://pecl.php.net/get/mailparse-2.1.6.tgz
tar zvxf mailparse-2.1.6.tgz
cd mailparse-2.1.6

2. phpize , configure , make します

ターミナルから以下のコマンドを実行します。

phpize
./configure
make
make test

3. 任意のフォルダにファイルをコピー

ここでは ホームディレクトリ直下の php_modules ディレクトリにコピーします

mkdir cd ~/php_modules/
cp ./modules/mailparse.so   ~/php_modules/

4. さくらレンタルサーバの管理画面から PHP設定の編集 を押して php.iniに設定を記述します

extension_dir =  /home/『ユーザー名』/php_modules/
extension = mailparse.so

phpinfo() で項目が表示されていれば正しくインストールされています。

5. コマンドラインからも使えるようにエイリアスを設定する

● .bash_profileに以下を追加

alias php='php -c/home/『ユーザー名』/www/php.ini'

● .cshrc に以下を追加

alias php	php -c /home/『ユーザー名』/www/php.ini

追加後にコマンドラインから

php -m

で該当モジュール(mailparse)が表示されていれば正しくインストールされています 

6. PECL拡張をインストールしたPHPを使用してcomposerを使う

composer requie hogehoge/hogehoge

とするかわりに

php /PATH/TO/COMPOSER/composer.phar   require   hogehoge/hogehoge

とすればいいでしょう。

No.1047
11/09 09:25

edit

さくらレンタルサーバ
メール

さくらのレンタルサーバへPHPのPECL拡張(ソケット拡張、FTP拡張等)をインストールする

さくらのレンタルサーバ「スタンダード」へPHPの FTP拡張(ftp.so)ソケット拡張(socket.so)をインストールする方法。

1. PHPのバージョンを確認する

PHPのソースから

phpinfo();

でバージョンを確認します。

2. 同じバージョンのPHPソースを取得してきて、さくらサーバ上で展開する

https://secure.php.net/releases/
例(バージョン 5.6.21)の場合はPHP 5.6.21 (tar.gz) をダウンロードして展開するとフォルダ php-5.6.21 ができます。

3. 拡張の共有ライブラリをmakeする

cd ./php-5.6.21/ext/sockets
phpize
./configure
make

成功すると modules/sockets.so ファイルができます。

4.任意のディレクトリに sockets.so をコピーする

例( 【ホームディレクトリ】/php_modules)の場合

mkdir ~/php_modules
cp modules/sockets.so ~/php_modules/

5.さくらレンタルサーバのコンパネ →『 PHP設定の編集』に以下を追加して保存する。

php.ini に以下を追加します

extension_dir =  /home/『ユーザー名』/php_modules/
extension = sockets.so

6.phpinfo() で確認する

成功すると と表示されます。

同様に 3〜5 の手順で ftp拡張をインストールするすることもできます。

6. コマンドラインからも使えるようにエイリアスを設定する

● .bash_profileに以下を追加

alias php='php -c/home/『ユーザー名』/www/php.ini'

● .cshrc に以下を追加

alias php	php -c /home/『ユーザー名』/www/php.ini

追加後にコマンドラインから

php -m

で該当モジュール(mailparse)が表示されていれば正しくインストールされています

7. PECL拡張をインストールしたPHPを使用してcomposerを使う

composer requie hogehoge/hogehoge

とするかわりに

php /PATH/TO/COMPOSER/composer.phar   require   hogehoge/hogehoge

とすればいいでしょう。

引用 : http://tti.matrix.jp/blog/?p=344

添付ファイル1
No.1041
11/09 09:25

edit

添付ファイル

さくらレンタルサーバ