LoginSignup
3
2

More than 1 year has passed since last update.

ExmentをUbuntu22.0.4 サーバにインストールする手順

Last updated at Posted at 2022-09-06

概要

本記事では、Exmentを素のUbuntuにインストール手順を整理しようと思います。

本家サイトでは、CentOS ベースなのと、自分が構築したい以下の環境の情報がまとまっていない感じがしましたので、整理した感じです。まだ、自分用のメモ状態となりますのでご容赦くださいまし。

  • Linux
    • Ubuntu 22.0.4
  • データベース
    • MariaDB(10.3.34)
  • Webサーバー
    • Nginx(最新版)
  • PHP
    • PHP 8.1
    • PHP-FPM

以下の情報元を参照しながら構築したものですので、もし、ここ違うよ的なものがあれば、コメントいただけますと大変ありがたく思います。

なお、本記事ではセキュリティ周りの設定は省略しておりますので、ご注意くださいまし。

各種バージョン情報

Exment が依存するツール類は以下のバージョンがサポート対象なので、注意が必要です。

ちなみに、MariaDBを選択したのは以下あたりが理由です。

  • 性能
  • バージョン
    • ExmentのMySQLサポートバージョンに上限があった(8.0.0未満)。
    • 最新のUbuntu環境だとデフォルトで入ってない。
    • 旧バージョンのMySQLをインストールするのは手間になりそうと思われた。

インストール手順

以下の手順でインストールします。

  1. MariaDB のインストール
  2. データーベースのセットアップ
  3. PHPのインストール
  4. PHP-FPMのインストール
  5. PHP Composerのインストール
  6. Nginxのインストール
  7. Exmentのインストール
  8. Exmentのセットアップ

MariaDB のインストール

MariaDBは以下の3ステップでインストールできます。

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

インストール時の注意ポイントは、以下の記事を参照ください。

データーベースのセットアップ

MariaDBのインストールができたら、Exment用のデータベースを作成します。ここでは、Exment のデフォルトの情報を設定しています。

$ sudo mysql -u root -p

MariaDB [(none)]> CREATE DATABASE exment_database;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> CREATE USER 'exment_user'@'127.0.0.1' IDENTIFIED BY 'secret';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL ON exment_database.* TO exment_user identified by 'secret';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> quit
Bye

ちなみに、データベースの保存先を変更したい場合は、こちらの記事を参照ください。
設定ファイルで保存場所を変更できます。

以下、実施手順

mariadb を停止する

sudo systemctl stop mariadb

datadir を変更

sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

50-server.cnf の datadir をお好きな場所に変更。デフォルトはこうなっています。

#datadir                 = /var/lib/mysql

コメントアウトされているけれど、/var/lib/mysql がデフォルトと思われる。

既存データをコピー

sudo cp -rp /var/lib/mysql /mnt/mariadb/

mariadb を起動

sudo systemctl start mariadb

PHPのインストール

sudo apt install -y ca-certificates apt-transport-https software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install -y php8.1

PHP-FPMなどのインストール

sudo apt install -y php8.1-fpm
sudo apt install -y git wget gnupg vim unzip libxml2-dev libpng-dev libzip-dev libonig-dev
sudo apt install -y php8.1-gd php8.1-dom php8.1-bcmath php8.1-mbstring php8.1-xml php8.1-zip php8.1-curl

2022/09/08 追記:以下のインストールを追加(これをやらないと PHP側からmysqlにアクセスできないと思われる)

sudo apt-get install php8.1-mysql
sudo apt install -y  zip unzip

PHP Composerのインストール

sudo apt install -y curl
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Nginxのインストール

すでにapache2がインストールされている場合、ポート番号競合など懸念されますので、ここではアンインストールしてしまいます。

sudo apt remove apache2

そして、nginxをインストール。

sudo apt install -y nginx
sudo systemctl enable nginx

/etc/nginx/nginx.conf の編集します(もしかすると不要?)。
以下をコメントアウト。

# include /etc/nginx/sites-enabled/*;

/etc/nginx/conf.d/ 配下に、以下のファイルを配置する。

sudo cp env/nginx/nginx.conf /etc/nginx/conf.d/exment.conf

Exmentのインストール

  • 2022/12/19 追記
    • Ubuntu22.0.4 だと、PHPのバージョンがデフォルトで8.2 になっているため、composerでエラーが発生する。
    • 対処方法、以下のコマンドで、PHPのバージョンをPHP8.1にすることで対応できます。
    • sudo update-alternatives --config php
export LARAVEL_VERSION="9.*"
export EXMENT_VERSION="~5.0"

sudo mkdir /var/www/exment
cd /var/www/exment
sudo COMPOSER_MEMORY_LIMIT=-1 composer create-project laravel/laravel=${LARAVEL_VERSION} .
sudo composer config --no-plugins allow-plugins.kylekatarnls/update-helper true
sudo composer require psr/simple-cache=^2.0
sudo COMPOSER_MEMORY_LIMIT=-1 composer -W require exceedone/exment=${EXMENT_VERSION}

sudo php artisan vendor:publish --provider="Exceedone\\Exment\\ExmentServiceProvider"
sudo chown -R www-data:www-data /var/www/exment \
  && sudo chmod 755 -R /var/www/exment/storage \
  && sudo chmod 755 -R /var/www/exment/bootstrap/cache

/var/www/exment/.envのDBパラメータを以下のように修正します。

DB_CONNECTION=mariadb
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=exment_database
DB_USERNAME=exment_user
DB_PASSWORD=secret

さらに、php.iniのパラメータをexment推奨値に変更します。
場所は、/etc/php/8.1/fpm/php.ini

post_max_size=20M
upload_max_filesize=20M
memory_limit=512M
max_execution_time=240
max_input_vars=3000

nginxとphp-fpmを再起動します。

sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

Exment のセットアップ

ここから先は、以下を参照ください。

その他参考情報

Mariadb のページサイズ確認方法

sudo mysql -u root -p
select @@innodb_page_size;

Mariadb のページサイズ変更方法

パラメータは、以下で変更できます。

sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
innodb_page_size=32768

ただし、途中からページサイズ変更はできません。
反映するには、再初期化が必要です。以下が参考になります。

3
2
8

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