💻

LaravelプロジェクトをCloneした時にやったことメモ

2024/07/17に公開

既にMacで作成済みのプロジェクトを訳あってWindows環境へクローンする必要ができたのでその時にWindowsPCで同じようにローカルでサーバー立ち上げて動作させるまでの備忘録

一旦WindowsではSourceTree経由でWSLのUbuntu上のフォルダにクローンしてプロジェクトを配置

SourceTreeでコミットの履歴とか見ようとしたらコード128云々というエラーが…
調べてみるとsafe.directoryという部分の設定がされていないようなので以下コマンドで実行

$ git config --global --add safe.directory '%(prefix)///wsl.localhost/Ubuntu/(以下リポジトリのパス)'

#これで追加したディレクトリが表示されれば多分OK
$ git config --global -l | grep 'safe.directory'

本題

とりあえずsail up…をしようとしたらvendorフォルダがない😇
以下コマンドで生成できるようなので実行してみる

$ composer install

しかしエラー_(:3 」∠)_

Command 'composer' not found, but can be installed with:
sudo apt install composer

composer無いから入れろ、と

composerインストール

$ sudo apt install composer

色々入って再度実行すると今度は色々問題が発生

$ composer install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.

  Problem 1
    - symfony/css-selector is locked to version v7.0.0 and an update of this package was not requested.
    - symfony/css-selector v7.0.0 requires php >=8.2 -> your php version (8.1.2) does not satisfy that requirement.
  Problem 2
    - symfony/event-dispatcher is locked to version v7.0.0 and an update of this package was not requested.
    - symfony/event-dispatcher v7.0.0 requires php >=8.2 -> your php version (8.1.2) does not satisfy that requirement.
…(省略)

「Please run composer update.」ってことらしいので今度はそれを実行するも…

$  composer update
Composer is operating significantly slower than normal because you do not have the PHP curl extension enabled.
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/pint[v1.0.0, ..., v1.16.2] require ext-xml * -> it is missing from your system. Install or enable PHP's xml extension.
    - Root composer.json requires laravel/pint ^1.0 -> satisfiable by laravel/pint[v1.0.0, ..., v1.16.2].
…(省略)

一旦composerの状態を確認するために以下のコマンドを実行する

$ composer diag
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Composer version: 2.2.6
PHP version: 8.1.2
PHP binary path: /usr/bin/php8.1
OpenSSL version: OpenSSL 3.0.2 15 Mar 2022
cURL version: missing, using php streams fallback, which reduces performance
zip: extension not loaded, unzip present, 7-Zip not available

curlやらxmlやら色々となんか足りてないぞ、ということが発覚
以下コマンドでその色々をインストール

$sudo apt install -y curl unzip php-curl php-xml

インストール後にcomposer updateが成功
無事vendorフォルダも生成された

.envの設定

次は.envファイルとアプリケーションキーの設定が必要なので以下コマンド実行

$ cp .env.example .env
$ php artisan key:generate
$ php artisan config:clear

.env.exampleというテンプレみたいなファイルがあるのでそれをコピーして.envファイルを生成
一旦phpコマンドからサーバーの動作確認

php artisan serve

無事localhostへのアクセスを確認😎
今回はsailで動くか試したいので先ほどのサーバーはCtrl+Cで中断して、再度sail up

$ ./vendor/bin/sail up

こちらも問題なく起動
今後のためにエイリアスなどの設定もしたけどそれはここでは割愛

マイグレーション

API呼び出しのテストのためにDBも構築する必要があった

$ sail artisan migrate

UnexpectedValueExceptionが出た
storage/logsのアクセス権限がないとのことだったので付与

$ chmod 777 storage/logs

#キャッシュのクリア
$ php artisan cache:clear
$ php artisan route:clear
$ php artisan config:clear

再びsail artisan migrateで無事成功

おまけ

今回のプロジェクトはUnityからAPI呼び出しするためのものだった
UnityではSQLiteプラグインを使ってアプリにもデータベースを作成していたのだが、
Macで作ったプロジェクトをWindowsに持ってきたらプラグインの拡張子が.soでは動かず、Windows用に.dllが必要だった
何か設定で解決できたかも…?

Discussion