TYPO3 CMS · 3 min read · Sep 24, 2025

AlmaLinux 9にNginxを使ってTYPO3 CMSをインストールする

TYPO3は、無料でオープンソースのエンタープライズグレードのコンテンツ管理システムです。スケーラブルなCMS、マルチサイトサポート、多言語インストール、強力なセキュリティ実装、驚異的な速度を提供し、どこでも実行できます。

TYPO3 CMSを使用すると、柔軟で信頼性の高いウェブサイトを構築できます。TYPO3 CMSは、活気あるプロフェッショナルコミュニティによって支えられています。また、TYPO3 CMSは、プラグイン可能なコンテンツ管理システムであり、適応可能で分離されたアーキテクチャを持っています。

このガイドでは、AlmaLinux 9にTYPO3 CMSをステップバイステップでインストールする方法を示します。Nginxウェブサーバー、MariaDBデータベースサーバー、PHP-FPMを使用してTYPO3 CMSをインストールします。

前提条件

進む前に、以下のものを確認してください:

  • AlmaLinux 9サーバー - この例では、ホスト名がalmalinux9のサーバーを使用します。
  • sudoルート権限を持つ非ルートユーザー。
  • サーバーのIPアドレスを指すドメイン名。

依存関係のインストール

次のステップでは、TYPO3 CMSのためのパッケージ依存関係をインストールします:

  • Nginx: ウェブサーバーとして。
  • MariaDB: データベースサーバーとして。
  • PHP-FPM: この例では、TYPO3 CMSにPHP 8.1を使用します。
  • Composer: PHPアプリケーションの依存関係管理ツール。

さあ、始めましょう。

まず、次のコマンドを実行して、EPELおよびRemiリポジトリをシステムに追加します。Remiリポジトリは、複数のPHPパッケージのバージョンと、デフォルトのappstreamリポジトリにはないいくつかの追加PHP拡張を提供します。

sudo dnf epel-release  
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

インストールを確認するためにyを入力し、ENTERを押します。

EPELリポジトリを追加中。

add epel repository

RHEL 9用のPHP Remiリポジトリを追加中。

add remi repository

次に、次のコマンドを実行して、デフォルトのPHPリポジトリモジュールをリセットし、RemiリポジトリからPHP 8.1モジュールを有効にします。

sudo dnf module reset php -y  
sudo dnf module enable php:remi-8.1 -y

enable php8.1 remi repositry

次に、以下のdnfコマンドを実行して、TYPO3 CMSのためのパッケージ依存関係をインストールします。プロンプトが表示されたら、yを入力して確認し、ENTERを押します。

sudo dnf install nginx mariadb-server composer ImageMagick php-fpm php-mysqlnd php-gd php-curl php-json php-intl php-bcmath php-zip php-apcu php-mbstring php-fileinfo php-xml php-soap

installing dependencies

依存関係がインストールされたら、以下のsystemctlコマンドを実行して、Nginx、MariaDB、PHP-FPMなどの主要サービスを開始し、有効にします。

sudo systemctl enable --now nginx mariadb php-fpm

次に、以下のコマンドを使用してサービスを確認し、すべてのサービスが実行中であることを確認します。

sudo systemctl status nginx mariadb php-fpm

サービスが実行中であれば、出力にactive (running)が表示されます。以下の例では、Nginxサービスが実行中であることを示しています。

verify services

最後に、以下のコマンドを実行して、Composerがインストールされていることを確認し、そのバージョンをチェックします。

sudo -u nginx composer -V

この記事執筆時点で、Composer v2.5.5がEPELリポジトリを介してインストールされています。

Firewalldの設定

パッケージ依存関係をインストールした後、次のステップはfirewalldを設定し、HTTPおよびHTTPSプロトコルの両方を開くことです。

以下のfirewall-cmdコマンドを実行して、HTTPおよびHTTPSサービスの両方を開きます。その後、firewalldを再読み込みして変更を適用します。

sudo firewall-cmd --add-service={http,https} --permanent  
sudo firewall-cmd --reload

次に、以下のコマンドを使用してfirewalldのオープンポートとサービスのリストを確認します。

sudo firewall-cmd --list-all

サービスセクションでは、HTTPとHTTPSの両方が有効になっていることが確認できます。

setup firewalld

MariaDBサーバーの設定

次のセクションでは、MariaDBサーバーを保護し、TYPO3 CMSインストールで使用される新しいデータベースとユーザーを作成します。

まず、mariadb-secure-installationコマンドを実行して、MariaDBインストールを保護します。

sudo mariadb-secure-installation

プロセス全体を通じて、MariaDBサーバーの設定が求められます。ステップを確認するためにYを入力します。

  • MariaDBのroot認証をunix_socketに切り替えますか? nを入力します。
  • MariaDBのrootパスワードを設定しますか? yを入力し、新しいパスワードを入力して繰り返します。
  • rootユーザーのリモートログインを無効にしますか? yを入力します。
  • デフォルトのデータベーステストを削除しますか? yを再度入力します。
  • デフォルトの匿名ユーザーを削除しますか? yを入力して確認します。
  • 変更を適用するためにテーブルの権限を再読み込みしますか? yを入力します。

MariaDBが保護されたら、以下のmariadbコマンドを使用してMariaDBにログインします。パスワードのプロンプトが表示されたら、MariaDBのrootパスワードを入力します。

sudo mariadb -u root -p

MariaDBにログインしたら、以下のクエリを実行して、新しいデータベースtypo3db、ユーザーtypo3、およびパスワードtypo3passwordを作成します。

CREATE DATABASE typo3db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
GRANT ALL PRIVILEGES ON typo3db.* to typo3@localhost IDENTIFIED BY 'typo3password';  
FLUSH PRIVILEGES;

create database and user

次に、以下のクエリを実行して、MariaDBユーザーtypo3の権限を確認し、そのユーザーがデータベースtypo3dbにアクセスできることを確認します。

SHOW GRANTS FOR typo3@localhost;

出力には、MariaDBユーザーtypo3がデータベースtypo3dbにアクセスできることが表示されるはずです。

show user privileges

MariaDBサーバーから退出するにはquitと入力し、このステップを完了します。

PHP-FPMの設定

MariaDBサーバーが設定されたら、次のステップはPHP-FPMのインストールを設定することです。PHP-FPMのインストールをNginxウェブサーバーと統合します。

まず、次のコマンドを実行して、システムのデフォルトのタイムゾーンを設定します。

sudo timedatectl set-timezone Europe/Stockholm

次に、vimエディタコマンドを使用してPHP設定/etc/php.iniを開きます。

sudo vim /etc/php.ini

date.timezoneパラメータのコメントを外し、適切なタイムゾーンに値を変更します。

date.timezone = Europe/Stockholm

次に、以下のようにいくつかのPHPパラメータを増加させ、有効にします。memory_limitパラメータは、現在のメモリに合わせて調整します。

memory_limit = 512M  
max_execution_time = 300  
max_input_vars = 2000

次に、post_max_sizeおよびupload_max_filesizeパラメータを30MBに増加させます。

post_max_size = 30M  
upload_max_filesize = 30M

ファイルを保存し、終了します。

次に、vimエディタを使用してPHP-FPMプール設定/etc/php-fpm.d/www.confを開きます。

sudo vim /etc/php-fpm.d/www.conf

ユーザーおよびグループパラメータのデフォルト値をnginxに変更します。

user = nginx  
group = nginx

ファイルを保存し、終了します。

次に、以下のコマンドを実行してPHP-FPMサービスを再起動し、変更を適用します。その後、PHP-FPMが実行中であることを確認します。

sudo systemctl restart php-fpm  
sudo systemctl status php-fpm

実行中であれば、次のような出力が得られます。

configure php-fpm

さらに、PHP-FPMが実行中であることを確認するために、PHP-FPMのデフォルトソケットファイル/run/php-fpm/www.sockをチェックすることもできます。以下のssコマンドを実行して、システム上の利用可能なソケットのリストを取得し、出力をフィルタリングしてwww.sockのみを表示します。

ss -pl | grep www.sock

PHP-FPMが実行中であれば、デフォルトのPHP-FPMソケットファイル/run/php-fpm/www.sockが利用可能であることが確認できます。

TYPO3 CMSのダウンロード

TYPO3 CMSは多くの方法でインストールできますが、このデモではComposerパッケージマネージャーを介してTYPO3 CMSをインストールします。

以下のコマンドを実行して、新しいディレクトリ/var/www/typo3を作成します。これはTYPO3 CMSインストールのターゲットディレクトリとして使用されます。

mkdir -p /var/www/typo3

次に、以下のコマンドを実行して、ディレクトリ/var/www/typo3の所有権をnginxユーザーに変更し、そのディレクトリの所有者に対して読み取りおよび書き込みアクセスを確保します。

sudo chown -R nginx:nginx /var/www/typo3  
sudo chmod u+rw /var/www/typo3

次に、/var/www/typo3ディレクトリに移動し、以下のComposerコマンドを実行してTYPO3 CMSのソースコードをダウンロードします。

cd /var/www/typo3  
sudo -u nginx composer create-project typo3/cms-base-distribution:^12 .

インストールが実行されている間、次のようなプロセスが表示されます。

download and install TYPO3 CMS

TYPO3がダウンロードされたら、以下のコマンドを実行して/var/www/typo3のファイルとディレクトリのリストを確認します。

ls -lah /var/www/typo3

次のようなファイルとディレクトリが表示されるはずです。

list files TYPO3 CMS source code

最後に、TYPO3 CMSバイナリファイルを実行して設定を開始し、いくつかの設定を求められます。

sudo -u nginx ./vendor/bin/typo3 setup

TYPO3 CMSの設定に関するいくつかの質問が表示されます。

  • データベースドライバーをmysqliに入力します。
  • データベースユーザー、パスワード、ポート、およびホストを入力します。
  • TYPO3 CMSで使用されるデータベース名を入力します。この例ではデータベース名はtypo3dbです。
  • TYPO3 CMSの新しい管理ユーザー、メール、およびパスワードを入力します。
  • プロジェクト名と基本サイトURLについては、デフォルトのままにするためにENTERを押します。

TYPO3 CMSの設定が完了すると、「おめでとうございます - TYPO3の設定が完了しました」というメッセージが表示されます。

install TYPO3 CMS via command-line

TYPO3 CMSのためのNginxサーバーブロックの設定

TYPO3 CMSをインストールして設定した後、TYPO3 CMSのためのNginxサーバーブロックを設定します。始める前に、ドメイン名がサーバーのIPアドレスを指していることを確認してください。

新しいNginxサーバーブロック設定/etc/nginx/conf.d/typo3.confをvimを使用して作成します。

sudo vim /etc/nginx/conf.d/typo3.conf

以下の設定を挿入し、server_nameパラメータのターゲットドメイン名を変更してください。

server {  
    listen       80;  
    server_name  typo3.howtoforge.local;  
  
    root         /var/www/typo3/public;  
    index index.php;  
  
    # Load configuration typo3.conf.  
    include /etc/nginx/default.d/typo3-nginx.conf;  
}

完了したら、ファイルを保存して終了します。

次に、別の設定/etc/nginx/default.d/typo3-nginx.confを作成します。以下のvimコマンドを使用します。

sudo vim /etc/nginx/default.d/typo3-nginx.conf

ファイルに以下の設定を挿入します。これはTYPO3 CMSのための主要なNginx設定です。

# リソースファイルを圧縮することで帯域幅を節約し、特に遅いインターネット接続を持つユーザーの読み込み速度を改善します。TYPO3は.jsおよび.cssファイルを圧縮できます。  
# *) $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] = 9をバックエンドに設定します。  
# *) $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] = 9をTypoScriptプロパティconfig.compressJsおよびconfig.compressCssと共に設定し、フロントエンドのJSおよびCSSファイルのGZIP圧縮を行います。  
location ~ \.js\.gzip$ {  
    add_header Content-Encoding gzip;  
    gzip off;  
    types { text/javascript gzip; }  
}  
location ~ \.css\.gzip$ {  
    add_header Content-Encoding gzip;  
    gzip off;  
    types { text/css gzip; }  
}  
  
# TYPO3 - バージョン付き静的ファイルのルール、次のように設定されます:  
# - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename']  
# - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename']  
if (!-e $request_filename) {  
    rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;  
}  
  
# TYPO3 - composerファイルへのアクセスをブロック  
location ~* composer\.(?:json|lock) {  
    deny all;  
}  
  
# TYPO3 - flexformファイルへのアクセスをブロック  
location ~* flexform[^.]*\.xml {  
    deny all;  
}  
  
# TYPO3 - 言語ファイルへのアクセスをブロック  
location ~* locallang[^.]*\.(?:xml|xlf)$ {  
    deny all;  
}  
  
# TYPO3 - 静的typoscriptファイルへのアクセスをブロック  
location ~* ext_conf_template\.txt|ext_typoscript_constants\.txt|ext_typoscript_setup\.txt {  
    deny all;  
}  
  
# TYPO3 - その他の保護されたファイルへのアクセスをブロック  
location ~* /.*\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql|sqlite)$ {  
    deny all;  
}  
  
# TYPO3 - recyclerおよび一時ディレクトリへのアクセスをブロック  
location ~ _(?:recycler|temp)_/ {  
    deny all;  
}  
  
# TYPO3 - fileadminに保存された設定ファイルへのアクセスをブロック  
location ~ fileadmin/(?:templates)/.*\.(?:txt|ts|typoscript)$ {  
    deny all;  
}  
  
# TYPO3 - ライブラリ、ソース、および一時コンパイルデータへのアクセスをブロック  
location ~ ^(?:vendor|typo3_src|typo3temp/var) {  
    deny all;  
}  
  
# TYPO3 - 保護された拡張ディレクトリへのアクセスをブロック  
location ~ (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ {  
    deny all;  
}  
  
location / {  
    try_files $uri $uri/ /index.php$is_args$args;  
}  
  
location = /typo3 {  
    rewrite ^ /typo3/;  
}  
  
location /typo3/ {  
    absolute_redirect off;  
    try_files $uri /typo3/index.php$is_args$args;  
}  
  
location ~ [^/]\.php(/|$) {  
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;  
    if (!-f $document_root$fastcgi_script_name) {  
        return 404;  
    }  
    fastcgi_buffer_size 32k;  
    fastcgi_buffers 8 16k;  
    fastcgi_connect_timeout 240s;  
    fastcgi_read_timeout 240s;  
    fastcgi_send_timeout 240s;  
  
    # これはPHP-FPMのアップストリームです - 詳細は:https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/#connecting-nginx-to-php-fpm  
    fastcgi_pass         unix:/run/php-fpm/www.sock;  
    fastcgi_index        index.php;  
    include              fastcgi.conf;  
}

完了したら、ファイルを保存して閉じます。

次に、以下のコマンドを実行して、適切なNginx設定があることを確認します。その後、Nginxサービスを再起動して変更を適用します。

sudo nginx -t  
sudo systemctl restart nginx

コマンドが実行されると、「syntax ok - test is successful」という出力が得られ、あなたのTYPO3 CMSインストールにアクセスできるようになります。

SSL/TLSでTYPO3 CMSを保護する

次のセクションでは、Letsencryptから生成されたSSL/TLS証明書でTYPO3 CMSインストールを保護します。そのためには、システムにCertbotをインストールする必要があります。

以下のdnfコマンドを実行して、CertbotとNginx用のCertbotプラグインをインストールします。インストールを確認するためにyを入力し、ENTERを押します。

sudo dnf install certbot python3-certbot-nginx

install certbot

次に、以下のコマンドを実行して、TYPO3 CMSのためにLetsencryptから新しいSSL証明書を生成します。ドメイン名とメールアドレスを変更してください。

sudo certbot --nginx --agree-tos --no-eff-email  --redirect --hsts --staple-ocsp --email [email protected] -d typo3.howtoforge.local

プロセスが順調に進むと、新しいSSL証明書が/etc/letsencrypt/live/typo3.howtoforge.localディレクトリに生成されます。また、TYPO3 CMSのためのサーバーブロック設定が自動的にSSLを有効にして構成されます。

ウェブブラウザを起動し、TYPO3 CMSインストールアドレス(例: https://typo3.howtoforge.local/)にアクセスします。TYPO3 CMSのログイン画面が表示されるはずです。

作成した管理ユーザーとパスワードを入力し、ログインをクリックします。

login to TYPO3 CMS

正しい管理ユーザーとパスワードを入力すると、次のようなTYPO3 CMS管理ダッシュボードが表示されます。

TYPO3 CMS admin dashboard

右上のメニューで情報アイコンをクリックすると、現在使用しているTYPO3 CMSインストールのソフトウェアスタックの詳細が表示されます。このデモでは、インストールされたTYPO3 CMSのバージョンはv12で、Nginxウェブサーバー、MariaDBデータベースサーバー、PHP-FPM 8.1が使用されています。

typo3 cms installation info

結論

すべて準備が整いました!あなたは、MariaDBデータベースサーバー、PHP-FPM、Nginxウェブサーバーを使用してAlmaLinux 9にTYPO3 CMSをインストールしました。また、LetsencryptからのSSL/TLS証明書を介してデプロイを保護しました。このことを考慮に入れて、TYPO3 CMSを使用して新しいサイトを作成できます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。