基于ubuntu下nginx+php+mysql安装配置的具体操作步骤


Posted in PHP onApril 28, 2013

1、更新

1 sudo apt-get update

2、安装nginx

1 sudo apt-get intsall nginx 

Ubuntu安装之后的文件结构大致为:
所有的配置文件都在/etc/nginx,并且每个虚拟主机已经安排在了/etc/nginx/sites-available
*程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx
*并已经在/etc/init.d/下创建了启动脚本nginx
默认的虚拟主机的目录设置在了/var/www/nginx-default

下面可以启动nginx来看看效果(请确保80端口没有其他服务在使用):

1 sudo /etc/init.d/nginx start 

#或者简单的

1 service nginx start 

然后打开浏览器,查看http://localhost/ 看看是否看到了Welcome to nginx!” 如果看到了,说明安装成功.
当然,基本上,这块儿都不会出问题如果运行不成功,可以先

1 sudo killall apache2 

杀掉apache进程
3、安装php

sudo apt-get install php5 php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-sqlite php5-xsl

 

4、安装spawn-fcgi
为什么要安装spawn-fcgi,它用来控制php-cgi进程,以防止进程崩溃或是单进程的效率太低.
网上很多人都说要使用spawn-fcgi必须得安装lighttpd,实际上不必要,可以直接安装spawn-fcgi
运行:

1 sudo apt-get install spawn-fcgi 

5、配置
接下来就是最让人头疼的配置.
配置Nginxspawn-fcgi配合运行
(1)./etc/nginx/fastcgi_params 文件最后,加入一行,可以用

1 sudo vi /etc/nginx/fastcgi_params 

加入此行:

1 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

(2).另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini),找到cgi.fix_pathinfo选项,修改为:

1 cgi.fix_pathinfo=1;

这样php-cgi方能正常使用SCRIPT_FILENAME这个变量.
(3).打开/etc/nginx/sites-available/default文件在

1 2 3 server { listen 80; server_name localhost;

下面添加web根目录的绝对地址,这里是使用的是nginx的默认地址

1 root /var/www/nginx-default

rootserver_name同级这段即相当于apache的默认目录
如果没有这个的话,容易在执行php 文件的时候,会提示No input file specified.
我就曾在此绕了好大个圈子才发现问题.然后修改

1 2 3 4 5 6 #location ~ .php$ { #fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #includefastcgi_params; #}

修改成

1 2 3 4 location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;

include /etc/nginx/fastcgi_params; #包含fastcgi的参数文件地址
6、开始fast_cgi进程

1、sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

7、设置开机启动fastcgi进程并启动

1 sudo vi /etc/rc.local

添加下一行

1 /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

如果打开php文件出现:No input file specified请检查php.ini的配置中

1 cgi.fix_pathinfo=1 
1 doc_root=

还有,每个虚机要根据自己不同的虚机设置不同的目录,要保证这个路径正确.
检查/etc/nginx/sites-available下的配置文件中,server内包含 root 及地址 而非location内的root
启动

1 fast-cgisudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

参数含义如下
* -f 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
* -a 绑定到地址addr
* -p 绑定到端口port
* -s 绑定到unix socket的路径path
* -C 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
* -P指定产生的进程的PID文件路径
* -u-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,nobodyapache等现在可以在web根目录下放个探针或php文件测试一下了
8、安装mysql

1 sudo apt-get install mysql-server mysql-client

中间会提示输入Root用户密码,依次输入即可.
启动MySQL

1 sudo /etc/init.d/mysql start

测试mysql服务是否正常:
运行

1 mysql -uroot -p

输入mysql密码

1  show databases;

如果看到下面的内容
| Database |
| information_schema |
| mysql |
mysql已正确安装了.
至此,ubuntu下的nginx+php+mysql就安装完成了.

PHP 相关文章推荐
新闻分类录入、显示系统
Oct 09 PHP
php中通过Ajax如何实现异步文件上传的代码实例
May 07 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
linux下实现定时执行php脚本
Feb 13 PHP
ThinkPHP实现生成和校验验证码功能
Apr 28 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
PHP创建XML接口示例
Jul 04 PHP
使用laravel的migrate创建数据表的方法
Sep 30 PHP
laravel使用redis队列实例讲解
Mar 23 PHP
phpcms模块开发之swfupload的使用介绍
Apr 28 #PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 #PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 #PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 #PHP
php gzip压缩输出的实现方法
Apr 27 #PHP
PHP字符串的编码问题的详细介绍
Apr 27 #PHP
php正则表达式使用的详细介绍
Apr 27 #PHP
You might like
关于Intype一些小问题的解决办法
2008/03/28 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
ant design实现圈选功能
2019/12/17 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python卸载模块的方法汇总
2016/06/07 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
html5 input属性使用示例
2013/06/28 HTML / CSS
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
如何进行Linux分区优化
2016/09/13 面试题
应用艺术专业个人的自我评价
2014/01/03 职场文书
西北政法大学自主招生自荐信
2014/01/29 职场文书
前处理班长职位说明书
2014/03/01 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis