多读多写多记录,多学多练多思考。----------- Banana.Banuit Gang(香柚帮)
购买了云服务器之后,想要正常的运行一个PHP或Java项目,首先第一步你得搭建一个运行这个项目的环境,就像你在电脑上进行本地开发一个PHP项目,你首先得安装Apache和MySQL,开发一个Java项目你得首先装一个JDK和Tomcat等等。
下边我们在CentOS7.2上边通过安装宝塔Linux面板来快速的搭建一个Linux+Nginx1.16+MySQL5.6+PHP7.2(LNMP)的环境,并在此环境下部署安装ThinkCMF5.1框架。
1. 登录腾讯云服务器控制台,登录ssh终端,输入命令安装宝塔Linux面板
Linux面板6.9.2安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
安装完成之后,会给你一个宝塔面板登录地址Bt-Panel,一个用户名username ,一个密码password,记录下来并打开浏览器登录宝塔面板。
2. 登录宝塔Linux面板搭建LNMP环境
首次登录宝塔面板,会让你选择搭建安装LNMP或者LAMP,我们选择安装LNMP,版本我选择的是Nginx1.16+MySQL5.6+PHP7.2,上传工具FTP和数据库工具phpMyAdmin4可以选择安装,我是在电脑上下载的WinSCP用来把代码上传到云服务器,用的Navicat来管理数据库。
当然后期如果你需要什么服务,可以去软件商店另行下载安装。
3. 上传代码到云服务器
环境安装好之后,利用WinSCP将下载好的ThinkCMF5.1框架上传到我们云服务器的/www/wwwroot/目录下
4. 代码上传完成之后 ,接下来就是在宝塔面板中创建网站和数据库。
创建完网站之后,由于是tp5项目,所以我们要配置一下网站目录下的运行目录
5. 接下来在浏览器输入域名或ip就可以进入ThinkCMF5.1的安装页面了
但是此时只有第一个页面能进,其他页面全部报404,只是因为需要我们的服务器需要设置rewrite伪静态,设置好之后就可以正常访问了
location / {
index index.php index.html index.htm;
#如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
if (!-e $request_filename)
{
#地址作为将参数rewrite到index.php上。
rewrite ^/(.*)$ /index.php?s=$1;
#若是子目录则使用下面这句,将subdir改成目录名称即可。
#rewrite ^/subdir/(.*)$ /subdir/index.php?s=$1;
}
}
location /api/ {
index index.php index.html index.htm;
#如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
if (!-e $request_filename)
{
#若是子目录则使用下面这句,将subdir改成目录名称即可。
rewrite ^/api/(.*)$ /api.php?s=$1;
}
}
location ~* ^\/upload\/.+\.(html|php)$ {
return 404;
}
location ~* ^\/plugins\/.+\.(html|php)$ {
return 404;
}
location ~* ^\/themes\/.+\.(html|php)$ {
return 404;
}
#proxy the php scripts to php-fpm
location ~ \.php {
include fastcgi_params;
##pathinfo支持start
#定义变量 $path_info ,用于存放pathinfo信息
set $path_info "";
#定义变量 $real_script_name,用于存放真实地址
set $real_script_name $fastcgi_script_name;
#如果地址与引号内的正则表达式匹配
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
#将文件地址赋值给变量 $real_script_name
set $real_script_name $1;
#将文件地址后的参数赋值给变量 $path_info
set $path_info $2;
}
#配置fastcgi的一些参数
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
###pathinfo支持end
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
# fastcgi_pass 如果是 sock形式,可能是下面的配置
# fastcgi_pass unix:/tmp/php-cgi.sock
}
进入安装下一页会显示你的环境配置版本等等,这里我们需要把data和upload文件夹设置权限为777,然后安装一下fileinfo扩展
继续下一步
我当初就是因为没分清本地数据库的含义,一直搞得这里数据库连接超时,我们现在相当于在远程服务器上边的MySQL数据库中创建数据库,所以相对于远程服务器来说,它属于远程服务器的本地数据库,所以数据库服务器ip应该写成127.0.0.1而非外网ip,一定要搞清楚概念,我一直以为127.0.0.1或者localhost仅仅属于电脑上安装的MySQL数据库,真是栽了大坑,搞了2,3天才解决。而我们用电脑上安装的Navicat连接云服务器上边的这个数据库的时候,数据库服务器必须写成外网ip,因为相对于我们电脑来说,它属于远程数据库。
然后继续点击下一步就可以安装完成了。
补充:电脑上的Navicat连接远程数据库
这里我们需要在云服务器新建一个安全组,放开数据库3306端口,然后再去宝塔面板的安全里边放行3306端口才能成功连接,否则连接不成功。
云服务器新建安全组可以参考:https://www.bt.cn/bbs/thread-19376-1-1.html
宝塔面板放行端口
然后再连接Navicat就没问题了。