【完全版】sudo権限なし!XserverでLaravel Passportを動かすためのPHP拡張機能sodiumインストールガイド

2025.09.12

「XserverでLaravelを動かしているけど、composer require laravel/passportを実行したらext-sodiumがないって怒られた…。」

sudo(管理者権限)が使えないから、yumapt-getで簡単に追加もできない…。」

そんな、レンタルサーバーならではの悩みを抱えているあなたへ。本記事では、SSH上でソースコードからライブラリをコンパイルし、管理者権限なしでPHPのsodium拡張機能を有効にするための全手順を、ハマりどころの解説を交えて詳しく解説します。

💡 なぜこの記事が必要なのか?

Laravel Passportは、API認証(OAuth2)を実装するための強力なパッケージですが、内部で暗号化処理を行うためにPHPのsodium拡張機能を必要とします。多くのレンタルサーバーでは、この拡張機能がデフォルトで有効になっていなかったり、特にコマンドライン(CLI)環境では読み込まれていなかったりします。

この記事を最後まで読めば、composerコマンドが通らずに諦めかけていたあなたも、きっとLaravel Passportを導入できるようになるはずです。


Step 1: libsodium本体をソースからコンパイル

まずは、PHP拡張機能の土台となるlibsodiumライブラリ本体をインストールします。sudoが使えないので、自分のホームディレクトリ内にインストールするのがポイントです。

Bash

# 作業用ディレクトリを作成
mkdir -p ~/usr/local/src

# libsodiumのソースコードをダウンロードして展開
cd ~/usr/local/src
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.20.tar.gz
tar xzvf libsodium-1.0.20.tar.gz
cd libsodium-1.0.20

# インストール先を自分のホームディレクトリに指定してコンパイル
# --prefixで「どこにインストールするか」を指定します
./configure --prefix=$HOME/usr/local
make && make check

# 指定したディレクトリにインストール
make install

これで、$HOME/usr/local配下にlibsodiumがインストールされました。


Step 2: PHP sodium拡張機能をコンパイル

次に、PHPとlibsodiumを繋ぐための「接着剤」であるsodium拡張機能自体をコンパイルします。

# PHPのソースコードからsodium拡張機能の部分だけを取り出す
cd ~/usr/local/src
# ★ご自身のPHPバージョンに合わせて修正してください
wget https://github.com/php/php-src/archive/refs/tags/php-8.3.21.tar.gz -O php-8.3.21.tar.gz
tar xzvf php-8.3.21.tar.gz
mv php-src-php-8.3.21/ext/sodium ./sodium-php-8.3.21
cd sodium-php-8.3.21

# PHP拡張機能としてビルドするための準備
# ★ご自身のPHPバージョン、パスに合わせて修正してください
/opt/php-8.3/bin/phpize

# 拡張機能のコンパイル設定
# PKG_CONFIG_PATHで先ほど入れたlibsodiumの場所を教えるのが重要!
PKG_CONFIG_PATH=$HOME/usr/local/lib/pkgconfig ./configure --with-php-config=/opt/php-8.3/bin/php-config --with-sodium=$HOME/usr/local

# コンパイルを実行
make
make test

make testが成功すれば、コンパイルは完了です!modules/ディレクトリにsodium.soというファイルが生成されているはずです。


Step 3: 拡張機能の手動インストール

sudo権限がないため、make installは権限エラーで失敗します。そこで、コンパイルして出来上がったsodium.soファイルを、自分で管理するディレクトリに手動でコピーします。

# 拡張機能置き場を作成
mkdir -p ~/usr/local/php/extension

# コンパイルしたsodium.soをコピー
cp modules/sodium.so ~/usr/local/php/extension/

これで、拡張機能の「モノ」の準備は整いました。


Step 4: WebとCLI、両方のPHP環境を設定 🚀

ここがこの記事の一番重要なポイントです。レンタルサーバーでは、Webサイトを表示するときのPHPと、SSHでコマンドを打つときのPHP(CLI)は、別々の設定を読み込んでいます。両方を正しく設定しないと、composerは成功したのにサイトが表示されない、といった問題に直面します。

A) コマンドライン(CLI)用の設定

composerなどのコマンド実行時に読み込ませるための、専用の設定ファイル~/sodium.iniを作成します。

# ★ユーザー名の部分(weluvbaby2)はご自身のものに修正してください
cat << EOF > ~/sodium.ini
; 自前でコンパイルしたsodiumはフルパスで指定
extension = /home/{サーバーID}/usr/local/php/extension/sodium.so

; 他の必須拡張機能は名前だけで指定 (サーバーの標準ディレクトリから読まれる)
extension = pdo
extension = pdo_mysql
extension = mbstring
extension = gd
extension = dom
extension = openssl
extension = fileinfo
extension = xml
EOF

【ポイント解説】

  • 自作したsodium.soだけフルパスで指定します。
  • extension_dir記述しません。これにより、pdoなどの標準拡張機能はサーバーの正しい場所から読み込まれます。

B) Webサーバー用の設定

サイト表示時に「Class "PDO" not found」などのエラーが出るのを防ぐため、Webサーバー側の設定も行います。

  1. Xserverのサーバーパネルにログインします。
  2. 「PHP」カテゴリにある「php.ini設定」に進みます。
  3. 設定対象のドメインを選択し、php.iniの編集画面を開きます。
  4. テキストエリアの末尾に、上記 A) で作成したsodium.iniと全く同じ内容をコピー&ペーストして保存します。

これで、WebとCLI、両方の環境でsodiumとその他の必須拡張機能が正しく読み込まれるようになりました。


Step 5: composerを実行してPassportを導入! 🎉

いよいよ最終段階です。作成した専用設定ファイルを-cオプションで指定してcomposerを実行します。

# Laravelプロジェクトのディレクトリに移動
cd /path/to/your/laravel/project

# 専用設定ファイルを読み込ませてlaravel/passportをインストール!
# ★ご自身のPHPパス、ユーザー名に合わせて修正してください
/opt/php-8.3/bin/php -c /home/{サーバーID}/sodium.ini $(which composer) require laravel/passport

これで、ext-sodiumがないというエラーは表示されず、無事にインストールが開始されるはずです!

⭐ おまけ:便利なエイリアス設定

毎回長いコマンドを打つのは大変なので、alias(コマンドのショートカット)を作っておくと非常に便利です。~/.bashrcなどに以下を追記しましょう。

# ~/.bashrcに追記 (★パスはご自身の環境に合わせてください)
alias composer-php='/opt/php-8.3/bin/php -c /home/{サーバーID}/sodium.ini $(which composer)'

# シェルに設定を再読み込みさせる
source ~/.bashrc

# これで、次回からはcomposer-phpと打つだけでOK!
# 例:
composer-php update

まとめ

sudo権限のないレンタルサーバー環境では、少し遠回りな手順が必要ですが、一つずつ問題を切り分けて対処すれば必ず道は拓けます。この記事が、同じ壁にぶつかった誰かの助けになれば幸いです。


🏢 株式会社ハジメクリエイトについて

この記事は、 株式会社ハジメクリエイト のエンジニアが執筆しました。


💻 Webシステム開発のプロフェッショナル

私たちは、ビジネスの成長をサポートするため、 PHPを用いたオーダーメイドのシステム開発 を提供しています。
お客様一人ひとりのニーズに応じたカスタムシステムを、 企画から開発・運用まで一貫してサポート
さらに、 React Nativeを活用したiOS/Android対応のアプリ開発 も得意としています。

単に「作る」だけでなく、
課題の本質に向き合い、最適な解決策を提案する のがハジメクリエイトのスタイルです。


🧑‍💻 一緒に働く仲間を探しています!

株式会社ハジメクリエイトでは、 自ら考え行動できるエンジニア を募集しています。
「私はこれがしたい!」という想いを持つあなた、一緒にモノづくりを楽しみませんか?

  • 技術で人の役に立ちたい
  • 意見が通る小さなチームで働きたい
  • フロントエンドもバックエンドも、いろいろ挑戦してみたい
  • お客さんと一緒にプロジェクトを育てたい

そんな気持ちがある方なら、きっと居心地のいい環境だと思います。
正社員はもちろん、パートタイムでの参加も歓迎中! 柔軟な関わり方で、あなたらしく働いてください。

👉 採用情報を見る
👉 お問い合わせはこちら


ちょっとでも「この会社、気になるな」と思ったら、ぜひお気軽にご連絡ください📩
最後まで読んでいただきありがとうございました!

  • Web技術

この記事を書いた人

Sho Tsukamoto

Chief Engineer Sho Tsukamoto

2023年4月入社。Web職人のたまごです。 最近はもっぱらコーディングすることは少なく、LaravelやReact Nativeを用いたシステム開発をメインとしています。

Sho Tsukamotoの書いた記事一覧へ

ハジメクリエイトでは一緒に働く仲間を募集しています!

関連記事