【Stream9ユーザーが送る】httpdはどこ?Ubuntuでのパッケージ名・サービス名の「表記揺れ」に戸惑った話

この記事は約10分で読めます。
この記事が役立ったらブックマーク! あとで読み返したり、環境構築時のリファレンスに活用できます
B! はてなブックマークに追加

長年CentOS Stream 9(RHEL系)でサーバーを触ってきた管理人ですが、新サーバーへブログを移転するにあたり、WordPressの構築・管理ツールとして定評のある「WordOps」を導入しようとしたところ、これがRed Hat系(CentOSなど)に非対応で、Debian系/Ubuntuしか使えないことが判明。
背に腹は代えられないということで、今回、涙をのんで初のUbuntuサーバーを構築するに至りました。
結論から言うと、「パッケージ名もサービス名も絶妙に違って、手が勝手に打つコマンドが全滅する」ので、CentOS感覚で操作すると一瞬でエラーの山になります。

今回はその違いを交えながら、CentOS Stream 9ユーザーがUbuntuへ移行した際に最初に食らう「ミドルウェア・パッケージ名の表記揺れ」と対処法についてメモしておきます。

💡 なぜ同じオープンソースなのに名前が違うのか?

CentOS(RHEL系)もUbuntu(Debian系)も、裏で動いているWebサーバー(ApacheやNginx)やデータベース(MariaDB)自体はまったく同じオープンソースソフトウェアです。
しかし、「それを管理するパッケージの命名規則(お作法)」がディストリビューションの文化によって大きく異なります。

  • RHEL系(CentOSなど): 伝統的なデーモン名(httpd など)や簡潔さを重視する傾向
  • Debian系(Ubuntuなど): ソフト名そのものやバージョン指定(apache2, php8.2 など)を名前に含める傾向

この思想の違いを知らないままCentOS時代の癖でコマンドを叩くと、一向にソフトがインストールできなかったり、サービスが起動しなかったりして一瞬で迷子になります。

🔍 主要ミドルウェアの「表記揺れ」対比表

まずは、現場で一番よく使う主要ミドルウェアのコマンドとパッケージ名の違いを一覧にまとめました。

ソフトウェア CentOS Stream 9
(RHEL)
Ubuntu
(Debian)
主な違い・注意点
Webサーバーhttpdapache2サービス名もパッケージ名も完全別名
MariaDBmariadb /
mariadb-server
mariadb-serverUbuntuでは -server をつけないとクライアントのみになる
PHPphpphp または php8.xUbuntuはリポジトリ内に複数バージョンが並ぶ
Croncroniecronパッケージ名が微妙に異なる
SSHopenssh-serveropenssh-serverここは同じ(サービス名も ssh / sshd 両対応)

1. Webサーバー:httpd と apache2 の決定的な違い

CentOS(RHEL系)ユーザーが一番最初に「ファッ!?」となるのがApacheです。
CentOS時代、Webサーバーを起動したりインストールしたりするときは迷わずこう打っていました。

Bash
# CentOS (RHEL系)
# For CentOS / RHEL-based systems
sudo dnf install httpd
sudo systemctl start httpd

しかし、Ubuntuで同じ感覚で sudo apt install httpd と打つと、「Unable to locate package httpd(そんなパッケージありません)」と無慈悲に怒られます。
Ubuntu(Debian系)では、パッケージ名もサービス名も apache2 に統一されています。

Bash
# Ubuntu (Debian系)
# For Ubuntu / Debian-based systems
sudo apt install apache2
sudo systemctl start apache2

💡 ちなみにNginxは?
幸いにもNginxはCentOSもUbuntuもパッケージ名・サービス名ともに nginx で共通です。ここだけはCentOSユーザーの精神安寧ポイントですね。

2. データベース:-server を付け忘れるトラップ

MariaDB(MySQL)のインストール時にも、地味なトラップが潜んでいます。
CentOS Stream 9では、dnf install mariadb と打てば、大抵の場合はサーバー本体(mariadb-server)まで気を利かせて入れてくれるか、あるいは素直に mariadb-server を指定して入れます。

しかしUbuntuで軽率に以下のように打ってしまうと…

Bash
# Ubuntuでやりがちなミス(Common Mistakes When Using Ubuntu)
sudo apt install mariadb

なんと「クライアントツール(操作用コマンド)だけ」がインストールされ、データベースサーバー本体が入らないという謎事態に陥ります。

Ubuntuでデータベースサーバーを建てたいときは、必ず -server を明記する必要があります。

Bash
# Ubuntuでの正しい指定(The Correct Configuration on Ubuntu)
sudo apt install mariadb-server
sudo systemctl start mariadb

ちなみにサービス名(systemctl で指定する名前)は、Ubuntuでも mariadb または mysql のどちらでも通るようエイリアス(別名)が貼られていることが多いですが、混乱を防ぐためにも mariadb で統一しておくのが無難です。

3. PHP:バージョン明記文化とモジュールの名前

WordPressを動かす上で欠かせないPHPですが、ここもCentOSとUbuntuで大きく文化が異なります。
CentOS Stream 9の場合、リポジトリ(AppStream)で管理されているデフォルトのPHPを入れるか、Remiリポジトリを追加して dnf install php でサクッと入れるのが一般的でした。

一方、Ubuntuではリポジトリ内に php8.1php8.2php8.3 といったバージョン付きのパッケージが最初からずらりと並んでいます

Bash
# パッケージ名を指定せずに入れると、Ubuntuのデフォルトバージョンが入る
sudo apt install php

# 特定のバージョンを指定してインストールする(WordOpsなどを使う場合によく見る)
sudo apt install php8.2 php8.2-fpm php8.2-mysql
Bash
# Installing without specifying a version will install the default Ubuntu version
sudo apt install php

# Install a specific version (Commonly seen when using tools like WordOps)
sudo apt install php8.2 php8.2-fpm php8.2-mysql

また、拡張モジュールの名前も微妙に異なります。

  • MySQL連携: CentOSは php-mysqlnd ➔ Ubuntuは php-mysql(または php8.x-mysql
  • マルチバイト文字列: CentOSは php-mbstring ➔ Ubuntuは php-mbstring(ここは同じ)
  • 画像処理: CentOSは php-gd ➔ Ubuntuは php-gd(ここも同じ)

単体で入れる分には困りませんが、CentOS時代に作った 「PHP環境構築用シェルスクリプト」 などをそのままUbuntuで流用しようとすると、パッケージ名が見つからずにコケまくるので注意が必要です。

4. systemctl で呼ぶときの「エイリアス」に甘えるな

Ubuntuの優しいところ(そして紛らわしいところ)は、一部のサービス名にCentOSっぽい名前の「エイリアス(別名)」が親切に貼られている点です。
例えばSSHのサービス名ですが、本来Ubuntu(Debian系)での正式名称は ssh です。しかし、CentOSユーザーが間違えて sshd と打っても、裏で気を利かせて動いてくれます。

Bash
# Ubuntuではどちらを打っても動いてしまう
sudo systemctl status ssh   # 正式名称
sudo systemctl status sshd  # エイリアス(気を利かせてくれる)
Bash
# On Ubuntu, both commands work
sudo systemctl status ssh   # Formal service name
sudo systemctl status sshd  # Alias (handled automatically for convenience)

「なんだ、じゃあCentOSと同じ感覚でいいじゃん!」と油断していると、httpd(Apache)のようにエイリアスが一切存在せず「そんなサービスはありません」と拒否されるミドルウェアで一気に叩き落とされます。
Ubuntuに移ったからには、甘えを捨てて「Debian系の正式名称(apache2ssh 等)」で覚えるのが、後々のシェルスクリプト作成やWordOps運用で迷子にならないコツです。

📝 まとめ:手が勝手に動く「CentOSの癖」をアプデしよう!

今回は、CentOS Stream 9からUbuntuへ移行した管理人が最初に直面した「ミドルウェア・パッケージ名の表記揺れ」について解説しました。

  • Apacheは httpd ではなく apache2
  • MariaDBは必ず -server を明記する
  • PHPはバージョン指定(php8.x)の書き方に慣れておく
  • SSHなどはエイリアスで動いても、正式名称(ssh)を意識する

長年CentOSを触ってきた身からすると、最初は sudo apt install httpd と打って「あ、違った…」となるのを数回繰り返します(笑)。
しかし、この「名前のルールの違い」さえ頭に入れておけば、パッケージのインストールで躓くことは一気に減ります。

次回は、さらにCentOSユーザーを困惑させる『a2ensiteって何?Ubuntu(Debian系)のWebサーバー設定構造に食らったカルチャーショック』についてメモしていきます。お楽しみに!

コメント

タイトルとURLをコピーしました