0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Coreserver V1 プランで Laravel を動かす: SSH・PHP・Composer・シンボリックリンク設定

Last updated at Posted at 2025-11-08

概要

古くから使っている coreserver V1プランのメモ

ssh について

SSH接続する際は、coreserverコントロールパネルの「IP許可ボタン」を押すと、そのIPからパスワードログインが可能になる。
ただし、毎回パスワードを入力するのは面倒なので、公開鍵認証を設定するのがおすすめ。

自分のコントロールパネルではSSHキー設定画面が表示されない(V1プランだからかも)。
ただし、画面からでなく手動で登録可能。

# ローカルPCで実行
ssh-keygen -y -f "秘密鍵" # 出力された公開鍵をコピー

# coreserver 上で実行
echo "[コピーした公開鍵]" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

php のバージョン

複数の PHP バイナリが用意されており、ドメインごとにコントロールパネルから使用バージョンを選択できる。

CLI のデフォルト PHP は 7.4。
別のバージョンを使いたい場合は、直接バイナリを指定すればOK。
/usr/local/bin/ は PATH が通っているのでそのまま実行できる。

2025年時点では、以下のようなバージョンが確認できた。

ls -la /usr/local/bin/

~省略~
-rwxr-xr-x  1 root root 4475312 12月  6  2024 php53
-rwxr-xr-x  1 root root 4475312 12月  6  2024 php54
-rwxr-xr-x  1 root root 4475312 12月  6  2024 php55
-rwxr-xr-x  1 root root 4475312 12月  6  2024 php56
-rwxr-xr-x  1 root root 4510448 12月  6  2024 php56cli
-rwxr-xr-x  1 root root 4412568 11月 26  2024 php70
-rwxr-xr-x  1 root root 4522896 11月 26  2024 php70cli
~中略~
-rwxr-xr-x  1 root root 6390968  5月  6  2025 php83
-rwxr-xr-x  1 root root 6391488  5月  6  2025 php83cli
-rwxr-xr-x  1 root root 6376376  3月 18  2025 phpcli

php53 〜 php83cli まで多数あり
最新: php83 / php83cli

composer

デフォルトでは composer が入っていないので、自分で設置する必要がある。

mkdir -p "$HOME/.local/bin"

# composer phar をダウンロード
curl -sS https://getcomposer.org/composer-stable.phar -o "$HOME/.local/bin/composer.phar"

# ラッパーを作る(php83 を使って composer として実行できる)
cat > "$HOME/.local/bin/composer" <<'EOF'
#!/bin/sh
exec /usr/local/bin/php83cli "$HOME/.local/bin/composer.phar" "$@"
EOF

chmod +x "$HOME/.local/bin/composer"

# PATH に追加。.bash_profileに追加
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile

# 動作確認
composer --version

# composer install
cd /path/to/your/project 
composer install --optimize-autoloader --no-dev

php83cli をデフォルトで使いたいなら以下の設定がおすすめ

cat > "$HOME/.local/bin/phpcli" <<'EOF'
#!/bin/sh
exec /usr/local/bin/php83cli "$@"
EOF

CoreserverでLaravelをシンボリックリンクで動かす手順

課題

  • Coreserverのドキュメントルートは /home/username/public_html/example.com のように固定
  • Laravelのソース一式(.envなど)をWeb公開せず、publicディレクトリのみをルートとして公開したい

採用したディレクトリ構成

Laravelのソースコードを、公開ディレクトリと同じ階層に配置する。

/home/username/public_html/
├── example.com         <-- (削除後、シンボリックリンクに置き換える)
└── example.com-source  <-- Laravelソース一式 (app, vendor,.env など)
    ├── app/
    ├──...
    └── public/         <-- シンボリックリンクのリンク先

実行手順(サーバー作業)

1. シンボリックリンクの作成

まずSSHでサーバーに接続し、既存のドキュメントルートを削除。
次に、Laravelプロジェクトのpublicディレクトリを指すシンボリックリンクを、元のドキュメントルート名で作成する。

# 既存のディレクトリを削除
rm -rf /home/username/public_html/example.com

# laravel-app/public へのシンボリックリンクを作成
ln -s /home/username/public_html/example.com-source/public /home/username/public_html/example.com

2. Composer でライブラリをインストール

# プロジェクトのソースディレクトリへ移動し、依存関係をインストール
cd /home/username/public_html/example.com-source
composer install --no-dev --optimize-autoloader

3. 環境設定とパーミッション

本番用の.envファイルを配置し、storagebootstrap/cacheにWebサーバーからの書き込み権限を与える。

.env ファイルをサーバーに配置。これはcoreserver関係なく行う

# パーミッションを調整
chmod -R 775 storage bootstrap/cache

4. アプリケーションの初期化

.envファイルを配置したら、Artisanコマンドを実行してアプリケーションを初期化する。

# アプリケーションキーを生成
phpcli artisan key:generate

# データベースのテーブルを作成
phpcli artisan migrate --force

# (オプション) データベースに初期データを投入する場合
# phpcli artisan db:seed --force

5. 本番用キャッシュの生成

最後に、本番環境用に設定とルートをキャッシュする [9, 10]。

# 古いキャッシュをクリア
php artisan config:clear
php artisan cache:clear

# 本番用の新しいキャッシュを生成
php artisan config:cache
php artisan route:cache
php artisan view:cache

以上で http://example.com にアクセスすると、example.com-source/public の内容が表示される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?