SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール

今回は SUSE Linux Enterprise Server 12 (SLES sp2) で PHP スクリプトを HTTP サービス を動かす方法を説明します。 SLES11 までは Web LAMP をインストールするだけで HTTP サーバーで PHP スクリプトを動かす事ができたのですが、 SLES 12 以降はちょっと面倒になりました。マニュアルにも記載がなかったり、誤記があるようなので、細かい所のご指摘があればコメント下さい。なお、この記事は参考程度に見てもらえればありがたいです。

公式には評価版ではなく、E-Media でインストールしたうえでアクティベーションしてサポートを受けることをお勧めします。

SLES15はこちらをご参考ください。
SUSE linux 15 (SLES15) で HTTPサーバー と php7を動かす

openSUSE Leap 15 はこちらをご参考ください。
openSUSE Leap 15, YaSTで作る Web LAMP サーバー

今回は第一言語 English の CUI 版 yast を使って作業をしてみました。 X が使える環境であれば yast2 を利用しても、日本語第一言語でもほぼ同じ操作です。

SUSE Linux Enterprise Server 12 SP3 管理ガイド

31.4 モジュールのインストール、有効化、および設定


SLES11 はこちらを参考にしてください。

Apache のインストールと設定まで30秒、SUSE Linux はこんなに簡単

SUSE Linux 15 YaSTの基本

- はじまりはじまり -

まずは YaST から

# yast
> Software > Software Management

を開きます。


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12351213.jpg


ここで Web and LAMP をチェックして、まとめてインストールします。

Filter > をトグルして "Patterns"


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12355694.jpg

"Web and LAMP server" をスペースキーでチェック > Acceptします。


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12361986.jpg

依存性のあるパッケージを確認して”OK”


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12363810.jpg


インストールが始まります。> Finish

SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12365531.jpg

HTTPサーバーの細かな設定をします。

# yast
> Network Servece > HTTP server


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12390355.jpg

Wizard に従い”Next”

PHP5 Scripting を Enable にするため、選んで、スペースキーでチェック(敗因)


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12401312.jpg

※ 敗因 SLES11 までは、このチェックだけで apache2_mod_php5 がインストールできたのですが、SLES12 より PHP5 は Evaluation DVDから削除されたようです。マニュアルも、この指示通りでしたが動きません。評価版ではなく、アクティベーションした場合はまた違う動きがあるかも知れませんね。かと言って、開発途中でアクティベーションするのも何だか勿体ない。

詳しい理由は判らないのですが、PHP の様々な不具合により、サポート対象となっていないようです。php5 は openSUSE のリポジトリからインストールできるので、これは後述します。

オプションの確認、ここでは特に何も変更はありません。


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12403854.jpg

Virtual Host の設定、特にやることもないので、空欄のまま Next


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12411300.jpg

Start Apache2 server When Booting をスペースキーでチェック


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12413566.jpg

Apache2_mod_PHP5 が追加でインストール(敗因 - 実態は何も起こりません)


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12415786.jpg

一応インストールされた様に見えますが、実は YaST > Software Management で "Search" しても、php5 はリストされません。

ブラウザから、デフォルト index.html を開きます。

sles12:~ #
sles12:~ # w3m 192.168.1.199
sles12:~ #

SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12422273.jpg

apache は動いているようです。

ちなみに、GUI 版 yast2 を使ってapache HTTP サーバーをインストールする場合、こちらのビデオをご参考ください。数クリックで約一分で作業が終了します。




- PHP5 のインストール -

apache2_mod-php5 は openSUSE のソフトウェアページからダウンロード、インストールします。

FireFox ブラウザから


より PHP5 を "package Search"


を開き SLE12 > "PHP5.5.3.xx を "1 Click Install します。


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12430720.jpg

SUSE SL"12 を開き home:onzi をYaST 1-Click Install > OK

リポジトリの追加


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12434363.jpg

2017/9 現在 SUSE:SLES-12:GA/standard のレポジトリは実体がなく、エラーになるのでスキップして構いません。

インストールされるソフトウェアパッケージを確認して


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12450236.jpg

一応警告を確認して OK  (2017/9 現在、他にも途中エラーが出ますが無視しました)

SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12452714.jpg


GNUpg_Key を "Trust" します。

SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12455304.jpg

リポジトリが登録されたので YaST Software Management > Search > "apache" を検索し apache2_mod_php5 をスペースキーでチェック、インストールします。


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12462718.jpg

依存性のあるパッケージを確認して OK


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12464583.jpg
Finish

- apatche のサーバーモジュールの有効化 -

# yast
> Network Service > HTTP Server から "Server Modules" タブを開いて "php5" を選び "Toggle Status"Enabled に変更します。

SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12470707.jpg


※ ここまでは E Media でも同じなのですが、E Media では Enable にはなりませんでした。結局 openSUSE のリポジトリからインストールして apach2_mod_php5 が結果OKという事になります。


簡単な /srv/www/htdocs/index.php を作成してみます。


SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12472567.jpg

- ディレクトリインデックスの修正 -

/etc/apache2/httpd.conf にデフォルトファイルとして index.phpindex.htm を追加します。

sles12:~ # vi /etc/apache2/httpd.conf

: 編集中

sles12:~ # cat /etc/apache2/httpd.conf | grep DirectoryIndex
DirectoryIndex index.php index.htm index.html index.html.var
sles12:~ #

これで、ブラウザから URL でディレクトリを指定すると、index.php > index.htm > index.html > index.html.var の順で、ディレクトリのデフォルトページを表示します。HTTP サーバー全体を PHP で記述する場合、これで、ディレクトリ指定だけで index.php が最初に開かれる事になります。また html ではなく index.htm を記述したので、よくある Windows 用のオーガナイザーで作られる、htm 3文字拡張子にも対応できます。
apache2 を再起動して、デフォルト index.php が優先して、開けるか確認してみます。

sles12:~ # rcapache2 restart
sles12:~ # w3m 192.168.1.199
sles12:~ #

SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12474880.jpg


PHP スクリプトが実行されました。

- あとがき -

SLES11 の場合は、このあたりは何の悩みもなくできましたが、SLES12 以降はかなり制限が厳しくなっています。理由は何となく想像するしかないのですが、マニュアル、ドキュメントの不備はちょっと不満があります。なお、MySQL はインストールされず mariadb がインストールされます。

SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール_a0056607_12480785.jpg

ちょっと SLES11 とは手順が違い、結局 openSUSE のリポジトリからインストールする結果になってしまいました。実際には、評価版である程度 Web サイトのデザインを作って、顧客から発注を受けたところでアクティベーションする事が多いと思います。

実際に MySQL も mariaDB に置き換わっていますし、このあたりは、SLES12 の新しい方針を示すものでしょう。従来の PHP+MySQL の環境で作業をする場合は SLES11 の方が良いかも知れません。新しい技術を身に着けたい場合はやはり SLES12 を選ぶことになります。

サブスクリプション購入はこちら


-Keyword-

SUSE Linux、SLES12, Apache HTTP サーバー PHP, PHP5, スクリプト、インストール, 有効化, 無効化, enable, disable, SLES11との違い











by islandcenter | 2017-09-25 13:23 | SUSE | Comments(0)