本篇文章主要介紹了詳解如何在雲端伺服器上部署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中文網其他相關文章!