mixhost

mixhostでLaravelをインストールする方法を紹介します。

mixhostでLaravelインストールしたいんだけどできる?

できますよ。

この記事ではmixhostでLaravelをインストールするっていうことをやっていきます。

この記事でやること

  • mixhostの環境確認
  • Laravelのインストール

mixhostでLaravelをインストールしてみたい方は参考にしてみてください。

mixhostでLaravelインストールしていきましょう。

mixhostの環境を確認する

まずはmixhostにLaravelをインストールする上でどのような環境なのかを確認します。

SSH接続する

SSH接続の方法は以下の記事で書いているので、よかったら参考にしてみてください。

mixhost

mixhostでSSH接続する方法を紹介します。

2022/9/19  

そんな疑問を解消するために、この記事ではmixhostで契約したサーバーにSSH接続する方法を紹介し ...

mixhostの環境確認

PHPのバージョンやComposerについて確認します。

$ php -v
PHP 7.4.30 (cgi-fcgi) (built: Jun 16 2022 05:53:29)

$ composer -v
Content-type: text/html; charset=UTF-8

Warning: Composer should be invoked via the CLI version of PHP, not the cgi-fcgi SAPI
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.2.12 2022-04-13 16:42:25

phpとcomposerは入っていますね。Composerのバージョンが最初から2系なのはいいですね。

ドメインの取得・追加する

Laravelアプリを公開したいドメインを取得したらmixhostに追加します。

mixhostにお名前.comで取得したドメインを追加する方法は以下の記事で書いているので、よかったら参考にしてみてください。

mixhost

mixhostでお名前.comドメインを使う方法を紹介します。

2022/9/19  

この記事ではお名前.comで取得したドメインをmixhostで使う方法を紹介します。 お名前.com ...

mixhostにはLaravelをインストールする機能がある

mixhostにはLaravelをインストールする機能があります。

コントロールパネルからしたの方にあるスクリプトを見てみましょう。

Laravelをインストールしたいドメインを選択してインストールしたいバージョンの選択もここでできます。

もしLaravelが求めるPHPのバージョンに合わなかったらエラーが出るので、チェックを入れて再度インストールします。

インストールを実行すると無事インストールされました。

ブラウザからアクセスする

ブラウザからアクセスしてみると/public/が表示されましたね。

ただ/publicというパスで表示させたくないので、index.phpを編集します。

index.phpを編集する

下記のページを見るとcPanelを使った場合のインストールについて書かれています。mixhostは管理画面にcPanelを採用しているので、同じ様な具合ですね。

記事を参考にしつつindex.phpを編集します。

<?php

use Illuminate\Contracts\Http\Kernel;
use Illuminate\Http\Request;
define('LARAVEL_START', microtime(true));
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$kernel = $app->make(Kernel::class);
$response = tap($kernel->handle(
    $request = Request::capture()
))->send();
$kernel->terminate($request, $response);

これで/publicにリダイレクトされることがなくなりました。これでここから作られたLaravelを元に開発を進めてみるといいでしょう。

ここから先、険しい道のりなのでサラッと見るぐらいで大丈夫です。諦めました。

データベースを作成する

Laravelを使うということはデータベースも使いたいはずです。Laravelをインストールしてみたけど、データベースは作成されていない様に思うので作成します。

データベースにアクセスするユーザーを作成します。

ユーザーをデータベースに追加します。

権限を付与します。

これでデータベースの作成は完了。

データベース接続情報を変更する

Laravelアプリから接続できるように.envを編集します。

APP_NAME=MyApp
APP_ENV=production
APP_DEBUG=false
APP_URL=https://〇〇.tokyo
APP_KEY=

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=作成したデータベース名
DB_USERNAME=作成したユーザー名
DB_PASSWORD=作成したパスワード

APP_KEYの作成

APP_KEYも作成します。

$ php artisan key:generate

INFO  Application key set successfully.

Content-type: text/html; charset=UTF-8

Composerで敗北

ちゃんとローカルのアプリケーションを表示するところまでやりたかったんですが敗北しました。Composerが手強かったです。

以下やったことを書きますね。

Composerをインストールする

既にComposerの2系入っているしいいかなと思ったけど、そのまま使ったらcompose install時に以下のエラーが起きました。

Composer could not find a composer.json file in /opt/cpanel/composer/bin

/opt/cpanel/composer/binを参照しているけど見て欲しいのそこじゃないんだよなあ・・・

Composerの参照するディレクトリを変更する

Composer新しくインストールしようとしてもエラーが出ます。なので既存のComposerでやろうと思って、そもそものパスを変更しました。

$ export COMPOSER=composer.jsonへのパスを指定
$ composer install

mixhostのコンポーザーを使ってcomposer installすると何故か/opt/cpanel/composer/binの中のcomposer.jsonを見に行ってしまうのでそれを変更しました。

vendorもよくわからない場所に入れようとするので変更です。

$ composer config vendor-dir プロジェクトのvendorディレクトリへのパス

こうすることで、composer.jsonのconfigに値が編集されます。

また、composerで使われるPHPのバージョンがあっていないというエラーが出ていたので設定を編集。

$ composer config platform.php 8.0.16
$ composer update
#これはエラー
 [ErrorException]
  Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.1.0". You are running 7.4.30.

ここであーこれはもうしんどいなと思います。PHPのバージョンはドメインのディレクトリでは8.1.10になっているんだけど、システムのPHPバージョンはPHP 7.4.30です。

エラーを見る限りドメインのディレクトリにあるPHPバージョンではなくてシステムのPHPバージョンを参照しています。じゃあそのシステムのPHPバージョン別のにすればいいんじゃん?と思ったんですが、mixhost他のバージョン入っていない様に思います。(どっかにあるのかな・・・)

ないもんはもうしょうがないです詰みました。

そもそもComposerに求められるのはCLI版のPHP

そもそもなんですが、Composerに求められるPHPってCLIなんです。

Composer should be invoked via the CLI version of PHP, not the cgi-fcgi SAPI

mixhostでphp -vとかやってみると出てくるのはくるのはcgi-fcgiです。これだとComposer扱うのきついよ。

まとめ

mixhostのLaravelインストール機能は楽だしそこで作られたものをもとに何かを作っていくのはいいかもしれない。

ただ色々試した結果自分が求める様なことをやろうとすると悉く失敗します。こういう場合はやっぱりVPS使ってやるのがいいです。

-mixhost