openSUSEでLEMP (Nginx、MariaDB、PHP) 環境を構築する
openSUSEはデスクトップでもサーバーでも使えるオールグラウンドなLinuxディストリビューションなので、もちろんWebサーバー用途にも適しています。今回はこのopenSUSEでLEMPサーバー (Linux, Nginx, MariaDB, PHP-FPM) をサクッと構築してみます。ちなみに僕の自宅鯖のOSは全てopenSUSEです!
作業はopenSUSE Tumbleweed(ローリングリリース版)で行っています。
1. 各種インストール
以下のコマンドを実行して各種パッケージをインストールします。
$ sudo zypper install nginx mariadb php5-fpm
なお、openSUSE 13.2などの通常リリース版では(たぶん)今のところNginxのパッケージがない(もしくは古い)ので、以下のサイトから1クリックインストールします。
https://software.opensuse.org/package/nginx
ページから使用中のOSバージョンを選択し、「不安定版を表示する」をクリックして確認した後、適当に(server:httpあたり)の1 Click Installボタンをクリックします。あとはYaSTのウィザードに従ってNginxのインストールを完了させればOKです。
2. Nginxの設定
設定ファイルを開きます。
$ sudo vim /etc/nginx/nginx.conf
バーチャルホストの設定。以下の部分のコードを編集します。
まず”location /”の部分のindexにindex.phpを追加:
location / { root /srv/www/htdocs/; #index index.html index.htm; 変更前 index index.php index.html index.htm # 変更後 }
つぎに、”location ~ \.php$”の部分のコメントアウトを外して、4行目の項目”fastcgi_param”を変更:
location ~ \.php$ { root /srv/www/htdocs/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
編集したら、保存して終了します。エラーがないか確認し、nginxを起動します。
$ sudo nginx -t
$ sudo systemctl start nginx
ディレクトリ「/srv/www/htdocs/」に適当なHTMLファイルを設置し、http://localhost/で表示できるか確認してみましょう。
3. PHPの設定
用意されているデフォルト設定ファイルをコピー(リネーム)します。
$ sudo cp /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf $ sudo cp /etc/php5/cli/php.ini /etc/php5/fpm/
php-fpm.confを開いてユーザー・グループの設定を変更します。
$ sudo vim /etc/php5/fpm/php-fpm.conf
だいたい149、150行目ぐらいにあります。
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = nginx ;変更 group = nginx ;変更
変更したら、保存して終了します。そして起動:
$ sudo systemctl start php-fpm
ついでにNginxを再起動:
$ sudo systemctl restart nginx
4. MariaDBの設定
MariaDBを起動します。
$ sudo systemctl start mysql
以下のコマンドで初期設定を行うことが出来ます。
$ sudo mysql_secure_installation
5. テスト
お馴染みのphpinfoを確認してみます。
$ sudo vim /srv/www/htdocs/phpinfo.php
以下のコードを追加:
<?php phpinfo(); ?>
追加したら保存し、http://localhost/phpinfo.phpを開いてみます。
YES!!