1. 項目部署到伺服器的簡單操作
你是否遇到過,後台大佬就這樣把伺服器主機號碼,密碼和要放在哪的路徑丟給你,然後就沒有然後了。
我就遇到了。 一臉懵逼 ,一頓操作猛如虎,一看結果嚇到死。
1.首先,你得有個連接伺服器的東西
太高深那種就算了,容易操作的就行
我用的是 winSCP 這東西,感覺挺好用的
2. 剛剛接觸C#,新建成的項目如何部署到伺服器上
1 新建安裝部署項目
打開VS,點擊新建項目,選擇:其他項目類型->安裝與部署->安裝向導(安裝項目也一樣),然後點擊確定。
2 安裝向導
關閉後打開安裝向導,點擊下一步,或者直接點擊完成。
3 開始製作
安裝向導完成後即可進入項目文件夾:
雙擊"應用程序文件夾"在右邊的空白處右擊,選擇添加->文件,將你的做的應用程序的可執行文件和相應的類庫和組件添加進來。然後右擊你的文件,創建快捷方式,然後把快捷方式分別復制或剪切到左邊的"用戶的'程序'菜單"和"用戶桌面"中。這樣安裝程序安裝完成後會在 "開始->所有程序"和"桌面"上生成程序的快捷方式。也可以直接在"用戶的'程序'菜單"和"用戶桌面"相應目錄下新建快捷方式,然後定位到你的文件。
然後右擊左邊的"應用程序文件夾"打開屬性對話框:將屬性中的"DefaultLocation"的路徑中的"[Manufacturer]"去掉,不然的話做好的安裝程序默認安裝目錄會是"C:\Program Files\你的用戶名\安裝解決方案名稱";
然後打開解決方案管理器,右擊你的解決方案名稱,選擇屬性:打開的屬性頁中,選擇"系統必備", 在打開的系統必備頁中,在"指定系統必備安裝組件的位置"中選中如下選擇項:從與我的應用程序相同的位置下載系統必備組件。選上以後,在生成的安裝文件包中包含.NetFramework組件 。好了,這樣就完成99%了,然後點擊"生成->生成解決方案",哈,生成成功!
4 製作完成
現在打開解決方案文件夾下的Debug文件夾,就可以看到生成的安裝文件了。
5 關於"卸載"功能的添加
上面只介紹了簡單的生成安裝的方法,但是在VS2005下並沒有直接生成卸載程序的功能,所以我們只好用msi來實現了,操作方法如下:
在添加你的應用程序項目的時候,多添加一個msiexec.exe進去,這個文件在c:\windows\system32文件夾下,添加進去以後,為了讓他更像個卸載程序,把他的名字改成"Uninstall.exe",當然這個關系不大,改不改都行。
然後創建一個快捷方式,放到"開始-程序"中,接下來我們要做的就是查找這個部署項目的ProctCode了,滑鼠左鍵單擊項目名稱,記住是左鍵單擊,然後點擊屬性標簽,注意:不是右擊的屬性,這個區別很大,這時你就可以看到ProctCode了。
然後打開你創建的那個快捷方式的屬性對話框,在Aguements屬性中輸入"/x {ProctCode}",好了,然後點擊"生成解決方案"即可生成帶有卸載功能的安裝程序了。
我是從「上海全鼎軟體學院」畢業的————————
3. 新手如何在伺服器上用IIS部署一個網站
IIS和apche一樣是一種web伺服器,有了這種伺服器,我們的網站程序或其他web程序才可以正常運行。這里我就教新手在伺服器上用IIS部署一個網站的 方法 。
新手在伺服器上用IIS部署一個網站的方法
雙擊IIS圖標,運行IIS伺服器; 如下圖所示:
IIS打開後,選中網站,然後右鍵,在彈出的菜單中,選擇新建,然後選擇網站;如下圖所hi:
在彈出的窗口中,直接點擊下一步;如下圖所示:
輸入網站描述,並點擊下一步;如下圖所示:
默認,並點擊下一步;如下圖所示:
選擇網站存放路徑;如下圖所示:
寫入此項不選,其他全選,並點擊下一步;如下圖所示:
點擊完成;如下圖所示:
選中剛才新建的網站,並右鍵,選擇屬性選項;如下圖所示:
然後再彈出的選項卡里點擊:主目錄,然後再主目錄下的內容里,不選中寫入項,然後點擊應用;如下圖所示:
然後點擊文檔選項卡;如下圖所示:
然後點擊添加,如下圖所示:
輸入默認內容頁,並確定;如下圖所示:
選中添加好的內容頁(index.php或者index.html,index.asp,index.htm),點擊上移到第一位;如下圖所示:
上移到頂部後,點擊應用,最後點擊確定;如下圖所示:
最後選中該網站,點擊啟動服務按鈕。如下圖所示:
部署網站成功,然後大家就可以用剛才的域名(網址)訪問該網站了。
4. Thinkphp5項目在nginx伺服器部署
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的配置文件
include fastcgi_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 =404; to 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;
}
5. php項目如何部署在伺服器上
一、阿里ECS伺服器配置
1.因為線上已經有幾個站點了.所以要配置ngnix多站點
2.阿里雲ecs目錄結構,ngxin 在/etc/nginx/目錄下,配置的地方主要是nginx.config文件。或者在conf.d新建一個配置文件然後在include到nginx.config文件中
6. 使用Tomcat和Nginx部署前端項目
第一種方式,將我們的前端項目放置在webapps目錄下
進入tomcat安裝路徑下的conf目錄,在server.xml文件中<Host>標簽內配置虛擬路徑
簡單的解釋一下參數
path 對應用戶請求過來的url路徑, /static 匹配所有以 /static 開頭的請求
docBase 表示實際匹配到的路徑,這里可以使用絕對路徑,也可以使用相對路徑
reloadable 如果為true,則tomcat會自動檢測應用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化。(對於靜態資源來說,個人覺得這個配置用處不大)
總結起來就是,對於ip:8080/static的資源請求,會通過虛擬路徑匹配到我們實際的資源路徑music_client/static。
配置好後重啟,我們可以發現已經能夠看到我們的前端項目了
對於ROOT目錄下的資源,tomcat可以直接在根目錄下進行訪問。通過這種方式,我們可以讓項目的路徑去適配tomcat訪問的路徑。
但是這種方式不是特別推薦,當有多個項目在同一個tomcat伺服器上的時候,會不方便管理。
Nginx是當下熱門的伺服器,使用起來只需要進行簡單的配置即可。對於Nginx的安裝大家可以自行網路解決。
我們先進入到usr/local/nginx(具體以實際nginx安裝目錄為准)下的conf目錄,vim編輯nginx.xml。主要進行下面的配置
簡單的解釋一下
listen 表示nginx監聽的埠號,也就是你希望暴露哪個埠給用戶進行訪問
server_name 表示nginx接受請求的域名,一般默認localhost就行
location 模塊用於響應請求,這里的 / 表示匹配8082埠的所有請求
root 表示靜態資源/項目的路徑
index 表示默認的訪問資源
配置完成後,進入 sbin 目錄下,通過 ./nginx -t 檢查配置文件的格式是否正確
如正確 ./nginx 進行啟動或者 ./nginx -s reload 進行重啟
啟動完,我們就可以直接ip:8082直接訪問我們的前端項目啦
開啟nginx的反向代理也比較簡單,只需要加上proxy_pass 配置即可
出現這個問題的原因是: 在history模式下,只是動態的通過js操作window.history來改變瀏覽器地址欄里的路徑,並沒有發起http請求,但是當我們直接在瀏覽器輸入這個地址的時候,就會對伺服器發起http請求,但是這個目標在伺服器上又不存在,所以會返回404。
我們可以通過把所有請求都轉發到首頁上來解決這個問題。只需要在 Nignx 中的配置文件加入如下配置:
事實上,上面的解決方式也是Vue-Router官方推薦的解決方式( https://router.vuejs.org/zh/guide/essentials/history-mode.html#nginx )。
那上面的 try_files 為什麼能幫助我們解決這個問題呢?我們可以看一下這個屬性的作用
try_files :按選項所指定的順序去檢查用戶請求的文件是否存在,如果本地存在的話則返回該請求;不存在的話將該請求轉發到指定的其它路徑。也就是說,比如我們當前的前端項目部署在 /usr/myproj 目錄下,現在我們在瀏覽器發起 ip:port/testApi 請求,那麼此時 uri 為testApi,nginx會先去 $root/testApi (即/usr/local/myproj/testApi)找是否存在該靜態資源,若不存在,則繼續尋找 $root/testApi/index (即/usr/local/myproj/testApi/index)文件是否存在,如果還是不存在,則會把請求轉發到首頁。
而我們的項目本事就是由Vue-Cli創建的 單頁面應用 ,當index頁面接收到請求的時候,對應的history模式路由就可以發揮作用了,根據瀏覽器的路由跳轉到對應的頁面,這也就保證了我們的路由請求都能夠轉發給index頁面來進行處理。
這種問題一般是出現在伺服器一開始安裝Nginx的時候,沒有安裝SSL模塊。在不重裝Nignx的情況下,可以安裝如下方式進行操作:
執行如下命令
這一步只是以防萬一,可以省略
也可以直接執行 ./usr/local/nginx/sbin/nginx -t 看還會不會報錯就行
nginx報錯: [emerg] https protocol requires SSL support in /usr/local/nginx/conf/nginx.conf:50
7. 前端vue與後端Thinkphp在伺服器的部署
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
8. 如何將web項目部署到Linux伺服器的tomcat上
找到Project Structer
重新構建項目
找到重新構建的項目,也就是我們的war包地址
根據路徑找到war包,截圖如下:
右鍵CRT選項卡打開SFTP服務:
找到war包的本地地址
本地:
Linux:
輸入Put name.war
開始上傳war包:
啟動tomcat--- /usr/tomcat/apache-tomcat-7.0.61/bin/startup.sh
部署完畢