基于ubuntu 14搭建nginx+php+mysql环境
基于最新的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环境的更多相关文章
- linux上搭建nginx+php+mysql环境详细讲解
1.mysql安装 #安装编译环境 yum install -y gcc gcc-c++ gcc-devel g++ g++-devel; yum install -y wget yum instal ...
- windows下搭建nginx+php+mysql环境
一.下载需要的东西 1.nginx:http://nginx.org/en/download.html 2.php:http://php.net/downloads.php 3.mysql:(暂时先不 ...
- MySQL 忘记root密码解决方法,基于Ubuntu 14.10
忘记MySQL root密码解决方法,基于Ubuntu 14.10 忘了mysql密码,从网上找到的解决方案记录在这里. 编辑mysql的配置文件/etc/mysql/my.cnf,在[mysqld] ...
- Ubuntu 14.04下java开发环境的搭建--3--Tomcat及MySQL的安装
前面两篇文章,已经说明了JDK和Eclipse 的安装方法,下面简单说一下,Tomcat及MySQL的安装方法. Tomcat的安装. 在合适的地方解压apache-tomcat-6.0.39.tar ...
- 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!
写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...
- Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试
Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试一.下载相关安装包 1.下载nginx最新版本(nginx1.3.13版之后才支持websocket协议) 下载地址 ...
- 在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs)
在阿里云 ECS 搭建 nginx https nodejs 环境(三.nodejs) 在阿里云 ECS 搭建 nginx https nodejs 环境(三.nodejs) 第一步 指定版本源 执行 ...
- 在Linux(Ubuntu)下搭建ASP.NET Core环境并运行 继续跨平台
最新教程:http://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html 无需安装mono,在Linux(Ubuntu)下搭建ASP.NET Core环 ...
- 【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码
原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码 ...
随机推荐
- timus 1180. Stone Game 解题报告
1.题目: 1180. Stone Game Time limit: 1.0 secondMemory limit: 64 MB Two Nikifors play a funny game. The ...
- owin建控制台应用程序步骤
1. Install-Package Microsoft.AspNet.WebApi.OwinSelfHost 2. 建立OWIN Startup类 public void Configurati ...
- WebSphere MQ Explorer的sqlserver的jdbc
一.IBM WebSphere MQ7.0的jdbc支持数据库有: DB2 Informix Informix_With_Date_Format Microsoft_SQL_Server Oracle ...
- 省市联动sql脚本
create database ProCityData use Procitydata --创建Province(省表) create table Province ( ProID int prima ...
- chrome + vi
vimer们福利,一款能在chrome上面使用vim快捷键的插件 http://myhozz.com/2014/10/25/use-vim-in-chrome/
- wex5 实战 单页模式下的多页面数据同步
在wex5官方教程中,关于多页模式与单页模式进行了对比.两者最大的区别在于: 1 web加载速度,单页模式快于多页模式 2 多页模式对加载机制进行了预加载,一次加载之后再次加载,就会加快. 但是,由 ...
- Linux /dev目录详解和Linux系统各个目录的作用
Linux /dev目录详解(转http://blog.csdn.net/maopig/article/details/7195048) 在linux下,/dev目录是很重要的,各种设备都在下面.下面 ...
- python:模态编程框
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- LLVM与Clang的概述及关系
LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time).链接时间(link-time).运行时间(run-time ...
- Css样式基础
1.Css的语法 CSS的语法主要由两个部分组成,一个是选择器,一个是属性. 选择器又分为以下几种: 1.元素选择器:即Html标签去掉括号的就是元素 2.类选择器:所谓的类就是说class=“名称” ...