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リポジトリを追加中。

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

次に、次のコマンドを実行して、デフォルトのPHPリポジトリモジュールをリセットし、RemiリポジトリからPHP 8.1モジュールを有効にします。
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.1 -y
次に、以下の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
依存関係がインストールされたら、以下のsystemctlコマンドを実行して、Nginx、MariaDB、PHP-FPMなどの主要サービスを開始し、有効にします。
sudo systemctl enable --now nginx mariadb php-fpm次に、以下のコマンドを使用してサービスを確認し、すべてのサービスが実行中であることを確認します。
sudo systemctl status nginx mariadb php-fpmサービスが実行中であれば、出力にactive (running)が表示されます。以下の例では、Nginxサービスが実行中であることを示しています。

最後に、以下のコマンドを実行して、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の両方が有効になっていることが確認できます。

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 -pMariaDBにログインしたら、以下のクエリを実行して、新しいデータベース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;
次に、以下のクエリを実行して、MariaDBユーザーtypo3の権限を確認し、そのユーザーがデータベースtypo3dbにアクセスできることを確認します。
SHOW GRANTS FOR typo3@localhost;出力には、MariaDBユーザーtypo3がデータベースtypo3dbにアクセスできることが表示されるはずです。

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.inidate.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実行中であれば、次のような出力が得られます。

さらに、PHP-FPMが実行中であることを確認するために、PHP-FPMのデフォルトソケットファイル/run/php-fpm/www.sockをチェックすることもできます。以下のssコマンドを実行して、システム上の利用可能なソケットのリストを取得し、出力をフィルタリングしてwww.sockのみを表示します。
ss -pl | grep www.sockPHP-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 .インストールが実行されている間、次のようなプロセスが表示されます。

TYPO3がダウンロードされたら、以下のコマンドを実行して/var/www/typo3のファイルとディレクトリのリストを確認します。
ls -lah /var/www/typo3次のようなファイルとディレクトリが表示されるはずです。

最後に、TYPO3 CMSバイナリファイルを実行して設定を開始し、いくつかの設定を求められます。
sudo -u nginx ./vendor/bin/typo3 setupTYPO3 CMSの設定に関するいくつかの質問が表示されます。
- データベースドライバーをmysqliに入力します。
- データベースユーザー、パスワード、ポート、およびホストを入力します。
- TYPO3 CMSで使用されるデータベース名を入力します。この例ではデータベース名はtypo3dbです。
- TYPO3 CMSの新しい管理ユーザー、メール、およびパスワードを入力します。
- プロジェクト名と基本サイトURLについては、デフォルトのままにするためにENTERを押します。
TYPO3 CMSの設定が完了すると、「おめでとうございます - TYPO3の設定が完了しました」というメッセージが表示されます。

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
次に、以下のコマンドを実行して、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のログイン画面が表示されるはずです。
作成した管理ユーザーとパスワードを入力し、ログインをクリックします。

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

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

結論
すべて準備が整いました!あなたは、MariaDBデータベースサーバー、PHP-FPM、Nginxウェブサーバーを使用してAlmaLinux 9にTYPO3 CMSをインストールしました。また、LetsencryptからのSSL/TLS証明書を介してデプロイを保護しました。このことを考慮に入れて、TYPO3 CMSを使用して新しいサイトを作成できます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。