2
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?

More than 1 year has passed since last update.

XSERVER BusinessでLaravelとNode.jsを動かす

Last updated at Posted at 2023-01-29

XSERVER Business (エックスサーバー社が提供する法人向けレンタルサーバサービス)にLaravelアプリケーションを新規導入した際の手順メモです。

制約事項

  • レンタルサーバなので、root権限がない。
  • 対象のサーバが、かつて存在したシックスコアを継承したものであるため、最新ハード/ソフトが導入されたサーバに移行できない。

という制約があります。
image.png
また、ディストリビューションなどの仕様は非公開となっています。

手順

サーバーパネルでの操作

XSERVER Business のサーバーパネルにログインします。
image.png
image.png

PHPバージョン切替

【PHP】-【PHPバージョン切替】-【ドメイン名】から設定します。
今回導入するのはLaravel9ベースになるので、PHPのバージョンは8.1以上を指定します。
image.png
PHPスクリプトの動作モードには、Webサーバ経由で実行するCGI版と、Webサーバを経由せずコマンドラインで実行するCLI版があります。
サーバーパネルから変更できるのはCGI版です。

データベースの作成

【データベース】-【MySQL設定】から設定します。

「MySQL追加」のタブをクリックし、データベース名を入力します。
必ず固定のプレフィックス(サーバーID)が付きます。
image.png

「MySQLユーザ追加」のタブをクリックし、ユーザIDとパスワードを入力します。
image.png

最後に、追加したデータベースのアクセス権を、追加したユーザに付与します。

ターミナルでの操作

SSHでサーバにログインします。
SSHが無効なら、サーバーパネルから有効化し、公開鍵認証の鍵ペア生成と公開鍵の登録を済ませて下さい。

ホームディレクトリ(/home/[サーバーID])に移動します。

cd ~

PHPの設定

コマンドラインで動作するPHPのバージョンを切り替えます。(シンボリックリンク)

mkdir bin
ln -s /usr/bin/php8.1 $HOME/bin/php

パスを通します。

~/.bash_profile
PATH=$HOME/bin:$PATH

即時反映し、PHPのバージョンを確認します。

source .bash_profile
php -v

Composerのインストール

https://getcomposer.org/download/ からインストールスクリプトをターミナルにコピペし、実行します。

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

パスの通ったディレクトリにコマンドを移し、composerのバージョンを確認します。

mv composer.phar bin/composer
composer -V

Laravelプロジェクトの作成

cd $HOME/[ドメイン名]
mkdir laravel && cd laravel
composer create-project laravel/laravel [プロジェクト名]

プロジェクトのルートディレクトリに移動し、Laravelのバージョンを確認します。

cd [プロジェクト名]
php artisan --version

プロジェクトディレクトリのpublicフォルダを公開フォルダに設定

ln -s $HOME/[ドメイン名]/laravel/[プロジェクト名]/public $HOME/[ドメイン名]/public_html

.htaccessにURLリダイレクトのルールを記述します。
エックスサーバーはnginxですが、.htaccessをそのまま利用できるようです。

/home/[サーバーID]/[ドメイン]/public_html/.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1
</IfModule>

https://[ドメイン名] にアクセスし、トップページの正常表示を確認します。
独自SSLを設定しなかった場合は、httpshttpに読み替えて下さい。

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.1.0". のエラーになった場合は、サーバーパネルにおいてPHPバージョン切替ができていません。

データベースの設定

サーバーパネルで設定したデータベース情報をLaravelの環境ファイルに記述します。
プロジェクトのルートディレクトリにある.envを編集します。

.env
DB_CONNECTION=mysql
DB_HOST=mysql5b.sixcore.ne.jp
DB_PORT=3306
DB_DATABASE=データベース名(サーバーID含む)
DB_USERNAME=ユーザー名
DB_PASSWORD=パスワード

マイグレーションできることを確認します。

php artisan migrate

Node.js のインストール

ここからは必要に応じて。
nodebrewを使ってNode.jsをインストールしていきます。

wget git.io/nodebrew
perl nodebrew setup

パスを通します。

~/.bash_profile
PATH=$HOME/.nodebrew/current/bin:$HOME/bin:$PATH

即時反映し、nodebrewのバージョンを確認します。

source .bash_profile
nodebrew -v

いったん、最新バージョンのNode.jsをインストールしてみます。

nodebrew install-binary latest
nodebrew use v19.5.0
node -v

nodeコマンドでエラーになりました。

node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)

このNodeバージョンでは、GLIBCのさらに新しいバージョンを必要としているようです。
インストールされているGLIBCのバージョンを確認します。

$ ldd --version
ldd (GNU libc) 2.17

今現在利用可能なNodeバージョンの一覧を確認します。

nodebrew ls-remote

GLIBC 2.17で動くNodeバージョンをインストールします。

nodebrew install-binary v17.9.1
nodebrew list

Nodeバージョンを切り替えます。

nodebrew use v17.9.1

Laravelプロジェクトのルートディレクトリに移動し、package.jsonに記述されたパッケージを一括でインストールします。

cd /home/[サーバーID]/[ドメイン名]/laravel/[プロジェクト名]
npm install
2
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
2
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?