在Linux Debian 8下部署基于PHP的Web项目。
折腾了大半天,总算把项目部署到了服务器上,这里写一篇文章记录一下,当作做学习笔记,同时也给其他想要部署项目的朋友一点思路。目前Linux系统的分支比较多,我了解到的目前分为Debian、Ubuntu等和RedHat、centnOS等。他们的主要操作命令都一样,个别会有所区别,所以这个教程可能不太适用于centOS等一些系统,但应该有参考价值!
一、概览和准备工作
我的项目是一个简单的手机商城,前端就是HTML+CSS+JS,外加一个Jquery,只适配了PC端。后端使用了PHP和MySql。所以在服务器上就需要LAMP环境(我们常说的Linux+Apache+MySql+PHP,其他的还有LNMP环境,就是Web服务器换成Nginx)。
必要的准备工作
- Xshell+Xftp软件
- 一个云服务器
- 已经完成的项目代码和数据库数据
二、购买云服务器
目前国内有很多提供商,阿里、腾讯云等等,大家买的时候可以买境外的,比如香港,这个不用备案(备案要花一定时间),自己斟酌就好。我目前买的Vultr的。服务器的购买大家在网上就可以找到答案,这里就不在做篇幅讲解了!
三、下载Xshell和Xftp
Xshell用来连接服务器进行操作的,Xftp用来传项目到服务器。目前连接服务器和上传文件有很多种,这里我选了简单些的,其他方法大家可以去找找。
这里我给一个度盘地址给大家,下载下来安装好即可。
Xshell和Xftp
提取码:mcnl
四、使用Xshell连接服务器
下载安装好Xshell,打开软件即可,然后点击文件-新建连接。
在主机部分输入你购买的服务器的ip地址,然后连接即可。
前面有个保存信息窗口,随便选一个就好,之后出现以下界面
这儿一般都为root用户名
确定后弹出以下窗口
这个地方输入云服务器提供的密码。成功后就会显示出如下的界面,当然各个服务器提供商会有所区别。
五、安装相关环境
5.1 更新系统相关软件包
注: 命令在刚才连接好的shell窗口输入
apt-get update -y && apt-get upgrade -y
这一步可以保证我们的系统的软件是最新的版本。
5.2 安装Apache
apt-get install apache2 -y
安装完过后重启一下Apache
systemctl restart apache2
重启Apache过后,不出意外,我们就可以在浏览器输入服务器的ip地址,就会看到默认的展示页面,默认情况下,Apache的入口目录在/var/www/html下,项目需要传到这个目录下才会生效,如果想要自定义自己的目录,可以按以下方法修改。
在命令窗口输入
cd /etc/apache2/sites-available
进入到这个目录,输入ls
会看到一个000-default.conf
的文件,使用以下命令来编辑改文件:vi 000-default.conf
。(vi命令大家在网上查一下,这里不再赘述)。打开后再到DocumentRoot /var/www/html
这行改成你想要的路径保存即可。改了过后记得重启一下Apache来使之生效。
- 注:这里会涉及到部分Linux的命令,如新建文件夹,删除、移动文件这些,大家查资料就OK,不会特别复杂。
- 网上有自定义的配置站点的方式,我试过但是没成功,所以采用了这种办法来改目录,如果大家有成功案例或者好的资料和方法,可以评论区分享下,谢谢!
5.3 安装MySQL数据库
apt-get install mysql-server -y
之后弹出如下页面
这里叫你输入密码,如果你不想设置密码一直回车就ok。
数据库先配置到这儿。后面还有导入数据。
5.4 安装PHP
apt-get install php5 php-pear -y
5.4.1 创建PHP日志目录,赋予Apache用户所有权
mkdir /var/log/php
chown www-data /var/log/php
5.4.2 安装支持MySQL的扩展
apt-get install php5-mysqlnd -y
- 这个地方网上有不同的安装命令,如:
apt-get install php5-mysql -y
,据我测试这个扩展不支持mysqli_fetch_all()这样的函数。还有apt-get install php56w-mysqlnd -y
这样的,但我没有测试,不知道效果。同时php5-mysql和php5-mysqlnd不能同时安装。
5.4.3 重启Apache
systemctl restart apache2
六、使用Xftp上传项目文件到服务器
安装好Xftp后,点击Xshell上的如图所示的图标
打开Xftp后会显示服务器的目录信息
之后把你选择好的项目文件拖到你的文件里面就OK了,我这儿是elmarket文件夹。结构如下所示
七、导入数据到MySQL数据库
在Shell窗口输入以下命令:mysql -u root -p < /var/www/elmarket/mysite.sql
来导入数据库信息
- -u 后面是你的数据库用户,我这儿默认是root,根据个人情况自行修改。
- -p 是你的用户密码,我这儿没有密码,所以为空(其实这样不好,尽量设密码,还有账户最好不要用root)。
- < 后面是你的数据库脚本的路径。
如果没报错就代表成功了。
八、其他补充
8.1 关于请求PHP文件报500的错误
如果php文件里面报错,默认情况浏览器会反馈500错误,看不到错误信息。这里给大家一个设置方式,使浏览器可以返回错误信息。
输入cd /etc/php5/apache2
,输入ls
可以看到php.ini
文件,使用vi php.ini
打开该文件并找到display_errors = Off
将其改为On
,之后重启Apache服务器。这样我们就可以看到报错信息了。
8.2 常用的命令
mysql -V
查看mysql版本php -v
查看php版本php -m
查看php扩展apache2 -v
查看Apache版本
8.3 服务器ip绑定到域名
域名楼主我买的阿里的域名,这个不复杂,大家到阿里购买即可,操作都非常简单。
如有错误请大家多多指正,最后上一张效果图,仿魅族的手机商城。