DebianWebサーバー
DebianはLinuxウェブサーバーをセットアップするのに最適です。現在の統計によると、これは最も人気のあるサーバーOSであり、centosがそれに続きます。
私はapt/dpkg / gdebiコマンドの大ファンです。このコマンドを使用すると、システムにパッケージを簡単にインストールして更新できます。
完全に機能するphpWebサーバーをセットアップするには、Webサーバーとデータベースを含むいくつかの追加のものをインストールする必要があります。この投稿では、nginx、php、php-fpm、apc、MariaDBを設定します。
Nginxは最新のWebサーバーであり、RAMとCPUの観点から、最小限のリソースを使用して大量のトラフィックを処理するように設計されています。
nginxの前は、インターネット全体で使用されていた従来のWebサーバーはapacheでした。ただし、インターネットの人口が増えるにつれ、より高速で効率的なWebサーバーの必要性が高まりました。
NginxとApache
Apacheは設計上非常にかさばり、多くの機能を備えていますが、そのほとんどは一般的なWebサイトには必要ありません。おそらくすべての人のニーズを満たすように設計されていましたが、これにより、ほとんど使用されていない機能を備えた大きくて重いWebサーバーになりました。
一方、Nginxは、速度、スケーラビリティ、効率に完全に焦点を当てた、非常に洗練された高速なWebサーバーです。
それがどのように行われるかについての技術は大きく、この投稿の範囲を超えています。後で見てみることができるかもしれません。参考までに、このWebサイトはnginxで実行されます。
これ以上の議論なしで、仕事に取り掛かりましょう。
1。 DebianにNginxをインストールする
nginxパッケージはdebianリポジトリにあるので、他の場所を探す必要はありません。 apt-getを起動してインストールします。
# apt-get install nginx
次に、nginxサーバーを起動します。
# service nginx start Starting nginx: nginx.
次に、URLを開いてブラウザからnginxサーバーにアクセスします
http://localhost/
ウェルカムメッセージが表示されます
Welcome to nginx!
重要な注意事項
nginxサーバーをより適切に管理するために覚えておくべきことがいくつかあります。 nginx構成ファイルは次の場所にあります
/etc/nginx/
[email protected]:/etc/nginx# ls conf.d koi-win naxsi.rules scgi_params uwsgi_params fastcgi_params mime.types nginx.conf sites-available win-utf koi-utf naxsi_core.rules proxy_params sites-enabled
nginx.confファイルを直接変更しないでください。代わりに、vhost / siteごとに個別の構成ファイルを作成し、次のディレクトリに保存します。
/etc/nginx/sites-available /etc/nginx/sites-enabled
これはapacheに似ています。 sites-enabledディレクトリには、有効にするvhostの構成が含まれています。これには、sites-availableディレクトリ内の対応する構成ファイルへのシンボリックリンクが含まれています。
仮想ホストを設定する
nginxをインストールしたので、仮想ホストをセットアップします。これは、実際のWebサーバーでサイトをセットアップするために行うことです。
/ etc / nginx / sites-available内に、defaultという名前のファイルが表示されます。独自の設定ファイルを作成するためのテンプレートファイルです。コピーしてサイトに名前を付けるだけです。
# cp default binarytides.com [email protected]:/etc/nginx/sites-available# ls binarytides.com default
覚えやすく、保守しやすいように、構成ファイルにサイト名を付けることにしました。
次に、binarytides.comを開き、必要に応じて編集します。
サーバーが表示されます。これに似たブロック
server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /usr/share/nginx/www; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost;
ここで最初に構成するのはserver_nameです。あなたのサイトに名前を付けてください。例
server_name binarytides.com or server_name binarytides.com www.binarytides.com
誰かが自分のブラウザでbinarytides.comを開くと、httpヘッダーにはこのホスト名が含まれ、nginxはこのホスト名を取得して一致するサーバーブロックを検索します。一致するサーバーブロックが見つかると、その特定のサーバーブロックの構成が使用されます。
構成するもう1つのことは、このサイト/仮想ホストのWebルートディレクトリです。これはデフォルトで/usr / share / nginx / wwwであることに注意してください これを別のものに変更することをお勧めします。
一般的な規則では、仮想ホストごとに個別のディレクトリを用意します。例
/usr/share/nginx/www/binarytides.com/ /usr/share/nginx/www/google.com/
したがって、適切なディレクトリを作成し、構成ファイルのルート設定がそのディレクトリを指すようにします。
... root /usr/share/nginx/www/binarytides.com; ...
これらの変更を行った後、構成ファイルを保存し、/ etc / nginx/sites-enabledディレクトリにシンボリックリンクを作成します。
[email protected]:/etc/nginx/sites-available# ls binarytides.com default [email protected]:/etc/nginx/sites-available# cd .. [email protected]:/etc/nginx# cd sites-enabled/ [email protected]:/etc/nginx/sites-enabled# ln -s ../sites-available/binarytides.com [email protected]:/etc/nginx/sites-enabled# ls binarytides.com default [email protected]:/etc/nginx/sites-enabled#
次に、新しい構成をテストします
# nginx -t nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
出力の最後の行は成功したと言う必要があります。そうでない場合、エラーが表示されます。後で修正できる警告が表示される場合があります。
最後にnginxを再起動して、新しい構成を有効にします
# service nginx restart Restarting nginx: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored nginx. [email protected]:/etc/nginx/sites-enabled#
そのため、新しい構成が有効になりました。次に、この仮想ホストの新しいWebルートに新しいindex.htmlファイルを作成し、ブラウザから開くと、機能するはずです。
2。 phpとphp-fpmをインストールします
次にインストールするのは、phpインタープリターとphp-fpmです。 Php-FPMは、互換性のある任意のWebサーバーとインターフェイスまたは接続し、phpプロセスを管理してphp要求を処理できるphp専用のfastcgiプロセスマネージャーです。
Nginx <== communicates ==> Php-FPM <== manages ==> php child process
最初に必要なパッケージをインストールします。
# apt-get install php5 php5-fpm
必要な依存関係が自動的にインストールされます。 phpスクリプトを実行するためにphpコマンドが必要な場合にも、php5-cliパッケージをインストールできます。
Php-fpm runs as a separate server and nginx communicates with it over a socket. Hence the php execution is totally outside the server. Also since fpm keeps php process persistent, it fully supports APC.
次に、phpfpm構成ファイルを見つけます。にあるファイル
/etc/php5/fpm/
プールは、同じユーザー/グループで実行される一連のphpプロセスです。したがって、各サイトのphpファイルを個別のユーザー権限で実行する場合は、fpmの個別のプールを作成する必要があります。わかりやすくするために、ここでは1つのプールのみを示しています。
プール構成ファイルは、pool.dディレクトリー内にあります。ナビゲート
[email protected]:/etc/php5/fpm/pool.d# ls www.conf
使用するテンプレートであるwww.confファイルを開き、プールごとに個別の構成ファイルを作成します。
次のようになります
; Start a new pool named 'www'. ; the variable $pool can we used in any directive and will be replaced by the ; pool name ('www' here) [www] ; Per pool prefix ; It only applies on the following directives: ; - 'slowlog' ; - 'listen' (unixsocket) ; - 'chroot' ; - 'chdir' ; - 'php_values' ; - 'php_admin_values' ; When not set, the global prefix (or /usr) applies instead. ; Note: This directive can also be relative to the global prefix. ; Default Value: none ;prefix = /path/to/pools/$pool ; 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 = www-data group = www-data ; The address on which to accept FastCGI requests. ; Valid syntaxes are: ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on ; a specific port; ; 'port' - to listen on a TCP socket to all addresses on a ; specific port; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. listen = /var/run/php5-fpm.sock ; Set listen(2) backlog. ; Default Value: 128 (-1 on FreeBSD and OpenBSD) ;listen.backlog = 128
上記のものは主にコメントで構成されており、最も重要な4行は
1. [www] this is the pool name 2. user = www-data this is the user with whose permissions the php script would be run 3. group = www-data this is the group 4. listen = /var/run/php5-fpm.sock this is the socket for communicating with this pool. This socket must be given to nginx for nginx to be able to talk to fpm
fpmをnginxに接続します
ここではあまり変更しません。ソケットパスを書き留めてください。これをnginx構成ファイルに入れる必要があります。 nginx構成に戻り、再度開きます。
これには、次のようなphpfpm構成のセクションが含まれています
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; # fastcgi_index index.php; # include fastcgi_params; #}を含める
コメントを外して、次のようにします
location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }を含める
PHPのテスト
次に、phpinfo呼び出しを使用してWebルートにファイルを配置します。
<?php phpinfo();
次に、ブラウザでファイルを開くと、phpがセットアップされ、正しく機能していることを示すphp情報ブロックが表示されます。
あなたができるもう一つのことは、インデックスファイルリストにindex.phpを追加することです。そのため、ディレクトリにアクセスするときに、ファイルが指定されていない場合は、index.phpが呼び出されます。
root /usr/share/nginx/www/binarytides.com; index index.html index.htm index.php;
apcのセットアップ-代替phpキャッシュ
APCは、phpスクリプトの実行を高速化するための優れた方法です。 Apcはphpコードをコンパイルし、オペコードをメモリに保持し、ファイルから同じphpコードを再度コンパイルせずに次回使用します。これにより、実行が大幅に高速化されます。オペコードキャッシュとは別に、apcはphpアプリケーションの生データをメモリに保存するためのユーザーキャッシュも提供します。
バージョン5.5のPhpには、apcオペコードキャッシュと同じことを行うOPcacheと呼ばれる新機能があり、apcを廃止します。
apcの設定は非常に簡単で迅速です。 PHP用のapcパッケージをインストールするだけです
# apt-get install php-apc
次に、phpfpmを再起動します
# service php5-fpm restart
ここで、phpinfoページをもう一度確認すると、apcの詳細も含まれているはずです。 apc構成ファイルは
にあります/etc/php5/fpm/conf.d/20-apc.ini
構成を少し調整して、ニーズに最適なパフォーマンスを実現できます。これが私が使用する構成の種類です
extension=apc.so apc.enabled=1 apc.shm_size=128M apc.ttl=3600 apc.user_ttl=7200 apc.gc_ttl=3600 apc.max_file_size=1M
詳細については、apc構成パラメーターのリストを確認してください。
3。 DebianにMariaDBをインストールする
これで、LEMPスタックの最後の最後のコンポーネントが登場します。これはMariaDBデータベースであり、mysqlではありません。さて、今では、mysqlがoracleの手にあり、もはやコミュニティに属していないことを知っているはずです。そのため、主要な企業はmariadbへの切り替えを開始しました。良い点は、mariadbがmysqlとバイナリ互換であり、多くの追加機能を備えていることです。したがって、すでにphpアプリケーションにmysqlを使用している場合は、mariadbに移行するのはまったく手間がかかりません。
MariaDB Debianには存在しません リポジトリ。リポジトリを入手するには、次のページにアクセスしてください
https://downloads.mariadb.org/mariadb/repositories/ディストリビューションとしてDebianを選択し、mariadbのリリースおよびバージョン10.0としてWheezyを選択します。次に、右側のミラーを選択します。次に、ページの一番下までスクロールして、リポジトリの詳細を見つけます。
これが私が得たコマンドです
sudo apt-get install python-software-properties sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db sudo add-apt-repository 'deb http://mirrors.fe.up.pt/pub/mariadb/repo/10.0/debian wheezy main'
次に、aptキャッシュを更新し、mariadbパッケージをインストールします
sudo apt-get update sudo apt-get install mariadb-server mariadb-client
インストール中に、mariadbはユーザーrootのパスワードを要求します。パスワードを入力し、忘れないようにしてください。
インストールが完了したら、mariadbのバージョンを確認してください
# mysql -V mysql Ver 15.1 Distrib 10.0.3-MariaDB, for debian-linux-gnu (x86_64) using readline 5.1
コマンド名はmysqlと同じであることに注意してください。ただし、バージョン情報にはmariadbという名前が含まれています。
ウェブサーバーの準備ができました
これで、LEMPWebサーバーを使用する準備が整いました。データベースをより適切に管理するために、phpmyadminなどの追加の機能をいくつかインストールすることをお勧めします。 Phpmyadminはdebianリポジトリにあるので、そこから直接インストールしてください。
何か質問がある ?以下にコメントしてください。