框架及软件包
项目代码用的开发框架是
ThinkCMF 5.1.1
。
软件用的是LNPM
组合。即::Linux + Apache + MySQL+ PHP。对应的版本是系统:CentOS Linux 7.9.2009 (Core)
、Apache 2.4
、MySQL 5.5
、PHP 7.0
。
部署步骤
步骤一:购买阿里云云服务器ECS
步骤二:修改实例密码(方便记住)
步骤三:开放8888端口、80端口、21端口、 39000到40000端口 、3306端口
8888
打开宝塔可视化界面会用到,
80
打开自己的网站会用到
21
端口上传文件会用到
39000/40000
是被动端口的范围,选择被动模式会用到
3306
端口连接数据库会用到
步骤四:百度搜索下载PuTTY
,然后输入公网IP,点击Open之后,会打开终端,输入步骤二的用户名和密码
root 13xxxxxxZb
-
公网IP
步骤五:安装宝塔
终端输入yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
安装宝塔,会有YES、Y的确认操作
- 记得保存安装宝塔后生成的用户名和密码
Bt-Panel: http://121.199.57.232:8888
username: lzqimnfu
password: xxxx
步骤六:在浏览器输入生成的http://121.199.57.232:8888
,然后进入宝塔后台即可,接下来宝塔会弹出来一个框,会让我们选择LAMP
还是 LNMP
,这里我选择的是LAMP
。
步骤七:添加网站站点
步骤八:上一个步骤,接着会在文件
导航菜单中生成如下文件夹
默认该文件夹会有如下文件
浏览器打开
http://121.199.57.232/index.html
打开试一下(默认是80端口,上面的步骤开放了这个端口,所以能正常打开这个网站,如果不开放,输入这个链接是打不开网站的)然后将本地的一个margin.html拖动到该文件夹内,最后在浏览器输入http://121.199.57.232/margin.html
,发现也能正常打开
步骤九:由于我们是要将thinkphp项目放到服务器上,所以步骤八,我们先将www---wwwroot---121.199.57.232
下的文件全部删除,将php的代码传上去。这里我们使用ftp将代码传上去。
步骤十:在宝塔中添加FTP账户
- 添加成功后,后续登录该ftp账户向服务器传文件的时候,会将文件传输到
/www/wwwroot/121.199.57.232/
目录下。
-
创建成功后的效果
步骤十一:百度搜索下载FileZilla,并用宝塔中生成的ftp的相关信息进行登录连接,最后将你的php项目整体传输到/www/wwwroot/121.199.57.232/
即可。
- 注意如果连接不上ftp,可以试试下面的四张截图的步骤:将ForcePassiveIP的
#
删除掉,然后将默认的192.168.0.1
改成121.199.57.232(公网ip)
步骤十二:创建输入库,导入sql文件
再修改php项目的database.php
文件中的数据库相关的参数,就是该步骤生成的数据库名,用户名,密码。
步骤十三【重】:将宝塔面板创建的数据库,使用navicat软件连接该数据库
- 首先宝塔和阿里云后台都要开放3306端口,由于上面的步骤三已经在阿里云开放了3306端口,所以本步骤只需要宝塔的
安全
tab下,开放3306端口
步骤十四:安装php
我选择的是PHP-7.0, 不过我的项目框架ThinkCMF 5.1.1推荐的的是7.1,所以最好是按照框架的要求来选则php版本。
步骤十五:安装一键部署,注意要将步骤七:添加网站站点
添加的站点删除掉。因为用了同一个站点121.199.57.232
.
步骤十六:浏览器输入http://121.199.57.232/
,出现如下界面说明部署成功了
步骤十七(重点):访问正式环境下的php接口http://121.199.57.232/api/app/public/get_dy_real_playurl
,提示找不到控制器,但是测试服务器正常,如下图所示。
-
正式环境报错
-
测试环境正常
步骤十八(重点):针对上面的问题,进入到宝塔后台,找到伪静态,然后,在当前下拉框选项中将以下内容复制到输入框中,然后保存即可。
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^api/?(.*)$ api.php?s=$1 [QSA,PT,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>
PS:尝试过选择thinkphp这种做法,发现不行
步骤十九:(以上步骤如果能正常访问接口的话,可以不执行如下操作,每操作一步可以访问步骤十七的接口看看能否拿到数据)
- 操作1:将步骤十一传输的php项目全部删除,然后重新上传(试过了,执行该操作就可以成功拿到步骤十七访问接口的数据)。
- 操作2:将如上的代码复制到你的php项目的
public
目录下的.htaccess
(apache重写文件)
- 操作3:修改php项目的
public
目录下的.user.ini
里面的内容为:
open_basedir=/www/wwwroot/121.199.57.23/:/tmp/:/proc/
注意1:宝塔首页,点击重启服务器
后,可能会造成某些软件或者服务器没启动起来的问题。所以重启之后,最好看看软件
模块的某些软件是否关闭了(注意2和注意3就是重启服务器
造成的)。
注意2:当输入公网ip提示如下内容后,可能是因为Apache
服务器没开启。
- 可以在宝塔首页,找到
Apache
,然后开启即可。
注意3:使用FileZilla
连接ftp提示530 Login authentication failed
,可能是因为FTP
服务没开启。
- 可以在宝塔首页,找到
FTP
,然后开启即可。