Nginx(「エンジンx」と発音)は、無料のオープンソースの高性能HTTPサーバーです。 Nginxは、その安定性、豊富な機能セット、シンプルな構成、および低リソース消費で知られています。このチュートリアルでは、PHP5サポート(PHP-FPM経由)およびMySQLサポートを備えたFedora19サーバーにNginxをインストールする方法を示します。
これがあなたのために働くという保証はありません!
1予備メモ
このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.0.100を使用します。これらの設定はユーザーによって異なる場合があるため、必要に応じて置き換える必要があります。
2 MySQL /MariaDB5のインストール
まず、次のようにMySQL5をインストールします。
yum install mysql mysql-server
次に、MySQLのシステム起動リンクを作成し(システムが起動するたびにMySQLが自動的に起動するように)、MySQLサーバーを起動します。
systemctl enable mysqld.service
systemctl start mysqld.service
次に、ネットワークが有効になっていることを確認します。実行
netstat -tap | grep mysql
次のように表示されます:
[[email protected]〜]#netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN#]#] [pre] 1116 / mysqld
[そうでない場合は、/ etc / my.cnfを編集して、オプションskip-networkingをコメントアウトします。
vi /etc/my.cnf[...]#skip-networking [...]MySQLサーバーを再起動します:
systemctl restart mysqld.service実行
mysql_secure_installationユーザーrootのパスワードを設定するには(そうでない場合は、誰でもMySQLデータベースにアクセスできます!):
[[メールで保護]〜]#mysql_secure_installation
/ usr / bin / mysql_secure_installation:379行目:find_mysql_client:コマンドが見つかりません
注:このスクリプトのすべての部分を実行することをすべてのMariaに推奨します
br />本番環境で使用されているサーバー!各ステップを注意深くお読みください。
MariaDBにログインしてセキュリティで保護するには、rootユーザーの現在の
パスワードが必要です。 MariaDBをインストールしたばかりで、
rootパスワードをまだ設定していない場合、パスワードは空白になります。
ここで、Enterキーを押すだけです。
Enter rootの現在のパスワード(noneの場合は入力):<-ENTER
OK、正常に使用されたパスワード、次に進みます...
rootパスワードを設定すると、誰もMariaDBにログインできないようになります
適切な承認なしのrootユーザー。
rootパスワードを設定しますか? [Y / n] <-ENTER
新しいパスワード:<-yourrootsqlpassword
新しいパスワードを再入力:<-yourrootsqlpassword
パスワードが正常に更新されました!
特権テーブルを再読み込みしています。 。
...成功!
デフォルトでは、MariaDBのインストールには匿名のユーザーが含まれ、ユーザーアカウントを持たなくても誰でも
MariaDBにログインできます。
それらのために作成されました。これは、テストのみを目的としており、インストールを
少しスムーズにすることを目的としています。
本番環境に移動する前に、それらを削除する必要があります。
匿名ユーザーを削除しますか? [Y / n] <-ENTER
...成功!
通常、rootは「localhost」からの接続のみを許可する必要があります。これにより、
誰かが、ネットワークからのルートパスワードを推測できないようになります。
ルートログインをリモートで禁止しますか? [Y / n] <-ENTER
... Success!
デフォルトでは、MariaDBには、誰でもアクセスできる「test」という名前のデータベースが付属しています。
これもテストのみを目的としており、本番環境に移動する前に
削除する必要があります。
テストデータベースを削除してアクセスしますか? [Y / n] <-ENTER
-テストデータベースを削除しています...
...成功しました!
-テストデータベースの特権を削除しています...
...成功しました!
特権テーブルを再読み込みすると、これまでに行われたすべての変更が
すぐに有効になります。
特権テーブルを今すぐ再読み込みしますか? [Y / n] <-ENTER
...成功!
クリーンアップ...
すべて完了しました!上記のすべての手順を完了した場合、MariaDBのインストールは安全になっているはずです。
MariaDBをご利用いただきありがとうございます!
[[メールで保護]〜]#
3Nginxのインストール
NginxはFedora19のパッケージとして提供されており、次のようにインストールできます。
yum install nginx次に、nginxのシステム起動リンクを作成して起動します:
systemctl enable nginx.service
systemctl start nginx.serviceウェブサーバーのIPアドレスまたはホスト名をブラウザ(例:http://192.168.0.100)に入力すると、nginxのウェルカムページが表示されます:
4PHP5のインストール
PHP5をPHP-FPMを介してnginxで動作させることができます(PHP-FPM(FastCGI Process Manager)は、あらゆるサイズのサイト、特に忙しいサイトに役立ついくつかの追加機能を備えた代替のPHP FastCGI実装です)。公式のFedora19リポジトリにはphp-fpmパッケージがあるため、phpスクリプトからMySQLを使用する場合に必要なphp-cliおよびphp-mysqlndなどのPHP5モジュールと一緒にphp-fpmをインストールできます。
>yum install php-fpm php-cli php-mysqlnd php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-magickwand php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidyZend OPcacheは、PHP中間コードをキャッシュおよび最適化するための無料のオープンPHPオペコードキャッシャーです。これは、APCやXcacheなどの他のPHPオペコードキャッシャーに似ています。 PHPページを高速化するために、これらのいずれかをインストールすることを強くお勧めします。 ZendOPcacheがPHP5.5に正式に含まれるようになったため、他のオペコードキャッシャーの代わりに使用します。
Zend OPcacheは、次のようにインストールできます。
yum install php-opcacheのようなエラーを回避するため
[13-Nov-2011 22:13:16] PHP警告:phpinfo():システムのタイムゾーン設定に依存することは安全ではありません。 date.timezone設定またはdate_default_timezone_set()関数を使用する必要があります。これらの方法のいずれかを使用してもこの警告が表示される場合は、タイムゾーン識別子のスペルを間違えている可能性があります。 2行目の/usr/share/nginx/html/info.phpで、代わりに「CET / 1.0/noDST」に「Europe/Berlin」を選択しました... /var/log/php-fpm/www-error.logで、ブラウザでPHPスクリプトを呼び出す場合は、/ etc / php.iniを開き、date.timezoneを設定する必要があります。
vi /etc/php.ini[...][日付];日付関数で使用されるデフォルトのタイムゾーンを定義します。 http://php.net/date.timezonedate.timezone ="Europe / Berlin" [...]次に、php-fpmのシステム起動リンクを作成して起動します:
systemctl enable php-fpm.service
systemctl start php-fpm.servicePHP-FPMは、ポート9000でFastCGIサーバーを実行するデーモンプロセスです。
5nginxの構成
nginx構成は/etc/nginx/nginx.confにあり、これを今開いています:
vi /etc/nginx/nginx.conf構成は簡単に理解できます(詳細については、http://wiki.codemongers.com/NginxFullExampleおよびここ:http://wiki.codemongers.com/NginxFullExample2を参照してください)
まず(これはオプションです)、ワーカープロセスの数を増やし、keepalive_timeoutを適切な値に設定できます。
[...] worker_processes 4; [...] keepalive_timeout 2; [...]仮想ホストはサーバー{}コンテナで定義されます。デフォルトの仮想ホストは、ファイル/etc/nginx/nginx.confのさらに下で定義されています-次のように変更しましょう:
vi /etc/nginx/nginx.conf[...]サーバー{リッスン80;サーバー名 _; #charset koi8-r; #access_log /var/log/nginx/host.access.log main;場所/{ルート/usr/ share / nginx / html; index index.php index.html index.htm; }#サーバーエラーページを静的ページ/40x.htmlにリダイレクトします#error_page 404 /404.html; location =/40x.html {root / usr / share / nginx / html; }#サーバーエラーページを静的ページ/50x.htmlにリダイレクトします#error_page 500 502 503 504 /50x.html; location =/50x.html {root / usr / share / nginx / html; } #PHPスクリプトを127.0.0.1:80でリッスンしているApacheにプロキシします## location〜 \ .php $ {#proxy_pass http://127.0.0.1; #} #PHPスクリプトを127.0.0.1:9000でリッスンしているFastCGIサーバーに渡します#location〜 \ .php $ {root / usr / share / nginx / html; try_files $ uri =404; fastcgi_split_path_info ^(。+ \。php)(/。+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; fastcgi_paramsを含める; }#Apacheのドキュメントルートが#nginxの1つの場所と一致する場合、.htaccessファイルへのアクセスを拒否します〜/\。ht{すべて拒否; }} [...]サーバー名 _;これをデフォルトのキャッチオール仮想ホストにします(もちろん、www.example.comのようにここでホスト名を指定することもできます)。
場所/部分で、インデックス行にindex.phpを追加しました。ルート/usr/ share / nginx / html;ドキュメントルートがディレクトリ/usr/ share / nginx/htmlであることを意味します。
PHPの重要な部分は、場所〜\ .php${}スタンザです。コメントを外して有効にします。ルート行をWebサイトのドキュメントルート(例:root / usr / share / nginx / html;)に変更します。 fastcgi_param行をfastcgi_paramに変更してください。SCRIPT_FILENAME$document_root$ fastcgi_script_name;そうしないと、PHPインタープリターがブラウザーで呼び出したPHPスクリプトを見つけられないためです。
try_files $ uri=404;という行を追加したことに注意してください。ゼロデイエクスプロイトを防ぐため(http://wiki.nginx.org/Pitfalls#Passing_Unmanaged_Requests_to_PHPおよびhttp://forum.nginx.org/read.php?2,88845,page=3を参照)。または、try_filesを使用したくない場合は$ uri =404;行では、cgi.fix_pathinfo=0を設定できます。 /etc/php5/fpm/php.iniにあります(後でPHP-FPMをリロードすることを忘れないでください)。
次に、ファイルを保存してnginxをリロードします:
systemctl reload nginx.service次に、ドキュメントルート/ usr / share / nginx / html ...
に次のPHPファイルを作成します。vi /usr/share/nginx/html/info.php<?phpphpinfo();?>次に、そのファイルをブラウザ(http://192.168.0.100/info.phpなど)で呼び出します。
ご覧のとおり、サーバーAPI行に示されているように、PHP5は機能しており、FPM/FastCGIを介して機能しています。さらに下にスクロールすると、MySQLモジュールを含むPHP5ですでに有効になっているすべてのモジュールが表示されます。
6つのリンク
- nginx:http://nginx.org/
- nginx Wiki:http://wiki.nginx.org/
- PHP:http://www.php.net/
- PHP-FPM:http://php-fpm.org/
- MySQL:http://www.mysql.com/
- Fedora:http://fedoraproject.org/