首頁 >後端開發 >php教程 >雲端伺服器上部署Laravel的實例教程

雲端伺服器上部署Laravel的實例教程

零下一度
零下一度原創
2017-07-02 11:28:122060瀏覽

本篇文章主要介紹了詳解如何在雲端伺服器上部署Laravel,具有一定的參考價值,感興趣的小伙伴們可以參考一下

學習PHP和Laravel已經有一段時間了,但是所有的程式碼都是跑在本地的虛擬主機上的,於是去騰訊雲端申請了一個月的免費雲端主機,想把專案部署到雲端伺服器上。

不得不說這裡面的坑實在是有點多,讓我這個初次接觸伺服器的小白摸不清頭腦。在設定好伺服器之後,部署Laravel專案更是費力心思,於是乎想記錄部署Laravel專案的流程。

PS: Linux真是越用越有感覺的系統,回家在桌上型電腦上也要裝個Linux敲程式碼用。

環境簡介

在作業系統的選擇上,我選用了Linux ubuntu16.04的系統,使用的是LNMP的環境,即Linux + Nginx + Mysql + PHP的環境。

刪除Apache

sudo service apache2 stop
update-rc.d -f apache2 remove
sudo apt-get remove apache2

先用這三個指令來刪除Apaceh 之後更新一下套件清單

sudo apt-get update

1.安裝Nginx

sudo apt-get install nginx

在安裝完Nginx之後,要重啟nginx

sudo service nginx start

執行完之後,在瀏覽器輸入雲端伺服器分配給你的公網ip,就可以看到welcome to nginx的介面了

2. 安裝Mysql

sudo apt-get install mysql-server mysql-client

過程中會提示你設定Mysql的密碼,就跟平常的密碼設定一樣,一次輸入,一次確認。密碼確認完後基本上等一會兒就安裝好了。嘗試

mysql -u root -p

如果登入成功,那麼Mysql就正確安裝了。

3.安裝PHP

sudo apt-get install php5-fpm php5-cli php5-mcrypt

只有透過php5-fpm,PHP在Nginx下才能正常運行,遂,安裝之。

至於php5-mcrypt,有些PHP框架會依賴這個,例如Laravel就是,所以也把它裝上了。

題外話,這裡的php5我自己在部署時安裝了php7 如果想嘗試的也可以試試看。

4.設定PHP

sudo vim /etc/php5/fpm/php.ini

開啟PHP設定檔,找到cgi.fix_pathinfo選項,去掉它前面的註解分號;,然後將它的值設為0,如下

cgi.fix_pathinfo=0

5.啟用php5-mcrypt:

sudo php5enmod mcrypt

6.重啟php5-fpm:

sudo service php5-fpm restart

在搭建完LEMP環境之後,首先要明確兩個重要目錄

Nginx的預設root資料夾

/usr/ share/nginx/html

Nginx的伺服器設定檔所在目錄

/etc/nginx/sites-available/

上面兩個目錄記住就好,很常用,先擺出來

#下面一步一步在雲端伺服器上部署Laravel

#1.建立網站的根目錄

sudo mkdir -p /var/www

#2.設定nginx伺服器

sudo vim /etc/nginx/sites-available/default

開啟nginx的配置文件之後,找到server這一塊,大概是長這個樣子的

server {
  listen 80 default_server;
  listen [::]:80 default_server ipv6only=on;

  root /usr/share/nginx/html;
  index index.html index.htm;

  server_name localhost;

  location / {
    try_files $uri $uri/ =404;
  }
}

其中root,index ,server_name和location這幾行需要稍微修改一下

root修改

#
root /var/www/laravel/public;

這裡就是將nginx伺服器的根目錄指向Laravel的public資料夾下,後續的Laravel專案的程式碼我們會放在我們之前建立的/var/www/laravel目錄下

index修改

index index.php index.html index.htm;

這裡要注意的是,將index.php排在最前面

server_name修改

server_name server_domain_or_IP;

將server_domain_or_IP修改為你的公網IP

location修改

location / {
  try_files $uri $uri/ /index.php?$query_string;
}

修改完是這樣的:

server {
 listen 80 default_server;
 listen [::]:80 default_server ipv6only=on;

 root /var/www/laravel/public;
 index index.php index.html index.htm;

 server_name server_domain_or_IP;

 location / {
   try_files $uri $uri/ /index.php?$query_string;
 }
}

最後我們還需要設定一下Nginx,讓其執行PHP檔。同樣是在這個檔案裡,在location下方加入下面的設定:

server {
 listen 80 default_server;
 listen [::]:80 default_server ipv6only=on;

 root /var/www/laravel/public;
 index index.php index.html index.htm;

 server_name server_domain_or_IP;

 location / {
  try_files $uri $uri/ /index.php?$query_string;
 }

 location ~ \.php$ {
  try_files $uri /index.php =404;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
 }
}

注意,最下面的location ~ \.php$是自己加上去的:

配置完之後重啟Nginx,使上面的設定項目生效。

sudo service nginx restart

3.建立Laravel專案

在設定nginx後,怎麼取得Laravel的專案程式碼呢?有以下幾種方法:

(1).直接composer安裝

直接透過composer來安裝,你可以在伺服器上執行

cd ~
curl -sS getcomposer.org/installer | php

上面指令會安裝composer

composer全域使用:

sudo mv composer.phar /usr/local/bin/composer

然後在/var/www目錄下直接執行

sudo composer create-project laravel/laravel laravel

因為我們之前建立/var/www目錄,你可以直接cd /var /www然後執行上面的命令。然後坐等安裝完成。

(2).直接上傳程式碼

使用下面指令上傳

scp -r laravel root@your_IP:

然後在伺服器上將laravel移到/var/www目錄下

sudo mv laravel/ /var/www

(3).使用Git和Coding平台

#個人比較喜歡使用git來上傳程式碼,可以很方便的更新程式碼和進行回滾,一旦版本更新出Bug我可以藉助Git的強大版本管理能力來修復Bug。流程大概是這樣:

本地程式碼---->Github---->雲端伺服器

既然要使用git,那么先在云服务器上安装git:

sudo apt-get install git

安装完成就可以使用git了,然后在Github上创建一个私有项目laravel,里面包含所有该Laravel项目所需代码。

一旦本地代码都推送到Coding,然后在/var/www目录下直接使用

git clone your-project-git-link

your-project-git-link替换为你Github上的laravel项目地址

5.BINGO

在浏览器输入:server_domain_or_IP

至此,你可以在服务器上随意地用Laravel了,keep coding!

以上是雲端伺服器上部署Laravel的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn