Ubuntu20.04 に LiteSpeed Web Server を立てて Laravel9 を使うまで

今回はUbuntuにLiteSpeedを入れて、Laravel9でWEBシステム構築のメモ。
仕事メモです。
LiteSpeedの指定があったワケじゃないんだけど、WEBのコンソールが使える用でしたので便利なのかな?と思って構築してみただけ。
テスト用で後ほど同サーバーにWordPressも入れてみようと思いますが、とりあえずLaravel9。

広告

Ubuntu20.04 に LiteSpeed Web Server をインストール

まず Open LiteSpeed のインストールから。

こうれいのコマンドから。

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
# reboot

リポジトリ追加

# wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash

OpenliteSpeedをインストール

# apt install openlitespeed

phpのパッケージをインストール。

# apt-get install lsphp80 lsphp80-mysql lsphp80-common

最初に設定した際に、lsphp80-mysqlが無かったばかりに、
「could not find driver」のエラーにさいなまれました・・・。

openlightspeedのphpの設定を有効にするらしい。

# ln -sf /usr/local/lsws/lsphp80/bin/lsphp /usr/local/lsws/fcgi-bin/lsphp5

OpenliteSpeedを実行

startさせます。

# /usr/local/lsws/bin/lswsctrl start

パスワードの設定。

# /usr/local/lsws/admin/misc/admpass.sh

WEBコンソールから設定

http://サーバーIP:7080 などでアクセス。

設定したIDとパスワードでログインします。
ちなみに ポート:7080 はファイヤーウォールで制限しておきました。

ログインしたら画面右上で日本語化可能です。

バーチャルホストリストの設定

設定ファイルは保存する際にエラーが表示されますが、そこにあるリンクをクリックすれば設置される。

あとはバーチャルホストの設定をする。
Document Root はLaravelの場合 $VH_ROOT/public になる。

リスナーの設定

80番ポートにバーチャルホストとドメインを設定。

サーバーの設定

PHP8を使えるように設定。

そして再起動する。

SQLとPHP8をインストール

mariadbと、
Laravelのartisanを使う為にPHP8をインスト。

まずMySQL ってか mariadb 

# apt install -y mariadb-server

Sqlの設定 


# /etc/init.d/mysql start
# mysql -uroot -p

//rootのパスワード設定
MariaDB [(none)]> update mysql.user set password=password('rootのパスワード') where user = 'root';

//laravelで使うDBの設定
MariaDB [(none)]> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS laravel CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON laravel.* TO 'username'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;

PHP8をインストール 

LiteSpeedのPHPと別に、laravel9ではPHP8が必要。


# add-apt-repository ppa:ondrej/php
# apt install -y php8.0 php8.0-intl php8.0-mysql php8.0-gd php8.0-dom php8.0-curl php8.0-mbstring php8.0-xml php8.0-zip

とりあえず、Apacheの時と同じぶんインストしておいた。

Laravelをインストール

ようやくLaravelのインストに。

まずComposer


# apt install -y curl php-cli php-mbstring git unzip
# php -r "copy ( 'https://getcomposer.org/installer', 'composer-setup.php' ) ;";
# php composer-setup.php --install-dir=/usr/local/bin --filename=composer;
# composer -v
 
 
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.1.9 2021-10-05 09:47:38

Git

私の場合、ローカルで開発したモノをGITでPULLするので、その作業。


# mkdir /var/www
# cd /var/www
# git clone https://github.com/ユーザ名/プロジェクト.git

Laravel の設定関係

クローンしたプロジェクトを動くようにする。


//まずはcomposer instal
# composer instal

//.envの設置
# cp -p .env.example .env
# vim .env

//.env に APP_KEY を設定
# php artisan key:generate

# php artisan migrate

あとは必要があればシーディング。

GitをLiteSpeedのユーザーで実行できるようにする

pullした時にrootにならないようにGitの設定


# mkdir /var/www/laravel .ssh -p
# vim /var/www/laravel/.ssh/config

Host github.com
    User #GITアカウントT#
    Port 22
    HostName github.com
    IdentityFile ~/.ssh/#GITHUB_SECRET#.secret
    TCPKeepAlive yes
    IdentitiesOnly yes


#chown nobody:nogroup -R /var/www/laravel

そんでPULLしてみる。


# sudo -u nobody git pull

これでアクセスしてページが表示されてればOK。

SSL の設定

今時HTTPSなんで設定します。

letsencrypt

	
# apt install certbot

//設定に合わせて、-w,-d,-m を設定。
# certbot certonly  --agree-tos --webroot -w /var/www/laravel/public -d hoge.com -m hoge@hoge.com

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/hoge.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/hoge.com/privkey.pem
   Your cert will expire on 2022-08-10. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

上手くいけばのようになるので、
/etc/letsencrypt/live/hoge.com/fullchain.pem
/etc/letsencrypt/live/hoge.com/privkey.pem

↑をメモ。

リスナーの設定

https用のリスナーを作って、先ほどのカギをセットして完了です。

その他の設定

タイムゾーン

タイムゾーンの設定やらないと mariadb の時間ズレてしまいました。
defaultはOSの設定を使うようなのでタイムゾーンの設定やります。


# timedatectl set-timezone Asia/Tokyo 
 
# timedatectl
 
               Local time: Mon 2021-10-20 19:48:26 JST
           Universal time: Mon 2021-10-20 10:48:26 UTC
                 RTC time: Mon 2021-10-20 10:48:27
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
 
 
//SQLが立ち上がってたら再起動
systemctl restart mysql

デフォルトのPHPの設定

アプデの際に、PHPが8.1になってエラーしたんで、php8をデフォルトに設定。


# sudo update-alternatives --config php
There are 3 choices for the alternative php (providing /usr/bin/php).
 
  Selection    Path                  Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php.default   100       auto mode
  1            /usr/bin/php.default   100       manual mode
  2            /usr/bin/php8.0        80        manual mode
  3            /usr/bin/php8.1        81        manual mode
 
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/php8.0 to provide /usr/bin/php (php) in manual mode
 
# php -v
PHP 8.0.14 (cli) (built: Dec 20 2021 21:22:57) ( NTS )

大体こんな感じだったと思います。

思ったよりも面倒でした・・・。


おすすめのコンテンツ

広告

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください