Warning: Error while sending QUERY packet. PID=5680 in /home/wwwroot/coco/domain/cnlamp/web/wp-includes/wp-db.php on line 1924 在Fedora 15中安装Nginx+MySQL+PHP5(PHP-FPM模式) LNMP | LAMP新闻|技巧|经验|资讯站
现在的位置: 首页Linux, WEB服务器>正文
在Fedora 15中安装Nginx+MySQL+PHP5(PHP-FPM模式) LNMP
发表于7年前 Linux, WEB服务器 暂无评论

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

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 --levels 235 mysqld on
/etc/init.d/mysqld start

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

netstat -tap | grep mysql

应该显示如下信息:

[root@server1 ~]# netstat -tap grep mysql   tcp             *: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, MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have user account created for them.  This is intended only for testing, and to make the installation go 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 database named 'test' that anyone can access.  This is also intended only for testing, and should be removed before moving into 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 --levels 235 nginx on
  /etc/init.d/nginx start 

在你的浏览器中输入你的服务器IP地址或者主机名(例如http://192.168.0.100),然后你就可以看到nginx的欢迎页面:
 
安装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 --levels 235 php-fpm on
/etc/init.d/php-fpm start

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

配置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; 你可以在这里通过修改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

给我留言

留言无头像?


×
腾讯微博