基于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源代码 ...
随机推荐
- mongodb群集
项目目标:故障自动切换和自动修复成员节点,各个数据库之间数据完全一致.项目描述:副本集没有固定主节点,是整个集群选举得出的一个主节点,当其不工作时变 更其他节点.最小的副本集也应该具备一个pri ...
- 转载:谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
转载: 谈谈Unicode编码,简要解释UCS.UTF.BMP.BOM等名词 这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级 ...
- Windows Phone 二、WP控件
- Elasticsearch5.1.1+ik分词器+HEAD插件安装小记
一.安装elasticsearch 1.首先需要安装好java,并配置好环境变量,详细教程请看 http://tecadmin.net/install-java-8-on-centos-rhel-an ...
- phonegap android 输入法弹出会遮盖表单框的解决办法
phonegap android 当页面内容比较多,表单超出屏幕范围时,点击输入,输入法会遮盖住表单框,而且无法向上滑动. 经过测试发现,是由于config.xml中设置了 FullScreen 的全 ...
- HBase的数据模型相关操作 使用t这个变量来代替table1
在andriod的应用程序中,用户所感知的都是一个个应用界面,在android程序里面每个应用界面对应一个 Activity类,这类似于.NET Winform项目中的Form窗体.与WinForm中 ...
- activity 所需jiar包
activity下载后有很多jar包有的jar包不一定用得上,也有些jar是重复的,这里就整理了一下必要的jar包 路径.. \activiti-5.19.0.2\wars\activiti-expl ...
- [原创]使用Gradle的插件EnIDE build的时候,输出的中文总是乱码。
使用Gradle的插件EnIDE build的时候,输出的中文总是乱码.解决办法:在EnIDE的设置里面,设置JVM options GRADLE_OPTS 为:-Dfile.encoding=UTF ...
- 数据绑定控件之Repeater
引言 前几篇的文章在说AJAX的内容,利用AJAX技术能够开发出高效运行的网站应用程序,不过在进行B/S项目开发时只拥有AJAX技术是远远不够的,踏入到B/S要学的东西会更多,但相较C/S的复杂逻辑结 ...
- Meteor全栈开发平台 - 不仅仅是前端
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .网站上有对应每一 ...