在Fedora 14中安装Nginx+MySQL+PHP5(PHP-FPM模式) LNMP

在Fedora 14中安装Nginx+MySQL+PHP5(PHP-FPM模式) LNMP

2010-12-25 20:17:40|  分类:Fedora|  标签:php  nginx  mysql  root  html  |字号大中小 订阅

Nginx(发音为 “engine x”)是一款免费、开源、高性能的HTTP服务器。同时Nginx以稳定、功能丰富、配置简单、资源消耗少著称。这篇教程将会为你展示如何在一台 Fedora 14中安装Nginx+MySQL+PHP5(PHP-FPM模式)

我已经测试无误,这将保证为你工作!

1 前言备注

在这篇教程中我使用的用户名是www.unixbar.net,IP地址是192.168.0.100.这些设置可能与你的有所不同,因此 你需要在适当的地方修改一下.

2.安装MySQL5

我们通过执行下面的命令来安装MySQL:

yum install mysql mysql-server

然后我们为MySQL创建系统启动连接(这样的话,MySQL就会在系统启动的时候自动启动)并且启动MySQL服务器:

chkconfig --levels235 mysqld on
/etc/init.d/mysqld start

现在检查是否支持网络访问,运行:

netstat-tap|grep mysql

应该显示如下信息:

[root@server1 ~]# netstat -tap | grep mysql
 
tcp        0      0 *:mysql                     *:*                         LISTEN      1717/mysqld
 
[root@server1 ~]#

如果不显示,编辑/etc/my.cnf文件,并注释掉skip-networking参数:

vi/etc/my.cnf
[...]
 
#skip-networking
 
[...]

并重启 MySQL 服务器:

/etc/init.d/mysqld restart

为root用户设置一个密码(否则任何人都可以访问到你的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: <-- 输入你的密码
Re-enter new password: <-- 重复输入你的密码
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

Nginx是Fedora 14的默认包,我们可以通过下列命令安装它:

yum install nginx

然后我们为nginx创建一个系统启动链接,并启动它:

chkconfig --levels235 nginx on
 
/etc/init.d/nginx start

在你的浏览器中输入你的服务器IP地址或者主机名(例如http://192.168.0.100),然后你就可以看到nginx的欢迎页面:

4 安装PHP5
Fedora 14官方的源中,并没有php-fpm,但是 我们可以使Remi repository源。使用下列命令添加Remi repository

rpm -ivh http://rpms.famillecollet.com/remi-release-14.rpm

下面打开tc/yum.repos.d/remi.repo文件.

vi/etc/yum.repos.d/remi.repo

把[remi]部门的enabled改为1。Gpgcheck改为0.其他不需要修改

[remi]
name=Les RPM de remi pour Fedora $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/fedora/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/fedora/$releasever/remi/mirror
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority
 
[remi-test]
name=Les RPM de remi en test pour Fedora $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/fedora/$releasever/test/$basearch/
mirrorlist=http://rpms.famillecollet.com/fedora/$releasever/test/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority

现在我们安装php-cli和其他的PHP5模 块,例如php-mysql,它可以使你的PHP脚本支持MySQL:

yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc

php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy

然后打开/etc/php.ini文件,并解除注销cgi.fix_pathinfo=1这一行:

vi/etc/php.ini
[...]
; 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=1
[...]

现在我们创建php-fpm的系统启动连接,并启动它:

chkconfig --levels235 php-fpm on
/etc/init.d/php-fpm start

Php-fpm是一个后台进程(初始化脚本为/etc/init.d/php-fpm),以9000端口运行在一台FastCGI服务器上.

5 配置nginx
现在我们打开nginx的配置文件/etc/nginx/nginx.conf:

vi/etc/nginx/nginx.conf

配置文件简单易懂
(你可以在下列网站学习更多的配置方法http://wiki.codemongers.com/NginxFullExamplehttp://wiki.codemongers.com/NginxFullExample2)
首先你可以增加worker process的数量和设置keepalive_timeout为一个合理值:

[...]
worker_processes  5;
[...]
keepalive_timeout  2;
[...]

虚拟主机定义在server{}容器中.我们使用下列命令修改默认的虚拟主机:

[...]
    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  /usr/share/nginx/html$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;
        }
    }
[...]

server_name  ; 你可以在这里通过修改www.unixbar.net来确 定你的域名
在location /部分,我在index行加入了index.php。root /usr/share/nginx/html 意思是文档路径为/usr/share/nginx/html。
对于PHP来说最重要的部分就是 location ~ \.php$ {}。取消它的注释。改变root这一行为网站的文档路径。例如root /usr/share/nginx/html。请确保把fastcgi-param行修改成了fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;;否则的话PHP解析器将不会找到浏览器中调用的PHP.
现在我们保存文件并重启nginx:

/etc/init.d/nginx restart

现在在文档路径root /usr/share/nginx/html创建下列PHP文件:

vi/usr/share/nginx/html/info.php
<?php
phpinfo();
?>

现在我们就可以在浏览器中通过http://192.168.0.100/info.php访 问了。

正如你在Server API这一行中所看到的一样,PHP5现在已经以FPM/FastCGI模式正常运行了。如果你继续向下翻看,你就能过看到PHP5所支持的模块,其中就包括 MySQL模块:

 

7 原文地址

http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-fedora-14

http://www.unixbar.net/linux/fedora/1106.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值