小服务器选 ThinkPHP几好

小服务器选 ThinkPHP几好,第1张

小服务器选ThinkPHP5好

因为ThinkPHP5比之前的版本好用了很多,增加了很多的一些特性,它采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持一些小服务器使用,并针对API开发做了很多优化。所以小服务器选ThinkPHP5好。

vue在服务端部署时,我们都知道通过npm run build 指令打包好的dist文件,通过http指定是可以直接浏览的,Thinkphp通过域名指向index.php文件才可以浏览。要使前端正常调用后端数据,有两种方法:1、前端跨域调用后端数据,2、前端打包文件部署在后端的服务器文件夹下(同域)。

web服务器: apache

一、跨域

在服务器配置站点:

在路径/home/www/  下创建test项目文件夹,用来放项目文件。  

找到httpd-vhosts.conf文件配置站点  

前端站点:  

    ServerName test.test.com  

    DocumentRoot "/home/www/test/dist"    

    DirectoryIndex index.html  

后端站点:  

    ServerName test.testphp.com  

    DocumentRoot "/home/www/test/php"    

    DirectoryIndex index.php  

将前端打包好的dist文件放在/home/www/test/ 文件夹下,运行http://test.test.com可浏览,当路径改变时,刷新会出现404错误。此时dist文件下创建一个.htaccess文件,当路径不存在时,路径指向http://test.test.com/index.html能解决此问题。

  RewriteEngine On  

  RewriteBase /  

  RewriteRule ^index\.html$ - [L]  

  RewriteCond %{REQUEST_FILENAME} !-f  

  RewriteCond %{REQUEST_FILENAME} !-d  

  RewriteRule . /index.html [L]  

在/home/www/test文件夹下创建项目根目录php文件夹,将thinkphp文件放在php下。TP5的入口文件在public文件下,在这将public下的入口文件index.php挪到php文件夹下(个人习惯将入口文件放在项目根目录), 后端绑定Index模块。

前端调用后端接口,存在跨域,跨域解决方法有好几种,在这我将在后端php做配置,解决跨域问题,在公用控制器设置跨域配置:

class Common extends Controller  

{  

    public $param  

    // 设置跨域访问  

    public function _initialize()  

    {  

        parent::_initialize()  

        isset($_SERVER['HTTP_ORIGIN']) ? header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']) : ''  

        header('Access-Control-Allow-Credentials: true')  

        header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS')  

        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, authKey, sessionId")  

$param =  Request::instance()->param()  

$this->param = $param  

    }  

}  

前端调用登录接口: this.axios.post('http://test.testphp.com/index.php/base/login', {user: '', password: ''})。

(可在webpack.base.conf.js文件下可定义接口:http://test.testphp.com/index.php/)

二、同域

后端配置同上,公共配置器中的header配置注释。将前端的dist文件下的所有文件(包含.htaccess),放在php文件夹下。将后端index控制器的index方法的路径重定向php下的index.html文件:

namespace app\index\controller  

use think\Controller  

class Index extends Controller  

{  

    public function index() {  

$this->redirect('/index.html')  

    }  

}  

前端调用登录接口: this.axios.post('/index.php/base/login', {user: '', password: ''})

转自:https://blog.csdn.net/qq_35465132/article/details/78986675

1,切换到nginx的配置目录,找到nginx.conf文件

    cd   /usr/local/nginx/conf

    vim  nginx.conf

2,如果是单项目部署的话,只需要在nginx.conf文件里面加上以下

server{

        listen 80

        # 域名,本地测试可以使用127.0.0.1或localhost

        server_name www.zhangc.cn

        # php项目根目录

        root /home/data-www/blog

        location /{

                # 定义首页索引文件的名称

                index index.php index.html index.htm

                # 影藏入口文件

                if (-f $request_filename/index.html){

                            rewrite (.*) $1/index.html break

                }

                if (-f $request_filename/index.php){

                            rewrite (.*) $1/index.php

                }

                if (!-f $request_filename){

                            rewrite (.*) /index.php

                }

                try_files $uri $uri/ /index.php?$query_string

        }

        # PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI协议默认配置.

        # Fastcgi服务器和程序(PHP)沟通的协议

        .location ~ .*\.php${

                # 设置监听端口

                fastcgi_pass 127.0.0.1:9000

                # 设置nginx的默认首页文件

                fastcgi_index index.php

                # 设置脚本文件请求的路径

                fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name

                # 引入fastcgi的配置文件

                includefastcgi_params

                fastcgi_split_path_info ^(.+?\.php)(/.*)$

                set $path_info $fastcgi_path_info

                fastcgi_param PATH_INFO $path_info

                try_files $fastcgi_script_name =404

        }

}

3,如果多项目部署,就需要配置vhost

第一步:编辑nginx.conf文件,在最后加上     include    vhost/*.conf

第二步:进入vhost文件夹,创建    域名.conf    文件,如创建一个:quanma.meyat.com.conf

第三步:编辑quanma.meyat.com.conf文件,内容如下:

        server

        {

                listen 80

                server_name quanma.meyat.com

                index index.html index.htm index.php default.html default.htm default.php

                root /data/wwwroot/default/quanma/public/

                #error_page 404 /404.html

                location / {

                        index index.html index.php

                        if (-f $request_filename/index.html){

                                rewrite (.*) $1/index.html break

                        }

                        if (-f $request_filename/index.php){

                                rewrite (.*) $1/index.php

                        }

                        if (!-f $request_filename){

                                rewrite (.*) /index.php

                        }

                        try_files $uri $uri/ /index.php?$query_string

                }

                location ~ [^/]\.php(/|$)

                {

                        # comment try_files $uri =404to enable pathinfo

                        #try_files $uri =404

                        fastcgi_pass 127.0.0.1:9000

                        fastcgi_index index.php

                        include fastcgi_params

                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name

                        fastcgi_split_path_info ^(.+?\.php)(/.*)$

                        set $path_info $fastcgi_path_info

                        fastcgi_param PATH_INFO $path_info

                        try_files $fastcgi_script_name =404

                        #include fastcgi.conf

                        #include pathinfo.conf

            }

            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

            {

                    expires 30d

            }

            location ~ .*\.(js|css)?$

            {

                    expires 12h

            }

            # Disallow access to .ht, .svn, .bzr, .git, .hg, .cvs directories

            location ~ /\.(ht|svn|bzr|git|hg|cvs) {

                    deny all

            }

            #access_log /date/nginx/bmp.com.conf/access.log main

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/181129.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存