1. 程式人生 > >虛擬主機如何配置thinkphp5專案上線

虛擬主機如何配置thinkphp5專案上線

tp5.0預設的應用入口檔案位於public/index.php,內容如下:

 

1.將public下的入口檔案index.php移到根目錄,修改如下

<?php
// [ 應用入口檔案 ]
// 定義應用目錄
define('APP_PATH', __DIR__ . './application/');
// 載入框架引導檔案
require __DIR__ . './thinkphp/start.php';

2.同時將public/目錄下的檔案 .htaccess 隨index.php移到根目錄

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

安全性!

因為你將入口檔案移到了跟目錄,框架下的所有目錄已經暴露了。

如果apache伺服器沒處理。那就可以直接訪問重要檔案。

不管他有沒有做處理,直接跟目錄下的每個目錄都來個.htaccess。然後寫入deny from all。

?

1

deny from all

好了。

 

解決:css、js、圖片等靜態資源404了。

因為移出了public目錄,所以檔案找不到了。

需要替換全部目錄路徑。

如果你是使用__PUBLIC__,__STATIC__,__CSS__,__JS__等來寫

那麼恭喜你,直接在配置改view_replace_str就行了

?

1

2

3

4

5

6

'view_replace_str'  => [

 '__PUBLIC__' => '/public',

 '__STATIC__' => '/public/static',

 '__CSS__' => '/public/static',

 '__JS__'  => '/public/static',

],

如果不是,那就全部檢視檔案,所有用到用到路徑的地方全盤替換目錄

?

1

/public/static

特別容易忽略的地方是css裡面的background路徑,和自定義上傳路徑,請注意。

 

Linux下的檔案路徑大小寫敏感。

例如你的:

控制器方法名是:public function userCenter()

對應檢視檔案是:userCenter.html,

那麼你訪問的時候發現檢視檔案找不到,報錯了。

解決辦法:

方法1、改模板檔名全為小寫;

方法2、$this->fetch('模板檔名');

方法3、$this->fetch(__FUNCTION__),但要求檢視檔名要跟方法名一樣。

測試下網站所有功能,ok沒問題,部署配置完畢。

3.關於安全問題。和引入靜態資源js,css等。參考下方

 

thinkphp5整合H-ui後臺(一)開發環境搭建與公共模板設定 https://blog.csdn.net/timbrown1119/article/details/79716081

網路參考文件:http://www.php.cn/php-weizijiaocheng-382873.html

https://www.jb51.net/article/131121.htm

2.官方參考文件-關於線上生產環境部署 https://www.kancloud.cn/manual/thinkphp5/129746