インストール - NginX(SUSE)

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
2022年2月18日 (金) 11:28時点におけるWiki (トーク | 投稿記録)による版 (→‎NginXのインストール方法)
ナビゲーションに移動 検索に移動

NginXのインストール方法

パッケージ管理システムからインストール

まず、システムの更新を行う。

sudo zypper update


次に、NginXをインストールする。
NginXは、CentOSやSUSEの公式リポジトリからインストールできる。
ただし、常に最新バージョンが提供されるとは限らない。

sudo zypper install nginx


NginXサービスを自動起動する。

sudo systemctl enable nginx


NginXを開始する。

sudo systemctl start nginx


NginXのステータスを確認する場合は、次のコマンドを実行する。

sudo sytemctl status nginx


== ソースコードからインストール

NginXのビルドに必要なライブラリをインストールする。

sudo zypper install libxslt-devel pcre2-devel gd-devel


OpenSSLの公式Webサイトにアクセスして、OpenSSL(1.X.Y)のソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf openssl-<バージョン>


NginXの公式Webサイトにアクセスして、NginXのソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf nginx-<バージョン>.tar.xz
cd nginx-<バージョン>


NginXをビルドおよびインストールする。
NginXのビルドにおいて、ビルドディレクトリを作成すると失敗することに注意する。

./configure --prefix=/<NginXのインストールディレクトリ>/Nginx \
--sbin-path=/<NginXのインストールディレクトリ>/nginx \
--conf-path=/<NginXのインストールディレクトリ>/nginx.conf \
--pid-path=/<NginXのインストールディレクトリ>/nginx.pid \
--with-threads --with-file-aio --with-pcre --with-openssl=<上記でダウンロードおよび解凍したOpenSSLのソースコードのトップディレクトリ> \
--with-http_v2_module --with-http_ssl_module --with-http_addition_module \
--with-http_xslt_module --with-http_xslt_module=dynamic \
--with-http_image_filter_module --with-http_image_filter_module=dynamic --with-http_dav_module --with-http_mp4_module --with-http_gunzip_module \
--with-http_auth_request_module --with-http_secure_link_module --with-http_stub_status_module --with-http_sub_module \
--with-http_perl_module --with-http_perl_module=dynamic --with-perl_modules_path=/<NginXのインストールディレクトリ>/Perl \
--with-mail --with-mail=dynamic --with-mail_ssl_module \
--with-cc=/usr/bin/gcc --with-cpp=/usr/bin/g++


NginXを開始する場合、以下のコマンドを実行する。

cd <NginXのインストールディレクトリ>
sudo ./nginx


NginXを停止する場合、以下のコマンドを実行する。

# NginXのプロセスIDを確認する
ps aux | grep -i nginx

# NginXを停止する
sudo kill <プロセスID 1> <プロセスID 2>



ファイアウォールの設定

次に、ファイアウォール設定にいくつかの変更を加えて、httpサービスを許可する。

sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload



Nginxのテスト

Nginxが正しく実行されていることを確認する。
これを行うには、htmlファイルを作成し、それをNginxのルートディレクトリに配置する必要がある。
テキストエディタで以下のファイルを作成する。

 sudo nano /srv/www/htdocs/index.html
 
 <html>
 <body>
 <h1>Welcome to osradar</h1>
 </body>
 </html>
 


最後に、Webブラウザを開き、http://localhost/ にアクセスして、これが表示されるか確認する。


NginX上でPHP7.4(PHP-FPM)の有効化

PHPをNginX上で動作するようにするには、PHP-FPMにいくつかの追加設定を行う必要がある。

まず、PHP-FPMの構成ディレクトリ(/etc/php7/fpm)にあるphp-fpm.confファイルのerror_logキーを以下のように編集する。

sudo cp /etc/php7/fpm/php-fpm.conf.default /etc/php7/fpm/php-fpm.conf


sudo vi /etc/php7/fpm/php-fpm.conf

# /etc/php7/fpm/php-fpm.confファイル
error_log = /var/log/php-fpm.log


次に、www.conf構成ファイルで構成済みプールの正しい設定を定義する。

sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf


sudo vi /etc/php7/fpm/php-fpm.d/www.conf

# /etc/php7/fpm/php-fpm.d/www.confファイル
user = nginx
group = nginx


次に、/etc/php7/cli/php.iniファイルを作成・編集する。

sudo vi /etc/php7/cli/php.ini

# /etc/php7/cli/php.iniファイル
cgi.fix_pathinfo=0


----- ここは不要かも? -----
次に、/etc/php7/fpm/php.iniファイルを作成・編集する。
php.iniファイルをコピーして、php.iniファイルのcgi.fixキーを編集する。

sudo cp /etc/php7/cli/php.ini /etc/php7/fpm/


sudo vi /etc/php7/fpm/php.ini

# /etc/php7/fpm/php.iniファイル
cgi.fix_pathinfo=0


そして、/etc/php7/fpm/php.iniファイルをPHP構成ディレクトリにコピーする。

sudo cp /etc/php7/fpm/php.ini /etc/php7/conf.d/

----- ここまで -----

次に、NginXを構成するため、/etc/nginx/nginx.confファイルを編集する。
/etc/nginx/nginx.confファイルの48行目に以下の内容を追記する。

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org


sudo vi /etc/nginx/nginx.conf

# /etc/nginx/nginx.confファイル
location /
{
   root /srv/www/htdocs/;
   index index.php index.html index.htm ; 
}

# このセクションは、127.0.0.1:9000でlistenしているFastCGIサーバにPHPスクリプトを渡すために使用される
location ~ \.php$
{
   root           /srv/www/htdocs/;
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   include        fastcgi_params;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   # proxy_pass   http://127.0.0.1;
}


その後、php-fpmサービスを有効にして開始する。

sudo systemctl enable php-fpm
sudo systemctl restart php-fpm
sudo systemctl restart nginx


最後に、Webブラウザを起動して、http://localhost/index.php にアクセスして、正常に表示されるか確認する。


Xdebugの設定

PHP-FPMの初期設定では、9000番ポートを使用しているので、Xdebugのデバッグポートと競合が発生する。
Xdebugのデバッグポートを以下のように変更する。

sudo vi /etc/php7/conf.d/xdebug.ini

# /etc/php7/conf.d/xdebug.iniファイル
xdebug.remote_port=9009


PHP-FPMとNginXを再起動する。

sudo systemctl restart php-fpm
sudo systemctl restart nginx