PHP+MySQL代码部署在Linux(Ubuntu)上注意事项
最近帮同学做一个网站,同学买的是阿里云服务器,Linux发行版是Ubuntu12.04。我在本地把程序写好,都调试好了。然后他让我自己发布和部署。之前在大学里上操作系统课程时,也用过一段时间的Ubuntu,那个时候应该是10.04。并且是虚拟机,有界面的。现在是服务器版本,只有命令行,而且自己要使用终端模拟器链接。
所以就搜索资料,看哪些工具好用,而已方便。找了一圈,发现下面2个工具结合起来蛮好的。文件上传和权限改变工具:WinSCP,另外一个就是命令行终端模拟器:Xshell。这2个工具顺利帮我解决了这次在Linux上发布和部署PHP代码的问题。软件图标如下:
注意事项1:LAMP安装过程了,除了顺序安装Apache,MySQL和PHP。还要安装PHP对Apache对MySQL的支持。
同学告诉我,他已经安装了Apache,MySQL5.5和PHP。但是我的代码放到/var/www目录下,只要有调用MySQL的页面都运行不了,显示500服务器内部错误。这个比较纠结,然后一行一行的注释,发现下面这行代码无法执行:
$databaseConnection = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);我就问他,你确定装好了PHP,MySQL5.5。他说肯定呀!都是按照步骤安装的。开始我们都以为mysqli的扩展没有安装,就在那里改php.ini里面extension。改了,然后重启了几次Apache2和MySQL,都不起作用。后来我记得在Windows上配置时,要在PHP里面加载MySQL的dll。那在Linux系统中也需要的吧!然后就问他这个装了没有,他说应该没有。然后我们就搜索,发现确实需要装。命令是:
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
sudo apt-get install libapache2-mod-auth-mysql
sudo apt-get install php5-mysql
#重启Apache
sudo /etc/init.d/apache2 restart
注意事项2:MySQL在Linux上默认对表名是大小写敏感的。 开始以为大功告成,可以洗澡睡觉了。发现点了几个页面,又有页面500错误了。怪了,这下又是什么问题。注释和运行了半天,发现有一条sql语句的程序代码,运行不了。SELECT * FROM USERS WHER id=?; 这是一条非常简单的sql语句呀!怎么跑不动呢?开始以为是bind_param(‘i’$user_id),这里绑定数据有问题。后来想到之前,公司项目中,同事从连接Oracle数据库代码搬迁到连接MySQL数据库时,出现表名大小写有问题。我突然想到是不是也有这个问题,把USERS改成users就ok了。后面查找资料得出,MySQL在Linux默认对表名是大小写敏感的。
总结如下:
1.Web开发工程师,不管前端,后台还是数据库,都需要了解一些Linux相关知识。因为x86 linux服务器是未来的趋势,而且公司的现有系统都慢慢的往Linux上迁移。
2.遇到问题,一方面除了在Google上搜索,有时在平时工作中积累的经验也非常的宝贵。所以平时需要把一些错误的经验,或者问题的解决办法记录下来,这样可以提升解决问题的能力。
参考链接:
1.WinSCP:http://download.pchome.net/internet/ftp/detail-34064.html
2.Xshell4:http://www.onlinedown.net/soft/36383.htm 官网比较难打开,我是在太平洋下载的。而已它在安装的时候,可以选择Xshell4 for home/school。这个是免费的。
3.在Centos下安装LAMP环境:http://www.cactifans.org/linux/324.html
- 利用Windows性能计数器(PerformanceCounter)监控
- zepto 基础知识(1)
- [C#7] 1.Tuples(元组)
- 防止“rm-rf/”误删除的5种方法
- 基于DotNetOpenAuth实现OpenID 服务提供者
- .NET 和Java 对象 XML序列化 库WOX
- jquery mobile 移动web(6)
- IIS6 间歇性的发生500错误的解决方法
- 产品之上的世界观
- 使用Windows 7中的库
- WordPress 开发之让浏览器自动加载最新的CSS、JS文件(免刷新缓存)
- [C#6] 0-概览
- 移植Windows自宿主WCF服务到Linux/Mono2.8
- IISWeb应用防火墙WAF
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux中可以节省你时间的15个命令别名
- Linux下利用unzip命令如何解压多个文件详解
- linux查看磁盘使用情况方法
- 详解Linux(centos7)下安装OpenSSL安装图文方法
- 面试官:考你几个简单的事件问题吧
- 如何创建Linux的swap交换分区文件的方法步骤
- Linux利用keepalived实现lvs的高可用性的操作方法
- Canvas系列(11):动画中级
- 使用autoconf生成Makefile并编译工程的步骤
- frida- registernatives获取so层动态注册函数
- Ubuntu下安装并配置VS Code编译C++的方法
- LInux下如何挂载光盘找rpm包的方法步骤
- Linux 改变文件大小的方法
- Canvas系列(9):其他API
- CentOS7将Nginx添加系统服务的方法步骤