基于最新的Ubuntu 14.04(2014年9月)搭建nginx、php、mysql环境,

以下全部命令行操作:

1 由于需要大量的权限操作,方便起见临时提升权限,使用root账号

sudo su

2 安装apt源管理工具、添加nginx和php的安装源

apt-get install python-software-properties
add-apt-repository ppa:nginx/stable
add-apt-repository ppa:ondrej/php5

3,更新系统软件

apt-get update

4、安装mysql

apt-get install mysql-server

注:在安装过程中,会要求你输入MySQL的root账号的密码。

5、安装php及对mysql的支持

apt-get install php5 php5-fpm php5-mysql php-apc

如果mysqli扩展安装不上,执行如下命令:

aptitude install php5-mysql

登陆mysql

mysql -u root -p 

6、根据实际需要,选择性的安装php的各类功能模块(具体请自行百度)

apt-get install php-pear php5-dev php5-curl apt-get install php5-gd php5-intl php5-imagick apt-get install php5-imap php5-mcrypt php5-memcache apt-get install php5-ming php5-ps php5-pspell apt-get install php5-recode php5-snmp php5-sqlite apt-get install php5-tidy php5-xmlrpc php5-xsl

7、安装nginx

apt-get install nginx

8、配置php

vi /etc/php5/fpm/php.ini 找到:;cgi.fixpathinfo=1 改为:cgi.fixpathinfo=0

9、配置nginx

mkdir /www chmod 755 /www 创建一个 /www 目录设置为 755 权限 vi /etc/nginx/sites-enabled/default 找到:root /usr/share/nginx/html; 改为:root /www; 说明:将网站根目录设置到/www 目录下,注意不要写成 /www/ 这种格式, 这个习惯性的小小洁癖给我带来了意想不到的困扰,后面细说。 找到:index index.html index.htm; 改为:index index.php index.html index.htm; 说明:在默认索引文件中增加 index.php 找到:location ~ .php$ { * } 区块 做如下调整(改动之处于行末有注释): location ~ .php$ { tryfiles $uri =404; #增加 fastcgisplitpathinfo ^(.+.php)(/.+)$; #反注释

NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

With php5-cgi alone:

fastcgi_pass 127.0.0.1:9000;

With php5-fpm:

fastcgipass unix:/var/run/php5-fpm.sock; #反注释 fastcgiindex index.php; #反注释 include fastcgi_params; #反注释 }

10、解决php-fpm与nginx的小bug

按上述步骤操作后,由于nginx与php-fpm之间的一个小bug,会导致这样的现象: 网站中的静态页面 *.html 都能正常访问,而 *.php 文件虽然会返回200状态码, 但实际输出给浏览器的页面内容却是空白。 简而言之,原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析, 相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。 为了解决这个问题,需要改动nginx默认的fastcgiparams配置文件: vi /etc/nginx/fastcgiparams 在文件的最后增加一行: fastcgiparam SCRIPTFILENAME $documentroot$fastcgiscriptname; 关于这行的内容,多说几句,其中有两个参数: $documentroot 即是指网站的根目录,也就是我们在前面刚设置的 root /www; $fastcgiscriptname 则是指网站上的各个 *.php 文件名(其实是文件的相对路径) 这两个合在一起形成完整的 php file path,比如你的网站有个 /test/script.php 文件, nginx传递给php-fpm的完整路径就是:/www/test/script.php 我在前面说配置nginx时,写成了 root /www/; 这种写法,对于nginx不成问题, 但它在向php-fpm传递php文件路径时,会形成:/www//test/script.php 这样的文件地址无效(获取不到正确的php文件),于是出现返回空白的问题。 这个问题是如此之隐蔽,以至于我花了大量时间在查看LOG、寻找资料和调整设置上。

11,重启各项服务

service php5-fpm reload service nginx reload 重新加载各项配置改动。

12、测试

vi /www/index.php 内容: <?php echo phpinfo(); ?> 请打开你的浏览器访问:http://localhost 若一切正常,将输出php环境信息,效果如: http://image.baidu.com/i?word=phpinfo%28%29 附录: 1,一些编辑修改工作涉及到 vi 的使用,如果不会操作,请访问这个链接: http://linux.vbird.org/linux_basic/0310vi.php 2,我参考的所有资料中,最有价值的两篇,感谢前辈作者们: http://blog.segmentfault.com/ipanda/1190000000477401 http://imcn.me/html/y2014/20291.html 3,Ubuntu是个好玩具,自06年之后,再度推荐下: http://www.ubuntu.com 注意:别去用那个集成了一堆垃圾软件的所谓中国版。 如果你是为了搭建网站(而非日常家用),建议选用ubuntu server英文版。 limingx.com / 2014-09-13

基于ubuntu 14搭建nginx+php+mysql环境的更多相关文章

  1. linux上搭建nginx+php+mysql环境详细讲解

    1.mysql安装 #安装编译环境 yum install -y gcc gcc-c++ gcc-devel g++ g++-devel; yum install -y wget yum instal ...

  2. windows下搭建nginx+php+mysql环境

    一.下载需要的东西 1.nginx:http://nginx.org/en/download.html 2.php:http://php.net/downloads.php 3.mysql:(暂时先不 ...

  3. MySQL 忘记root密码解决方法,基于Ubuntu 14.10

    忘记MySQL root密码解决方法,基于Ubuntu 14.10 忘了mysql密码,从网上找到的解决方案记录在这里. 编辑mysql的配置文件/etc/mysql/my.cnf,在[mysqld] ...

  4. Ubuntu 14.04下java开发环境的搭建--3--Tomcat及MySQL的安装

    前面两篇文章,已经说明了JDK和Eclipse 的安装方法,下面简单说一下,Tomcat及MySQL的安装方法. Tomcat的安装. 在合适的地方解压apache-tomcat-6.0.39.tar ...

  5. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  6. Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试

    Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试一.下载相关安装包 1.下载nginx最新版本(nginx1.3.13版之后才支持websocket协议) 下载地址 ...

  7. 在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs)

    在阿里云 ECS 搭建 nginx https nodejs 环境(三.nodejs) 在阿里云 ECS 搭建 nginx https nodejs 环境(三.nodejs) 第一步 指定版本源 执行 ...

  8. 在Linux(Ubuntu)下搭建ASP.NET Core环境并运行 继续跨平台

    最新教程:http://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html 无需安装mono,在Linux(Ubuntu)下搭建ASP.NET Core环 ...

  9. 【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码

    原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码       ...

随机推荐

  1. Android 主题切换 小结

    前言 我们用手机的时候经常看到 设置里面有夜间模式和白天模式来更换APP的主题,以前以为很简单,但是实际做起来还是有各种不完美,那么我们也要去了解各种解决方案来丰富我们的知识,现在我们就来看看各种优劣 ...

  2. 获取设备的mac地址和IP地址(android6.0以上专用)

    /** * 获取设备HardwareAddress地址 * @return */public static String getMachineHardwareAddress(){ Enumeratio ...

  3. rdesktop的使用方法

    工作时一般是开两台电脑 ,一台linux,一台windows,以前也用过虚拟机什么的,但是 有时候 跑起来拖泥带水的十分不爽,所以慢慢的就习惯了两台电脑的工作方式,一般我大部时间都在linux下面.用 ...

  4. Keras学习~第一个例子~跑MNIST

    import numpy as npimport gzip import struct import keras as ks import logging from keras.layers impo ...

  5. 夺命雷公狗-----React---21--小案例之心情留言板

    这个功能如果是用传统型的jquery来写都要花费很多时间才可以完成的案例, 亲测jquery配合bootstrap来写和bootstrap配合react.js来写,不知不觉中有点震惊... jquer ...

  6. Java反射遍历数组

    日志中有时候需要查看数组中的值,但是重载很多的打印函数,觉得很别扭.所以想通过反射,获取数组中的值,打印出来.Java提供了数组反射操作的类,之前没有关注过,提供的方法简单易用. public sta ...

  7. python opencv 利用Lab空间把春天的场景改为秋天

    前一段时间实现了Reinhard颜色迁移算法,感觉挺有意思的,然后在代码上随意做了一些更改,有了一些发现,把Lab通道的a通道值改为127左右,可以将绿色改为黄色,而对其他颜色的改动非常小,因此可以将 ...

  8. 【转载】移动web开发经验总结

    本文出自: http://blog.163.com/hsb001_mobile/blog/static/15524028020111177221254/ 1.-webkit-tap-highlight ...

  9. 使用dom4j操作XML

    DOM4J介绍 DOM4J是使用Java语言编写的,用于读写及操作XML的一套组件,DOM4J同时具有DOM修改文件的优点和SAX读取快速的优点. DOM4J的使用 首先下载dom4j的JAR包,我用 ...

  10. git github简单知识

    Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...