GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04Linuxでの基本的なPHP7とNginxの構成

Nginxは、お気に入りのWebサーバーとしてApacheを急速に追い抜いています。 RailsやPythonなどの言語で構築されたウェブアプリの場合、それは事実上どこにでもありますが、PHPの世界で追いつくのは少し遅いです。その理由の一部は、PHPとApacheがいかに簡単に連携できるかということです。ただし、PHPとNginxはほぼ同じくらい簡単に連携でき、PHP 7のリリースでは、2つを組み合わせるとかなり迅速なオプションになる可能性があります。

パッケージ

まず最初に。 Ubuntuを更新し、NginxおよびPHPパッケージを入手します。

# sudo apt-get update && sudo apt-get -y upgrade
# sudo apt-get -y install nginx php7.0 php7.0-fpm

インストールが完了すると、パッケージがすべて配置され、実際に実行されているはずです。これが事実であることを確認するために、NginxとPHP-FPMサービスの両方がSystemdで実行されていることを確認できます。

# sudo systemctl status nginx
# sudo systemctl status php7.0-fpm

Systemdが両方のサービスが実行されていることを確認した場合、サーバーは実際に稼働しているはずです。localhostに移動すると、デフォルトのNginxウェルカムページが表示されます。 ブラウザで。

構成

もちろん、それは実際に何かをホストする準備ができているわけではありません。 Nginxを実際のコンテンツに向け、セキュリティを向上させるために必要な構成がいくつかあります。 Nginx構成ファイルのルートディレクトリは、/etc/nginxにあります。 。ありがたいことに、Ubuntuには、構成プロセスをはるかに簡単にするデフォルトがすでにあります。

Nginx.conf

Nginxの主な構成ファイルはnginx.confです。 。選択したテキストエディタで開きます。ルート権限が必要になるため、Vimのようなテキストベースのエディターがおそらく最適です。デフォルトの構成はほとんど問題ありません。システムの速度とセキュリティを向上させるためにできることは明らかにありますが、そのほとんどはこの基本的なチュートリアルの範囲を超えています。パフォーマンスを向上させたい場合は、コメント付きのGzipオプションが圧縮に役立ち、処理速度を上げることができます。セキュリティ面では、次の3行を追加すると、悪意のあるアクティビティを防ぐのに役立ちます。

add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

サイト構成

行が追加されたら、保存して終了します。 Nginxルートには、sites-availableという2つのフォルダーがあります。 およびsites-enabledsites-available サイト構成を格納します。 sites-enabled sites-availableの構成ファイルへのシンボリックリンクが含まれています 。このように、サイトの有効化と無効化は、シンボリックリンクの作成と削除と同じくらい簡単です。

テキストエディタを使用して、/etc/nginx/sites-available/yoursiteにファイルを作成します 。このファイルには、新しいPHP7Webサイトのサイト固有の構成が含まれています。次の例には、各行の機能に関するコメントの内訳が含まれています。これはかなり基本的な構成ですが、作業は完了します。


server { 
	
	#Nginx should listen on port 80 for requests to yoursite.com
	listen 80; 
	server_name yoursite.com; 

	#Create access and error logs in /var/log/nginx
	access_log /var/log/nginx/yoursite.access_log main; 
	error_log /var/log/nginx/yoursite.error_log info; 

	#Nginx should look in /var/www/yoursite for your website
	root /var/www/yoursite/;
	#The homepage of your website is a file called index.php 
	index index.php; 

	#Specifies that Nginx is looking for .php files
	location ~ \.php$ { 
		#If a file isn’t found, 404
		try_files $uri =404; 
		#Include Nginx’s fastcgi configuration
		include /etc/nginx/fastcgi.conf;
		#Look for the FastCGI Process Manager at this location 
		fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
	} 
}

そのファイルを作成したら、それを保存してsites-enabledに移動します ディレクトリ。そこから、作成したファイルに戻るシンボリックリンクを作成します。

# cd /etc/nginx/sites-enabled
# sudo ln -s /etc/nginx/sites-available/yoursite

PHP.iniセキュリティ

セキュリティは動く目標であり、起こりうるすべての脅威に先んじることは不可能ですが、新しいサーバーのインストールを可能な限りロックダウンすることは常に良い考えです。 php.iniに加えることができるいくつかの簡単な調整があります PHPを保護するのに役立つ構成ファイル。テキストエディタで、/etc/php/7.0/fpm/php.iniを開きます。 。これは巨大なファイルです。繰り返しになりますが、Vimまたは検索機能を備えたものがおそらく最適です。

最初にdisable_functionsを見つけます phpinfo,system,mail,execを追加します すでに存在する関数の文字列の最後まで。次に、file_uploadsを見つけます Offに設定します 。次に、sql.safe_modeを見つけます Onに切り替えます 。最後に、allow_url_fopenを見つけます Offに設定します 。ファイルを閉じる前に、最後にもう1行追加します。

register_globals = Off

それがすべて終わったら、保存して閉じます。サーバーを再起動すると、準備が整います。

# sudo systemctl restart php7.0-fpm
# sudo systemctl restart nginx

次のステップ

現状では、UbuntuサーバーはほとんどのPHPWebサイトを実行できるはずです。 /var/www/yoursiteに配置されたPHPファイル サーバーによって実行されます。 index.phpを検索します 最初にファイルを作成すると、Webサイトはそこから分岐できます。もちろん、PHPとNginxを構成して速度、セキュリティ、およびほぼすべての特殊なケースの状況に対応するために実行できることは他にもたくさんありますが、今では強力な出発点があります。


Ubuntu
  1. Ubuntu20.04にPHPOPcacheをインストールして構成する

  2. Ubuntu20.04へのPhpとNginxのインストールとセットアップ

  3. Ubuntu 20.04にPHPとNginx(LEMP)をインストールしてセットアップする方法

  1. Ubuntu18.04または20.04にPHP7.4および8.0をインストールする方法

  2. デュアルブートUbuntuLinuxおよびWindows7

  3. UbuntuにOpenLiteSpeedとPHPをインストールする方法

  1. UbuntuLinuxにPHPをインストールする方法

  2. Ubuntu14.04および16.04へのNginxのインストール

  3. Linuxクォータ-UbuntuとDebianでのインストールと構成