Google Cloud PlatformのメニューからVPCネットワーク → 外部IPアドレスを開きます。 ここで不要な外部IPアドレスの確認および削除ができます。 外部IPアドレスをリストから選択して 静的アドレスを解放 で削除できます
Google Cloud Platformのメニューから「Compute Engine」 → 「VMインスタンス」から削除したいマシンを選択して削除します。
sudo passwd root
su -
vi /etc/ssh/sshd_config
ポートを変更する
Port 52200
パスワードでのログインを禁止する
PasswordAuthentication no
再起動して新しいポートになっているか確認する
service sshd restart
systemctl status sshd.service
パスワードでのログインが禁止されているか確認する
ssh hoge@xxx.xxx.xxx.xxx -p 52200
メモリが少なくなったマシンようにKUSANAGIを再設定します
su -
kusanagi configure
kusanagi init
sudo -
cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vi nginx.conf
KUSANAGI9 の場合は nginx のディレクトリ は /etc/opt/kusanagi/nginx になります
nginx.conf の3行目を変更します
user kusanagi kusanagi;
編集後にリロード
nginx -s reload
user = kusanagi
group = kusanagi
sudo rpm --rebuilddb
sudo yum update -y
cd
curl https://getcomposer.org/installer | php
sudo mv -i composer.phar /usr/local/bin/composer
composer -V
Composer version 1.10.9 2020-07-16 12:57:00
あるドメインだけ昔のバージョンの PHP で動作させたいという用件がたまにあります。
それをさくらのレンタルサーバーで実現する方法です。
.htaccess
Action myphp-script /php.cgi
AddHandler myphp-script .php .html
php.cgi (権限は 0755 に設定します)
#!/bin/sh
exec /usr/local/php/5.6/bin/php-cgi
これで php 5.6 が起動するようになります。
CLIから起動するときはこちらのフルパスで実行します
php -v
↓
/usr/local/php/5.6/bin/php-cgi -v
SERVER_ADDR を書き換えるのは難しいので、独自の環境変数「X-SERVER_ADDR_EIP」をセットします。
独自の環境変数「X-SERVER_ADDR_EIP」に 123.123.123.123 をセットする例
SetEnv X-SERVER_ADDR_EIP '123.123.123.123'
v=spf1 a mx ip4:54.199.137.202 include:asp.cuenote.jp ~all
「レコードセットの作成」を押して次のように設定します。
名前 : (空欄のまま)
タイプ : TXT テキスト
値 : v=spf1 a mx ip4:xxx.xxx.xxx.xxx ~all
なお、 -all、**~all* は次のような違いがあります。
-all (ハイフン + all)
設定以外のアドレスは当該ドメインのメールサーバとして認証しない
~all(チルダ + all)
設定以外のアドレスは当該ドメインのメールサーバとして認証しないが、正当なメールであっても認証失敗する可能性もある
チルダの方がルールが緩いゆえに、メールサービスによっては soft fail 扱いとなるので、-all を設定するようにしましょう。
$_SERVER['SERVER_ADDR']
↓
172.31.9.228
$eip = file_get_contents('http://169.254.169.254/latest/meta-data/public-ipv4');
echo $eip;
SPFレコードを IP xxx.xxx.xxx.xxx に対して設定する
txt @ v=spf1 +ip4:xxx.xxx.xxx.xxxx -all
なお、 -all、**~all* は次のような違いがあります。
-all (ハイフン + all)
設定以外のアドレスは当該ドメインのメールサーバとして認証しない
~all(チルダ + all)
設定以外のアドレスは当該ドメインのメールサーバとして認証しないが、正当なメールであっても認証失敗する可能性もある
チルダの方がルールが緩いゆえに、メールサービスによっては soft fail 扱いとなるので、-all を設定するようにしましょう。
(node.jsはあらかじめこちらの方法でインストールしておいてください。)
XSERVER で node.js を利用する|プログラムメモ
npm install phantomjs
./node_modules/phantomjs/bin/phantomjs -v
test_helo.js というファイル名で以下のファイルを作成
console.log('Hello, phantomjs');
phantom.exit();
./node_modules/phantomjs/bin/phantomjs test_helo.js
動的サイト「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();
});
./node_modules/phantomjs/bin/phantomjs test_web.js
これで「https://dev.to/top/week」のHTMLソースが表示されればOKです。
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();
});
./node_modules/phantomjs/bin/phantomjs curl_phantom.js https://dev.to/top/week
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 のインストールが完了です。
nodebrew ls-all
nodebrew install-binary v9.11.2
パスを追加します
export PATH=$PATH:~/.nodebrew/node/v9.11.2/bin
http://taku910.github.io/mecab/#download
tar xvfz ./mecab-0.996.tar.gz
cd mecab-0.996
./configure --prefix=$HOME/local --with-charset=utf8 --enable-utf8-only
make
make install
# mecab
PATH="$HOME/local/bin:$PATH"
~/local/bin/mecab
mecab -v
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 -d ~/local/lib/mecab/dic/ipadic -D
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 を見に行くように変更します。
vi .bash_profile
この中の下記の行を変更します
PATH=$PATH:$HOME/bin
↓
PATH=$HOME/bin:$PATH
( $HOME/bin を先頭に入れ替えます )
mkdir $HOME/bin
ln -s /usr/bin/php7.2 $HOME/bin/php
php -v
PHP 7.2.6 (cli) (built: May 30 2018 21:41:35) ( NTS )
これでOKです。
XSERVER では phpize できますので pecl拡張をインストールすることができます。
ホームディレクトリに php_source を作成してそこへインストールしたいモジュールを解凍して make します
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 の -d オプションを使って直接モジュールファイルを指定して使用します
php -d extension=/home/<YOUR-ACCOUNT-NAME>/php_modules/mailparse.so <実行したいPHPソース>
XSERVERのコンパネの php.ini設定 から設定します
extension = /home/<YOUR-ACCOUNT-NAME>/php_modules/xxxxx.so
さくらレンタルサーバのコンパネからメールアカウント「autoexec」を作成します。
cd ~/MailBox/autoexec
touch .mailfilter
chmod 0600 .mailfilter
.mailfilter
to "| /usr/local/bin/php <YOUR-PROGRAM-FULL-PATH>"
これでメール受信をきっかけにプログラムが起動します。
sshでさくらのレンタルサーバへログイン後に
chsh -s /usr/local/bin/bash
cd
mkdir -p usr/local/bin/
curl -sS https://getcomposer.org/installer | php -- --install-dir=usr/local/bin/
cd
mkdir -p composer2/
curl -sS https://getcomposer.org/installer | php -- --install-dir=composer2/
インストール先はどこでもokです。お好きなところへどうぞ。
とりあえず .bash_profile ファイル内に alias で設定します
vi .bash_profile
.bash_profile の最初にロケールを追加
デフォルトでは LANG=C (英語) に設定されているので日本語に設定しておきましょう。
export LANG="ja_JP.UTF-8"
.bash_profile の最後に追加
# 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 Version2 以降はデフォルトでも十分早いので以下は特に必要ありません )
リポジトリを(packagist.jp)に変更します
composer config -g repos.packagist composer https://packagist.jp
(もしもの時に)戻す場合はこちらのコマンドからリポジトリを削除します
composer config -g --unset repos.packagist
( composer Version2 以降はデフォルトでも十分早いので以下は特に必要ありません )
composer global require hirak/prestissimo
さくらのレンタルサーバ/マネージドサーバ Let's Encrypt
https://www.sakura.ne.jp/function/freessl.html?=mail_20171017
https://secure.sakura.ad.jp/rscontrol/rs/domain
・「証明書」 「更新」をクリック
・「秘密鍵を含む新しい設定の作成」をクリック
・「LETSENCRYPT xxxxxxx」 をアップロード
・「有効化の確認」にチェックを付けて「新しい設定を有効化する」ボタンをクリック
2017年10月17日以降さくらのレンタルサーバで自動更新が可能になりました
さくらのレンタルサーバ/マネージドサーバ Let's Encrypt
https://www.sakura.ne.jp/function/freessl.html?=mail_20171017
1. さくらコントロールパネルへログイン
2. 左のグローバルメニューから「ドメイン/SSL設定」を押す
3. 設定したいドメインの【登録】ボタンを押す
4. 【無料SSLの設定へ進む】ボタンを押す
5. 【無料SSLを設定する】ボタンを押す
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」を簡単に導入し、独自ドメインを https://あなたのサーバー名/ でアクセスできるに設定します 。
簡単に導入できるネットオウルの無料ウェブサービス「SSLボックス」を利用します
なお、SSL認証レベルは【DV】です。
SSL認証の認証レベルは3段階あります。
1. ドメイン認証型(通称:DV)(ドメインの所有権を確認する一番低レベルなSSL認証)
2. 企業認証型(通称:OV)(ドメインの所有権に加えて企業の実在性を確認するスタンダートなSSL認証)
3. EV認証(通称:EV)(Extended Validation 認証。更に厳しい認証。取得するとブラウザのアドレスバーに企業名が表示される)
http://www.netowl.jp
の会員登録から会員登録を行います。
https://secure.netowl.jp/netowl/?service=sslbox
SSL種別 : 『Let's Enctypt』を選択
コモンネーム : あなたのドメイン名
国 : JP
都道府県(state) : Tokyo (例)
市区町村(local) : Tokyo (例)
組織 (org) : Personal (例)
部署 (unit) : None (例)
入力後「所有者確認手続き」ボタンをクリックします
-「Web認証」「DNS認証」と選ぶ画面が出てきますが、「Web認証」を選択し、トークンファイル「ダウンロード」ボタンをします。
CERT(SSL証明書) : LETSENCRYPTXXXXXXXX.cert
中間証明書 : LETSENCRYPTXXXXXXXXInt.cert
秘密鍵 : LETSENCRYPTXXXXXXXX.key
https://あなたのサーバー名/ へアクセスして独自SSLが正しく設定されていることを確認します。
「仮想マシン作成」ボタンから新しいマシンを作成する。
作成後に届くメールに SSHの PASS が書いてあるので
管理画面の「コンソール」から
id : root
pass : メールに記載のパスワード
でログインできる。
左メニューの「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)
仮想マシン : 先ほど作成したマシンを選択
鍵ファイルが `
id_rsa_idcf_cloud`
の場合は以下のようにしてログインします
ssh -i ~/.ssh/id_rsa_idcf_cloud -p52222 root@xxx.xxx.xxx.xxx
さくらのレンタルサーバへPECL拡張をインストールするには
`
extension = xxxxx.so`
を記述でできます。
例としてPECL拡張 `
mailparse`
をインストールしてみます。
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
ターミナルから以下のコマンドを実行します。
phpize
./configure
make
make test
ここでは ホームディレクトリ直下の php_modules ディレクトリにコピーします
mkdir cd ~/php_modules/
cp ./modules/mailparse.so ~/php_modules/
extension_dir = /home/『ユーザー名』/php_modules/
extension = mailparse.so
phpinfo() で項目が表示されていれば正しくインストールされています。
● .bash_profileに以下を追加
alias php='php -c/home/『ユーザー名』/www/php.ini'
● .cshrc に以下を追加
alias php php -c /home/『ユーザー名』/www/php.ini
追加後にコマンドラインから
php -m
で該当モジュール(mailparse)が表示されていれば正しくインストールされています
composer requie hogehoge/hogehoge
とするかわりに
php /PATH/TO/COMPOSER/composer.phar require hogehoge/hogehoge
とすればいいでしょう。
さくらのレンタルサーバ「スタンダード」へPHPの FTP拡張(ftp.so)ソケット拡張(socket.so)をインストールする方法。
PHPのソースから
phpinfo();
でバージョンを確認します。
https://secure.php.net/releases/
例(バージョン 5.6.21)の場合はPHP 5.6.21 (tar.gz) をダウンロードして展開するとフォルダ php-5.6.21 ができます。
cd ./php-5.6.21/ext/sockets
phpize
./configure
make
成功すると modules/sockets.so ファイルができます。
例( 【ホームディレクトリ】/php_modules)の場合
mkdir ~/php_modules
cp modules/sockets.so ~/php_modules/
php.ini に以下を追加します
extension_dir = /home/『ユーザー名』/php_modules/
extension = sockets.so
成功すると
と表示されます。
同様に 3〜5 の手順で ftp拡張をインストールするすることもできます。
● .bash_profileに以下を追加
alias php='php -c/home/『ユーザー名』/www/php.ini'
● .cshrc に以下を追加
alias php php -c /home/『ユーザー名』/www/php.ini
追加後にコマンドラインから
php -m
で該当モジュール(mailparse)が表示されていれば正しくインストールされています
composer requie hogehoge/hogehoge
とするかわりに
php /PATH/TO/COMPOSER/composer.phar require hogehoge/hogehoge
とすればいいでしょう。