Plesk Obsidian 18のコマンドライン

らら
らら

はじめに

自社用の検証用サーバーの移転をしないといけないことに。かなり昔のサーバーで過去の遺物も・・・・・

自社用なのでサーバー屋さんへお願いできる費用もなく・・・・

仮想サイトで24ドメインあるので、面倒・・・・

新サーバーはPlesk なので、コンパネで1サイト毎設定なんて・・・・いや・・・・、コンパネアレルギーが・・・

といっても・・コンソールも・・・・・・・

調べてみた。

まず、Pleskで24ドメインもあるので、入れたくないので。。

/usr/local/psa/bin/の中にコマンドラインの実行ファイルがあるこの中にsiteってファイルがあるがこれかと思いリファレンスみると

思った感じではない・・・ftpsubaccountとかmailとかuserとかそれぽいのがあるが個別ぽい。

海外サイトでググると、subscriptionってのらしい。。

サイトの作成と、サイトアカウント、FTPアカウントを1コマンドで作ってくれるらしい。。これだー。SSLの設定、CGIの設定も同時でできるー

コマンド


cd /usr/local/psa/bin/
./subscription --create 作成ドメイン名 -owner admin -service-plan "Unlimited" -ip 割り当てるIP -login 作成するアカウント -passwd "作成するアカウントパスワード" -perl true -cgi true -ssl false -hst_type phys -hosting true 

-owner admin -service-planの部分、各種オプションは合わせてくださいね。

下記はリファレンスです。

https://docs.plesk.com/en-US/obsidian/cli-linux/using-command-line-utilities/subscription-subscriptions.37768/

ちなみに載ってても動作しないのもありました。。

plesk18

①は-ssl true/false

②は-ssl-redirect true/false

③は-cgi true/false

更新するコマンド、例はテストサイトのなのでSSLを外したときのコマンド


cd /usr/local/psa/bin/
./subscription --update 対象ドメイン名 -ssl false -ssl-redirect false

ちなみに今回はメールアカウントはないので使わなかったけど。メモで


cd /usr/local/psa/bin/
./mail --create 指定のメールアドレス -mailbox true -passwd 'パスワード'

また、上記を実行後は、ヒストリーに残ってしまうので、history -cとかわすれないように・・パスワードがあるので、わすれないでね・・・

旧サイトからファイルを

サイトが多いのでtarでは、一括でできないことが・・圧縮も時間が・・・

rsyncが動いたーー、新サーバーのplesk側もインストールしないで動いたのでこれで・・いこう・・

はじめは、pleskのhomeが空いていたので、そこから、mountして/etc/fstabと思ったんだけど。。ちょっとまて。。pleskでサイト削除しちゃうと・・

fstabでエラーになって起動しないとか・・・・・あ・ぶ・な・い。。

rsyncで旧homeから新サーバーのhomeは


rsync -rav /home アカウント@IPアドレスなど:/

vは表示なのでいらない場合は-raとか・・

ちなみにコマンドはこれ。


mount --bind 元のパス 新しいパス(/var/www/vhosts/xxxxxxx/htdocs)

mountは再起動すると戻ってしまうので、恒久的設定はfstabで行う・・

/etc/fstab


元のパス         新しいパス(/var/www/vhosts/xxxxxxx/htdocs)                none    bind            0 0

上記だと1回の同期で楽かとおもったけど。。危ないのでやめて、個別rsyncで書くことに。。その時にパスワードが面倒・・・・

検証用サーバーなので、メンテナンスごとに、だれかが触るので・・24ドメイン毎、コマンド打つのとパスワードが面倒・・・・

あれだな。。expectコマンド、cronでお世話に。。。旧サーバーみると、expectがない・・・yumもつながらない。。。

rsyncは、ほんとは、認証ファイル使ってやったほうがいいですよ・・・・

旧サーバーのバージョンを確認。。


grep -H "" /etc/*version ; grep -H "" /etc/*release

該当のexpect-xxxxx.i386.rpmを落としてきて。。個別インストールした。

下記のスクリプトを24サイト分記述してsync.shで保存して・・実行・・・


#!/bin/bash
expect -c "
  spawn rsync -rav  /home/旧サーバーの絶対パス  新アカウント@新サーバーIP:/var/www/vhosts/新サーバー絶対パス/httpdocs
  expect \"Password:\"
  send \"新サーバーのパスワード\"
  interact
"
この後複数。。。

楽だわーーー、こちらも移転完了時。sync.shは削除しないとね。。パスワード書いてあるからね。。

のこりの問題点1

ユーザーとグループ権限・・旧サーバーはapacheグループなのでpleskグループに変えておく・・

pleskはファイルのグループがpsaclnでhttpdocsのグループがpsaservなのでこちらで。変更


chown  -hR FTPアカウント:psacln /var/www/vhosts/新サーバー絶対パス/httpdocs
chown FTPアカウント:psaserv /var/www/vhosts/新サーバー絶対パス/httpdocs

これも面倒なのでアカウントとパスをスペース区切りで作成して。以前紹介した。下記で

秀丸で正規表現をつかう


FTPアカウント1 /var/www/vhosts/新サーバー絶対パス1/httpdocs
FTPアカウント2 /var/www/vhosts/新サーバー絶対パス2/httpdocs
FTPアカウント3 /var/www/vhosts/新サーバー絶対パス3/httpdocs

(.+) (.+)

chown  -hR $1:psacln $2
chown $1:psaserv $2

エクセルとかでもできるので一括でコマントをつくります。

のこりの問題点2

検証用サーバーにはすべて、フォルダーにベーシック認証がかかっているので・・・・全部で170ファイル近く・・・・

下記から.htaccessでhome/のパスが含まれているファイル数をみる・・・


find /var/www/vhosts/新サーバー絶対パス1/httpdocs/ -name '.htaccess' -type f | xargs grep home/

パスの場合正規表現の区切り文字を|と便利です。

htaccess置換用コマンド、こちらもサイト分24個つくります。


find /var/www/vhosts/新サーバー絶対パス1/httpdocs/ -name '.htaccess' -type f | xargs sed -i 's|/home/旧サーバーの絶対パス1|/var/www/vhosts/新サーバー絶対パス1/httpdocs/|g'

追記

検証用サーバーの中にふるーーぃPHPが、半ばあきらめていたのが。。

下記からPHP 5.3 (outdated) が入れれるのを発見!pleskは仮想サイト毎にphpバージョン設定できるので。これで・・・

たしか、5.4からいろいろなくなったので5.3を入れてみて。。動きました....

まぁ。検証サイトは、ベーシック認証かけているので....

SQLはきっと担当がいれるでしょぉ・・

plesk18php

plesk18php

plesk18php

さいごに

すぐわすれちゃうのでメモです。。

関連記事