虚拟主机 thinkphp?thinkPHP

如何配置thinkphp的伪静态重写

满足thinkphp伪静态(url重写)条件:

1、服务器开启url_rewrite功能,linux空间的php虚拟主机只需要开启apache的mod_rewriet,如果是iis6.0就要安装ISAPI Rewrite模块,apache只要开启Mod_rewrite功能就可以了。无忧主机是linux系统的空间,开通空间默认支持。

2、 Linux空间编辑.htaccess文件,windows空间编辑httpd.ini文件。

thinkphp如何编写.htaccess文件?

无忧主机(www.51php.com)编写的thinkphp伪静态正则表达式.htaccess文件如下:

RewriteEngine on

RewriteCond%{REQUEST_FILENAME}!-d

RewriteCond%{REQUEST_FILENAME}!-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

请将上面正则表达式,保存为.htaccesss文件,并放到thinkphp项目入口文件同级目录下。并且修改数据库配置(config.php)文件使网站支持url重写功能,加入代码:define(‘URL_REWRITE’,2);

thinkphp5 虚拟主机怎么安装

归档安装:归档安装就是直接去www.thinkphp.cn下载thinkPHP5的完整压缩包解压到自己的相应目录中使用。这种方式非常简单,不会作为重点讲解方式。 

这里写图片描述

使用composer安装:这种方式是PHP发人员必须要掌握的方式。如果还没有接触过composer可以自行百度composer学习。 

在命令行输入:composer create-project topthink/think tp5—prefer-dist 

运行本命令后会在命令行当前目录下创建一个tp5的目录,里边就是我们的thinkphp项目,如果想放置在如果想放置在其他目录下可以先使用cd命令把命令行目录切换到你想放置项目的目录。再运行命令。例如我想将项目创建到/data/php中那么如下操作 

这里写图片描述

当然也可以再安装命令中使用绝对路径例如,这样试试吧,如果你还不明白的话,你可以在后盾人看看教材视频,多看看几遍,慢慢的不就会了,如果嫌弃麻烦,你可以直接去后盾网问问那些专家讲师,他们很乐意帮你的,希望能帮到你,给个采纳吧谢谢,

thinkphp怎么部署(thinkphp5部署)

前端vue与后端Thinkphp在服务器的部署

vue在服务端部署时,我们都知道通过npmrunbuild指令打包好的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/文件夹下,运行可浏览,当路径改变时,刷新会出现404错误。此时dist文件下创建一个.htaccess文件,当路径不存在时,路径指向能解决此问题。

??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('',{user:'',password:''})。

(可在webpack.base.conf.js文件下可定义接口:)

二、同域

后端配置同上,公共配置器中的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:''})

转自:

thinkphp怎么部署到ubuntu

1、开启服务

部分必需使用服务没有默认开启,必需开启后才能正常使用Thinkphpsae引擎,使网站正常工作。必需服务:MySql服务,用于mysql数据库存储数据、Strorage服务,用于存储上传文件销肆、Memcache服务,用于存储Thinkphp缓存、KVDB,用于存储键值数据。根据网站需要开启相关服务,以上为常见的sae服务。

2、缓存清除

如果开启了调试输出trace,然后关闭了,但是网页还是显示trace信息,需要把网站的缓存数据删除后生效,点击Memcache服务,Memcache状态下选择清空即可,如果没有在sae上部署则是直接删除相关缓存文件。

3、原生sae服务

由于sae提供原生服务不能与其他环境兼容,为使网站移植性更好,应该尽量少直接使用原耐斗码生服务,可以选择使用Thinkphp中相应的方法来实现。sae禁止本地IO,所有直接操作本地IO的函数都失效,需要使用sae其他服务来实现,这点一定要注意。

4、代码上传

可以直接上传代码包到sae上,可以使用svn来上传代码

5、屏蔽index.php

在代码根目录下的config.yaml中加入以下代码即可

handle:

-rewrite:if(!is_dir()!is_file()path~"^(.*)$")goto"index.php/$1"呵呵以后毕竟是电脑的时代,可以自己看一下php语言编程一类的知识昌哪,以后总会有用的,我天天晚上去后盾人看视频,我觉得不错的。

如何在lnmp上部署Thinkphp

ThinkPHP的四种URL模式:0(普通迅亩模式);1(PATHINFO模式);2(REWRITE模式);3(兼容模式)

nginx需要PATHINFO模式,但需要更改nginx配置文件让其支持PATHINFO模式。

系统环境:

系统:CentOS-6.4-x86_64

web服务器:nginx1.2.7

PHP版本:PHP5.3.17

数据库版本:MySQL5.5.28

一、安装LNMP1.0一键安装包:

按照以上版本安装环境

二、修改配置文件

1.修改php配置文件php.ini,将其中cgi.fix_pathinfo=0,值改为1

重启php-fpm

2.ssh里执行:

cat拍昌樱/usr/local/nginx/conf/pathinfo.conf'EOF'

set$real_script_name$fastcgi_script_name;

if($fastcgi_script_name~"(.+?\.php)(/.*)"){

set$real_script_name$1;

set$path_info$2;

}

fastcgi_paramSCRIPT_FILENAME$document_root$real_script_name;

fastcgi_paramSCRIPT_NAME$real_script_name;

fastcgi_paramPATH_INFO$path_info;

EOF

再将虚拟主机配置文件里的location~.*\.(php|php5)?$替换为:location~.*\.php

再在includefcgi.conf;下面添加一行includepathinfo.conf;

重启nginx

完整的虚拟主机配置文件如下:

server

{

listen80;

server_name;

indexindex.htmlindex.htmindex.php;

root/home/wwwroot/lnmp;

location~.*\.php

{

try_files$uri=404;

fastcgi_passunix:/tmp/php-cgi.sock;

fastcgi_indexindex.php;

includefcgi.conf;

includepathinfo.conf;

}

location/status{

stub_statuson;

access_logoff;

}

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

{

expires30d;

}

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

{

expires12h;

}

access_log/袭丛home/wwwlogs/lnmp.loglnmp;

}

将ThinkPHP的URL模式设置成PATHINFO。

ThinkPHP就可以在nginx中运行了。

阅读剩余
THE END