概要
Pleskは一台のサーバーに複数のウェブサイトをGUIで管理できるアプリケーションです。
https://www.plesk.com/
複数バージョンのphpやcomposerが導入でき、とても便利なのですが、deployerのデフォルト設定では動かないため、便利に使う手順をここに残します。
deployer.phpの設定全体
(user)は、Pleskのユーザー名。
(pem)は、ローカルに置いたSSHのpemファイルのファイル名。
(org)/(**repo**)は、GitHubのレポジトリ名。
<?php
namespace Deployer;
require 'recipe/laravel.php';
// Config
set('repository', 'git@github.com:(**org**)/(**repo-name**)');
add('shared_files', []);
add('shared_dirs', []);
add('writable_dirs', []);
// Hosts
host('(**hostname**)')
->set('stage', 'dev')
->set('remote_user', '(**user**)')
->set('deploy_path', '~(**user**)')
->set('identity_file', '~/.ssh/(**pem**)')
->set('bin/composer', '/usr/local/psa/var/modules/composer/composer.phar')
->set('bin/php', '/opt/plesk/php/8.2/bin/php');
// Tasks
task('deploy:dotenv', function () {
$stage = get('stage');
$src = ".env.{$stage}";
$deployPath = get('deploy_path');
$sharedPath = "{$deployPath}/shared";
run("cp -f {{release_path}}/{$src} {$sharedPath}/.env");
});
task('ks-plesk-webapp-restart', function () {
run("/usr/local/bin/ks-plesk-webapp-restart");
});
// Hooks
after('deploy:failed', 'deploy:unlock');
before('deploy:shared', 'deploy:dotenv');
after('deploy:success', 'ks-plesk-webapp-restart');
SSHの有効化
sshでのアクセスを有効にする。
- Pleskの管理画面で、ウェブサイトとドメインから、ホスティングするドメインの「接続情報」をクリックする。
- アクセス管理をクリックする。
- SSH アクセスの「タイプ」を/bin/bashに設定する。
証明書の配置
sshでログインして、.sshディレクトリにsshでアクセスするための公開鍵を配置する。
~/.ssh/authorized_keys
ssh-ed25519 ******************************************************
GitHub
GitHubに登録した公開鍵に対応した秘密鍵を配置する。
~/.ssh/id_ed25519
-----BEGIN OPENSSH PRIVATE KEY-----
******************************************************
******************************************************
-----END OPENSSH PRIVATE KEY-----
ks-plesk-webapp-restartの導入
opcacheを使っていると、反映されないことがあるので、下記のツールを導入する。