LoginSignup
0
0

お名前.com のレンタルサーバーでLaravelを動かすメモ

Posted at

対象

  • RSプランを契約している (重要)
  • CLI を扱える
  • SSH を行なったことがある
  • レンタルサーバ系のコントロールパネルを扱ったことがある
  • PHP 8.1

概要

  1. コントロールパネルから SSH ログインできるようにする
  2. パソコンから SSH ログインする
  3. composer をインストールする
  4. node をインストールする
  5. プロジェクトフォルダを作成する
  6. シンボリックリンクを貼る
  7. .htaccess を修正する

SSH できるようにする

Key の登録

(登録済みの場合はスキップ)
サーバー > SSH に移動し SSH Key を追加 する。

自動生成

秘密鍵がダウンロードされる (Key名.pem)。
該当ファイルを ~/.ssh フォルダに移動して、パーミッションを 600 に変更する

インポート

ローカルで自分で 公開鍵/秘密鍵 を生成する (作り方は各自調べる)。
この時、鍵が ~/.ssh 以外に保存されている場合は、 ~/.ssh に移動しておく。
公開鍵 = パブリックキーをテキストエディタ等 (catコマンドでも良い) で開いてコピーし、フォームに入力する。

パソコンからSSHログインする

追加後 Key一覧 から 詳細 を押し、以下を確認する。

  • ホスト名
  • ポート番号
  • ユーザー名

これをもとにログインする。
接続情報を config に書いておくと便利。

composer をインストールする

インストール

公式サイト の先頭にある php -r と複数行書いてあるコマンドを 順番に1行ずつ コピペして実行する。
執筆時点での記述は次のとおり。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

移動

まずフォルダを作成する。

mkdir ~/bin

次に実行ファイルを移動する。

mv composer.phar ~/bin/composer

確認

composer が使えるかチェック。

composer -V

バージョンが表示されれば問題なし。
例) Composer version 2.6.6 2023-12-08 18:32:26

node をインストールする

まず nvm をインストールする

インストール方法は色々あるので好きな方法で構わない。
ここでは nvm を使う方法を採用する。
github を参考にコマンドを実行する。
執筆時点での記述は次のとおり。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

再ログインする

そのままだと nvm コマンドが実行できないので、一旦ログアウトして、再度SSHログインする。

node をインストールする

サーバーのライブラリの関係で最新バージョンが使えるとは限らない (インストール自体はできる)。
執筆時点での最新は 20系 だったが、エラーが出て実行できず、 18系 もダメだった。
結局 16系 をインストールした (偶数は安定バージョン)。

nvm install 16

確認

node -v

バージョンが表示されれば問題なし。
例) v16.20.2

プロジェクトフォルダを作成する

フォルダ構成は各自好きな様にして問題ないが、 ~/public_html/example.com/ は公開領域になるので、ホーム (~) 配下に置く方が良い。

mkdir ~/projects

git を使う

すでに開発が進行していて git でバージョン管理している場合。

git clone git@~~~

ここでプロジェクトを作る

これから開発を始める場合。

composer create-project laravel/laravel hogehoge~~

シンボリックリンクを貼る

まずプロジェクトをインストールするディレクトリや、公開するドメインごとのディレクトリ名の変数を設定する(ログアウトすると消えるので、途中で接続し直した場合は再度設定する)。

PROJECT_DIR=~/projects/hogehoge/public
SERVICE_DIR=~/public_html/example.com

1行ずつシンボリックリンクをはる

ln -s $PROJECT_DIR/.htaccess $SERVICE_DIR/
ln -s $PROJECT_DIR/favicon.ico $SERVICE_DIR/
ln -s $PROJECT_DIR/robots.txt $SERVICE_DIR/
ln -s $PROJECT_DIR/index.php $SERVICE_DIR/

以下は必要に応じて実行。

ln -s $PROJECT_DIR/build $SERVICE_DIR/
ln -s $PROJECT_DIR/js $SERVICE_DIR/
ln -s $PROJECT_DIR/css $SERVICE_DIR/
ln -s $PROJECT_DIR/images $SERVICE_DIR/
ln -s $PROJECT_DIR/storage $SERVICE_DIR/
ln -s $PROJECT_DIR/web.config $SERVICE_DIR/
ln -s $PROJECT_DIR/mix-manifest.json $SERVICE_DIR/

.htaccess を修正する

~/projects/hogehoge/public/.htaccess そのままだとエラーが出るので、削除もしくはコメントアウトする。

<IfModule mod_rewrite.c>
-    <IfModule mod_negotiation.c>
-        Options -MultiViews -Indexes
-    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

...
</IfModule>

その他

asset などが HTTPS にならない場合

app/Http/Middleware/TrustProxies.php を以下のように変更する。

class TrustProxies extends Middleware
{
-    protected $proxies;
+    protected $proxies = '*';
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