サーバー設定 · 1 min read · Jan 01, 2026

OpenSUSE 12.1でApache2とPHP5-FPMを使用する

OpenSUSE 12.1でApache2とPHP5-FPMを使用する

バージョン 1.0
著者: Falko Timme
Twitterでフォローしてください

このチュートリアルでは、OpenSUSE 12.1サーバーにPHP5(PHP-FPMを通じて)とMySQLサポートを持つApache2ウェブサーバーをインストールする方法を示します。PHP-FPM(FastCGIプロセスマネージャー)は、あらゆる規模のサイト、特に忙しいサイトに役立つ追加機能を備えた代替PHP FastCGI実装です。

これがあなたにとって機能する保証はありません!

1 前提条件

このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.0.100を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。

2 追加リポジトリの有効化

後でmod_fastcgiをインストールする必要がありますが、これはデフォルトでは有効になっていないリポジトリにあります。次のようにして有効にできます:

zypper --gpg-auto-import-keys addrepo --name "Apache HTTPサーバーのサードパーティモジュール (Apache_openSUSE_12.1)" http://download.opensuse.org/repositories/Apache:/Modules/Apache_openSUSE_12.1/ apache-third-party-12.1

3 MySQL 5のインストール

MySQLをインストールするには、次のようにします:

yast2 -i mysql mysql-client mysql-community-server

次に、MySQLのシステム起動リンクを作成し(システムが起動するたびにMySQLが自動的に起動するように)、MySQLサーバーを起動します:

systemctl enable mysql.service   
systemctl start mysql.service

MySQLインストールを保護するには、次を実行します:

mysql_secure_installation

これでいくつかの質問が表示されます:

server1:~ # mysql_secure_installation

NOTE: このスクリプトのすべての部分を実行することは、すべてのMySQLサーバーにおいて推奨されます! 各ステップを注意深くお読みください!

MySQLにログインして保護するためには、rootユーザーの現在のパスワードが必要です。 MySQLをインストールしたばかりで、まだrootパスワードを設定していない場合、パスワードは空白になりますので、ここではそのままEnterを押してください。

rootの現在のパスワードを入力してください(なしの場合はEnter): <– ENTER
OK、パスワードが正常に使用されました、次に進みます…

rootパスワードを設定することで、適切な認証なしに誰もMySQLのrootユーザーにログインできないようにします。

rootパスワードを設定しますか? [Y/n] <– Y
新しいパスワード: <– 希望するMySQL rootパスワードを入力
新しいパスワードを再入力してください: <– そのパスワードを確認
パスワードが正常に更新されました!
特権テーブルを再読み込み中..
… 成功!

デフォルトでは、MySQLインストールには匿名ユーザーがあり、誰でもユーザーアカウントを作成せずにMySQLにログインできます。 これはテスト用にのみ意図されており、インストールを少しスムーズにするためのものです。 本番環境に移行する前に、これらを削除する必要があります。

匿名ユーザーを削除しますか? [Y/n] <– Y
… 成功!

通常、rootは「localhost」からのみ接続を許可されるべきです。 これにより、誰かがネットワークからrootパスワードを推測できないようにします。

リモートからのrootログインを禁止しますか? [Y/n] <– Y
… 成功!

デフォルトでは、MySQLには「test」という名前のデータベースがあり、誰でもアクセスできます。 これはテスト用にのみ意図されており、本番環境に移行する前に削除する必要があります。

テストデータベースとそのアクセスを削除しますか? [Y/n] <– Y

  • テストデータベースを削除中…
    … 成功!
  • テストデータベースの特権を削除中…
    … 成功!

特権テーブルを再読み込みすることで、これまでに行ったすべての変更が即座に反映されることを保証します。

特権テーブルを今すぐ再読み込みしますか? [Y/n] <– Y
… 成功!

クリーンアップ中…

すべて完了! 上記のすべてのステップを完了した場合、あなたのMySQLインストールは今や安全であるはずです。

MySQLをご利用いただきありがとうございます!

server1:~ #

これでMySQLの設定が保護されているはずです。

4 Apache2のインストール

Apache2はOpenSUSEパッケージとして利用可能ですので、次のようにインストールできます:

yast2 -i apache2

次に、システムを設定してApacheを起動時に開始するようにします…

systemctl enable apache2.service

… そしてApacheを起動します:

systemctl start apache2.service

次に、ブラウザをhttp://192.168.0.100に向けると、Apache2のプレースホルダーページが表示されるはずです(ドキュメントルートディレクトリにインデックスファイル(例:index.html)がないため、403エラーが発生しますが、心配しないでください):

ApacheのデフォルトのドキュメントルートはOpenSUSEでは/srv/www/htdocs/であり、設定ファイルは/etc/apache2/httpd.confです。追加の設定は/etc/apache2/conf.d/ディレクトリに保存されています。

5 PHP5のインストール

PHP-FPMとApacheのmod_fastcgiモジュールを通じてApache2でPHP5を動作させることができます。次のようにインストールします:

yast -i apache2-mod_fastcgi php5-fpm

PHP-FPMを開始する前に、/etc/php5/fpm/php-fpm.conf.defaultを/etc/php5/fpm/php-fpm.confに名前変更します:

mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf

PHPのセッションディレクトリの権限を変更します:

chmod 1733 /var/lib/php5

次に、/etc/php5/fpm/php-fpm.confを開きます…

vi /etc/php5/fpm/php-fpm.conf

… error_logを/var/log/php-fpm.logに変更し、pm.min_spare_serversとpm.max_spare_serversのコメントを外します:

| [...] error_log = /var/log/php-fpm.log [...] pm.min_spare_servers = 5 [...] pm.max_spare_servers = 35 [...] |

次に、php-fpmのシステム起動リンクを作成し、起動します:

systemctl enable php-fpm.service   
systemctl start php-fpm.service

PHP-FPMはポート9000でFastCGIサーバーを実行するデーモンプロセスです。次の出力で確認できます:

netstat -tapn
server1:~ # netstat -tapn  
アクティブなインターネット接続(サーバーおよび確立されたもの)  
プロトコル 受信キュー 送信キュー ローカルアドレス 外部アドレス 状態 PID/プログラム名  
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2329/nginx  
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1204/sshd  
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2511/php-fpm.conf)  
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2059/mysqld  
tcp 0 0 192.168.0.100:22 192.168.0.199:1632 ESTABLISHED 1284/0  
tcp 0 0 :::22 :::* LISTEN 1204/sshd  
server1:~ #

次に、次のApacheモジュールを有効にします…

a2enmod actions  
a2enmod fastcgi  
a2enmod alias

… mod_php5を無効にします…

a2dismod php5

… そしてApacheを再起動します:

systemctl restart apache2.service
Share: X/Twitter LinkedIn

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

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