Fedora 17下LNMP構成
Nginxは無料、オープンソース、高性能のHTTPサーバです.Nginxはその安定性であり、機能セットが豊富で、簡単な配置であり、資源消費が低い.このチュートリアルでは、Fedora 16にPHP 5+Nginx(PHP-FPM)+MySQLのサーバをインストールする方法を示します.しかし、私は何の保証も出しません.それはきっと正常に動作します.
1、このチュートリアルで使用するホスト名とIPアドレス192.168.0.100 server 1を初歩的に説明する.example.com.これらの設定は異なる可能性がありますので、適切な場合は交換しなければなりません.
2、インストールするMySQL 5まず、私達はこのようにMySQL 5をインストールして、端末は命令を入力します:
- yum install mysql mysql-server
次に、MySQLシステム起動リンクを作成し、MySQLがシステム起動時に自動的に起動するようにしてMySQLサーバを起動します.
- systemctl enable mysqld.service
- systemctl start mysqld.service
うんてん
- mysql_secure_installation
mysqlの構成
- [root@server1 ~]# mysql_secure_installation
-
- NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
- SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
-
- In order to log into MySQL to secure it, we’ll need the current
- password for the root user. If you’ve just installed MySQL, and
- you haven’t set the root password yet, the password will be blank,
- so you should just press enter here.
-
- Enter current password for root (enter for none): <– ENTER
- OK, successfully used password, moving on…
-
- Setting the root password ensures that nobody can log into the MySQL
- root user without the proper authorisation.
-
- Set root password? [Y/n] <– ENTER
- New password: <– root
- Re-enter new password: <– root
- Password updated successfully!
- Reloading privilege tables..
- … Success!
-
- By default, a MySQL installation has an anonymous user, allowing anyone
- to log into MySQL without having to have a user account created for
- them. This is intended only for testing, and to make the installation
- go a bit smoother. You should remove them before moving into a
- production environment.
-
- Remove anonymous users? [Y/n] <– ENTER
- … Success!
-
- Normally, root should only be allowed to connect from ’localhost’. This
- ensures that someone cannot guess at the root password from the network.
-
- Disallow root login remotely? [Y/n] <– ENTER
- … Success!
-
- By default, MySQL comes with a database named ’test’ that anyone can
- access. This is also intended only for testing, and should be removed
- before moving into a production environment.
-
- Remove test database and access to it? [Y/n] <– ENTER
- - Dropping test database…
- … Success!
- - Removing privileges on test database…
- … Success!
-
- Reloading the privilege tables will ensure that all changes made so far
- will take effect immediately.
-
- Reload privilege tables now? [Y/n] <– ENTER
- … Success!
-
- Cleaning up…
-
- All done! If you’ve completed all of the above steps, your MySQL
- installation should now be secure.
-
- Thanks for using MySQL!
-
- [root@server1 ~]#
3、Nginxをインストールする直接次のコマンドを実行します.
- yum install nginx
次に、nginxを起動するシステムのリンクを作成し、起動します.
- systemctl enable nginx.service
- systemctl start nginx.service
WebサーバのIPアドレスまたはホストからブラウザ(http://localhost)、nginxのウェルカムページタイプを見るべきです.
4、PHP 5をインストールするには、いくつかの列のモジュールをインストールする必要があります.以下のコマンドを入力します.
- yum install php-fpm php-cli php-mysql php-gd php-imap php-intl php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy
開いた/etc/php.iniを設定cgi.fix_pathinfo = 0:
- [...]
- ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP’s
- ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
- ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
- ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
- ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
- ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
- ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo
- cgi.fix_pathinfo=0
- [...]
次に、次のタイムゾーン設定を変更したほうがいいです.
- cat /etc/sysconfig/clock
タイムゾーンを取得:
- [root@server1 ~]# cat /etc/sysconfig/clock
- ZONE=”Asia/Shanghai”
- [root@server1 ~]#
次に、システム起動またはPHP-FPMを作成して起動します.
- systemctl enable php-fpm.service
- systemctl start php-fpm.service
PHP−FPMは、デーモンプロセスがFastCGIサーバを実行するポート9000である.5、nginx設定入力コマンド:
- vi /etc/nginx/nginx.conf
構成は分かりやすいです.詳細については、次のWebサイトを参照してください.
http://wiki.codemongers.com/NginxFullExample
http://wiki.codemongers.com/NginxFullExample2
次の構成に従って値を設定します.
- [...]
- worker_processes 4;
- [...]
- keepalive_timeout 2;
- [...]
仮想ホストとは、サーバ{}コンテナのことです.デフォルトの仮想ホストは、ファイル/etc/nginx/conf.d/defaultです.conf-次のように変更します.
- [...]
- server {
- listen 80;
- server_name _;
-
- #charset koi8-r;
-
- #access_log logs/host.access.log main;
-
- location / {
- root /usr/share/nginx/html;
- index index.php index.html index.htm;
- }
-
- error_page 404 /404.html;
- location = /404.html {
- root /usr/share/nginx/html;
- }
-
- # redirect server error pages to the static page /50x.html
- #
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root /usr/share/nginx/html;
- }
-
- # proxy the PHP scripts to Apache listening on 127.0.0.1:80
- #
- #location ~ \.php$ {
- # proxy_pass http://127.0.0.1;
- #}
-
- # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
- #
- location ~ \.php$ {
- root /usr/share/nginx/html;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
-
- # deny access to .htaccess files, if Apache’s document root
- # concurs with nginx’s one
- #
- location ~ /\.ht {
- deny all;
- }
- }
- [...]
サービスの保存と再起動:
- systemctl reload nginx.service
プローブファイルを作成してテストできます
6、PHP-FPMを確立して一つのUnix Socketを使用する
- vi /etc/php-fpm.d/www.conf
- [...]
- ;listen = 127.0.0.1:9000
- listen = /tmp/php5-fpm.sock
- [...]
PHP-FPMの再起動
- systemctl restart php-fpm.service
プロファイル:
- vi /etc/nginx/conf.d/default.conf
構成内容は次のとおりです.
- [...]
- location ~ \.php$ {
- root /usr/share/nginx/html;
- fastcgi_pass unix:/tmp/php5-fpm.sock;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- [...]
Nginxを再起動するには:
- service nginx restart