apache 2からnginxウェブサーバへ移動する


最近仕事で私たちのdev、ステージングと生産のWebサーバをapache 2からnginxに移動しなければなりませんでした.この動きの理由は、当社の残りの部分では、すべてのバックエンドサービスのNGinxを使用しているが、いくつかの理由でWebサイトが設定されたときにコンサルタントはApache 2を設定しています.これが経営上の問題となった.この記事では、プロセスを通してステップバイステップに行きます.私は、すべてのスクリーンショットのために放浪箱を使用しています、しかし、私がしたステップは実際のサーバーのために同じでした.

サーバ


私のテストサーバのためにvagrant and ubuntu/bionic64 . このサーバーではapache2.4 , php7.2 and mysql5.7 基礎LAMP スタック.私はどのように移動するLEMP nginxでapacheを置き換えるスタック.
このサーバーにはWordPress 5.2.4が走っているWordPressサイトがあります.NGNXとPHP 7.3で動くWordPressサイトを見ることができるならば、我々は我々のゴールを達成しました.ああ、私たちの束がありますenvvars nginxのインストールに移さなければならないApache 2のインスタンスを設定します.

nginxのインストール


かなりまっすぐ前方.更新をチェックして起動します.
sudo apt update
sudo apt upgrade

実際にnginxをインストールします.
sudo apt install nginx
NginXは現在インストールされていますが、実行されていません.Apache 2はすでにインストールされており、システム上で構成されています.80 これは、衝突を避けるために、NGANXを別のポートに走らせることで、すべてがうまく動いていることをテストするべきです.ポートを選択8080 .

ポート8080でnginxを設定します


NGANX(Apacheと同じように)が設定されているデフォルトのウェブサイトがあります.設定を見ることができます.
sudo vim /etc/nginx/sites-available/default
これはファイルを開くべきです.
< div >
オンラインで22 and 23 我々は変更するつもりです80 to 8080 .

<> P >
クラスをハイライト表示する
listen 8080 default_server;
listen [::]:8080 default_server;
< div >
< tag > nginxサービスを開始する前に、すぐに設定をテストしましょう.br/>
<> P >
クラスをハイライト表示する
sudo nginx -t
< div >
すべてがうまくいけば、少し書きましょうHTML ちょうど私たちは、サーバーが知っているようになるページ.ライン41 サーバのルートを示します.私はApacheと同じディレクトリを使用しないようにサーバールートを変更しましたbr/>
<> P >
クラスをハイライト表示する
root /srv/www/html;
< div >
<高橋>index.html ファイル.サーバを起動できます.br/>
<> P >
クラスをハイライト表示する
sudo service nginx start
< div >
< P >新しい設定をテストするbr/>
<> P >
クラスをハイライト表示する
curl http://localhost:8080
< div >
を返します.HTML 作成したファイル.インストールを続けるPHP .


PHPのインストール


今私たちはPHP7.2 システムにインストールされていたので、全体として恐怖のビットがあったのでPHP7.2 and Nginx コンフィグに移動しますPHP7.3 .


最初のオフ、Ubuntuはどこに取得するか分からないPHP7.3 したがって、リポジトリを追加する必要がありますbr/>
<> P >
クラスをハイライト表示する
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt upgrade
< div >
<インストール>PHP7.3 といくつかの拡張.これらは私が必要とする拡張モジュールです.必要に応じて拡張モジュールを追加したり削除したりできます.br/>
<> P >
クラスをハイライト表示する
sudo apt install php7.3
sudo apt install php7.3-cli php7.3-fpm php7.3-pdo php7.3-mysql php7.3-zip  php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json
< div >
すべてのエクステンションがインストールされたら、その時刻をNginx 私たちが使用しているウェブサイトはPHP . すべてのコメントが取り除かれ、コメントが変更された行にのみコメントがあります.p >
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/davinderpalrehal/dd8892255905f3b7cc5db4d38f01cf2d.js//>
< div >
< tt >構文エラーがないことを確認するための設定をテストします.br/>
<> P >
クラスをハイライト表示する
sudo nginx -t
< div >
<高橋潤子>/srv/config/default.nginx.conf . 今のところ、空白のファイルを追加するだけで、後で何をするかを説明します.p >
うまくいけば、それはあなたの誤りを解決しました.さあ変えましょうindex.html ファイルindex.php そして、いくつかの基本PHP 物事が動作するかどうかを確認するコード.また、index.php ファイル.私は行きたいですbr/>
<> P >
クラスをハイライト表示する
sudo chmod 755 index.php
< div >
を再開するNginx サーバ< br/>
<> P >
クラスをハイライト表示する
sudo service nginx restart
< div >
そして、あなたはPHP ファイルを書きました.印刷したphpinfo() 設定を確実にする機能p >

サーバenv変数


私はいくつかの私のアプリケーションの設定を保存するような$_SERVER 超大域これは便利なときにあなたの間のアプリケーションを移動来るdev , stage and prod サーバーとDBのパスワードやAPIのエンドポイントを変更し続ける必要はありませんp >
私たちが触れたファイル/srv/config/default.nginx.conf , 次のコード行を追加しますbr/>
<> P >
クラスをハイライト表示する
fastcgi_param   APP_ENV         dev;
fastcgi_param   APP_ENDPOINT    https://dev.server.com;
fastcgi_param   DB_HOST         localhost;
fastcgi_param   DB_USER         root;
fastcgi_param   DB_PASS         password;
< div >
通常は< br/>形式です
<> P >
クラスをハイライト表示する
fastcgi_param  {VAR_NAME}      {VAR_VALUE};
< div >
他のenv変数を追加してください.一度あなたのハッピーテストの設定と再起動Nginx . あなたの新しい変数をphpinfo() 関数は以下のように出力される.p >
< P >


最後の5つの値に注意を払います.p >
そして、それは、ちょうど最終的なテストをするために関連フォルダにすべてのファイルを動かします.準備ができたら、あなたはApache サービスbr/>
<> P >
クラスをハイライト表示する
sudo service apache2 stop
< div >
ポート番号を変更する8080Nginx コンフィグ80 再開Nginx , これで終わりです.p >
<高橋>p >