在當(dāng)前的網(wǎng)絡(luò)環(huán)境下,快速高效地部署 web 應(yīng)用是至關(guān)重要的一環(huán)。而 php 框架 laravel 作為當(dāng)下較為流行的 web 開發(fā)工具,其部署方式也備受關(guān)注。針對 laravel 項(xiàng)目的部署,目前較為主流的選擇是 lnmp(linux + nginx + mysql + php)架構(gòu),因?yàn)槠渚哂懈咝А⒎€(wěn)定、易于操作的特點(diǎn),越來越得到人們的青睞。
本文將重點(diǎn)介紹 LNMP 架構(gòu)下 Laravel 項(xiàng)目的部署及配置過程。以下為詳細(xì)步驟:
- 安裝 LNMP
LNMP 是一套基于開源軟件的 Web 服務(wù)器架構(gòu),由 Linux 操作系統(tǒng)、Nginx、MySQL 和 PHP 組合而成。部署 Laravel 項(xiàng)目前,需要先安裝好 LNMP 并確保其正常運(yùn)行。
推薦使用 yum 命令安裝 LNMP,具體操作如下:
$ sudo yum install nginx ? ?# 安裝 Nginx 服務(wù)器
$ sudo yum install mysql-server mysql ? ?# 安裝 MySQL 數(shù)據(jù)庫
$ sudo yum install php-fpm php-mysql php-gd php-mbstring ? ?# 安裝 PHP 及相關(guān)組件
- 配置 Nginx
Nginx 是一個(gè)開源、高性能的 HTTP 和反向代理服務(wù)器。Laravel 項(xiàng)目的部署需要配置 Nginx 服務(wù)器以確保其正確運(yùn)行。
打開 Nginx 的配置文件 /etc/nginx/nginx.conf 并增加以下內(nèi)容:
server {
listen 80; server_name yourdomain.com; # 請?zhí)鎿Q成您的域名或者 IP root /path/to/laravel/public; # 請?zhí)鎿Q成 Laravel 項(xiàng)目的 public 目錄的絕對路徑 index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
}
- 安裝 Composer
Composer 是 PHP 項(xiàng)目的依賴管理工具,Laravel 項(xiàng)目的部署需要用到它。
$ curl -sS https://getcomposer.org/installer | php ? ?# 下載并安裝 Composer
$ mv composer.phar /usr/local/bin/composer ? ?# 移動(dòng) Composer 可執(zhí)行文件到 /usr/local/bin 目錄
- 克隆 Laravel 項(xiàng)目
將 Laravel 項(xiàng)目克隆到服務(wù)器上,并安裝其依賴:
$ git clone https://github.com/laravel/laravel.git ? ?# 克隆 Laravel 項(xiàng)目
$ cd laravel/
$ composer install ? ?# 安裝 Laravel 項(xiàng)目依賴
- 配置 Laravel 項(xiàng)目
在 Laravel 項(xiàng)目目錄下,將 .env.example 文件重命名為 .env,并修改其中的配置信息:
APP_NAME=YourAppName
APP_ENV=production
APP_KEY=base64:XxxXxxXxxXxxXxxXxxXxxXxxXxxXxxXxxXxxXxxXxx=
APP_DEBUG=false
APP_URL=http://yourdomain.com ? ?# 請?zhí)鎿Q成您的域名或者 IP
…
DB_CONNECTION=mysql
DB_HOST=127.0.0.1 ? ?# 此處填寫您的 MySQL 數(shù)據(jù)庫地址
DB_PORT=3306
DB_DATABASE=your_database_name ? ?# 此處填寫您的數(shù)據(jù)庫名
DB_USERNAME=your_database_username ? ?# 此處填寫您的數(shù)據(jù)庫用戶名
DB_PASSWORD=your_database_password ? ?# 此處填寫您的數(shù)據(jù)庫密碼
- 運(yùn)行 Laravel 項(xiàng)目
通過以下命令即可在 Nginx 上啟動(dòng) Laravel 項(xiàng)目:
$ sudo systemctl start nginx ? ?# 啟動(dòng) Nginx 服務(wù)器
$ sudo systemctl start mysql ? ?# 啟動(dòng) MySQL 數(shù)據(jù)庫
$ sudo systemctl start php-fpm ? ?# 啟動(dòng) PHP-FPM 服務(wù)
訪問您的域名或者 IP,如果顯示 Laravel 的歡迎界面,則表明項(xiàng)目部署成功。
- 部署實(shí)踐中的一些問題與建議
- 如果您的服務(wù)器被設(shè)置了安全組規(guī)則,需要確保入站規(guī)則中的 TCP 端口 80(Nginx 默認(rèn)的 HTTP 端口)和 TCP 端口 22(SSH 連接端口)已經(jīng)開放。
-
在 Laravel 項(xiàng)目部署過程中,您可能會(huì)遇到文件讀寫權(quán)限的問題。可以用以下命令解決:
$ sudo chown -R nginx:nginx /path/to/laravel ? ?# 更改 Laravel 項(xiàng)目目錄的用戶權(quán)限
?$ sudo chmod -R 755 /path/to/laravel ? ?# 更改 Laravel 項(xiàng)目目錄的讀寫權(quán)限 - 建議將數(shù)據(jù)庫、服務(wù)器等敏感信息存儲(chǔ)在 .env 文件中,并將其加入 .gitignore 文件中,避免提交到代碼庫中而造成信息泄露。
總結(jié):LNMP 是一組高效穩(wěn)定的 Web 服務(wù)器架構(gòu),可用于 Laravel 項(xiàng)目的部署。本文介紹了配置 LNMP 架構(gòu)、安裝 Composer 工具、克隆并配置 Laravel 項(xiàng)目、啟動(dòng) Laravel 項(xiàng)目等步驟。部署實(shí)踐中可以遵循安全、快速、靈活的原則,解決項(xiàng)目中出現(xiàn)的問題。