LNMP環(huán)境介紹
LNMP代表的就是:Linux系統(tǒng)下Nginx+MySQL+PHP這種網(wǎng)站服務器架構充易。
這四種軟件均為免費開源軟件盹靴,組合到一起瑞妇,成為一個免費、高效改备、擴展性強的網(wǎng)站服務系統(tǒng)蔓倍。
Nginx是一個高性能的HTTP和反向代理服務器偶翅,也是一個IMAP/POP3/SMTP代理服務器。
作為 Web 服務器:相比 Apache母剥,Nginx 使用更少的資源,支持更多的并發(fā)連接习霹,體現(xiàn)更高的效率炫隶。
安裝nginx服務器
注:
我的ecs上選擇的是Ubuntu16,64位的操作系統(tǒng)
- 更新包列表
sudo apt-get update
- 安裝nginx
sudo apt-get install nginx
-
啟動nginx服務
sudo service nginx start
在瀏覽器輸入公網(wǎng)ip爸吮,可以看到nginx的歡迎界面
安裝mysql
- 安裝mysql服務和客戶端
sudo apt-get install mysql-server mysql-client -
安裝好后運行
mysql -u root -p
出現(xiàn)如下界面形娇,成功
安裝PHP
- 安裝php
sudo apt install php7.0 php7.0-fpm php7.0-mcrypt
-
配置php
vim /etc/php/7.0/fpm/php.ini
通過輸入/cgi.fix_pathinfo=1來快速查找cgi.fix_pathinfo選項并將它前面的“;”去掉桐早,值改為0
- 啟用php7.0-mcrypt
sudo phpenmod mcrypt - 重啟php7.0-fpm
sudo service php7.0-fpm restart
安裝composer
- composer介紹
簡單來說哄酝,Composer 是一個新的安裝包管理工具祷膳,服務于 PHP 生態(tài)系統(tǒng)。它實際上包含了兩個部分:Composer 和 Packagist搀军。 - 安裝composer
方法一
- 依次執(zhí)行以下三條命令
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" #下載安裝腳本 - composer-setup.php - 到當前目錄
php composer-setup.php #執(zhí)行安裝過程
php -r "unlink('composer-setup.php');" #刪除安裝腳本
- 全局安裝
全局安裝是將 Composer 安裝到系統(tǒng)環(huán)境變量 PATH 所包含的路徑下面罩句,然后就能夠在命令行窗口中直接執(zhí)行 composer 命令了敛摘。
方法二
- 去以下網(wǎng)址下載最新版composer.phar ,并上傳到服務器
- 添加執(zhí)行權限
chmod a+x composer.phar - 全局安裝
sudo mv composer.phar /usr/local/bin/composer
- 查看是否安裝與設置成功
composer -version
注:
這里報了一個警告:Do not run Composer as root/super user! See https://getcomposer.org/root for details
意思是叫你不要用root用戶執(zhí)行composer相關命令。這是出于對安全的考慮拖叙。
解決:
切換到非root用戶執(zhí)行composer命令薯鳍。 - 配置 composer 使用國內(nèi)源,提升速度
composer config -g repo.packagist composer https://packagist.phpcomposer.com
在阿里云ECS上部署Laravel項目
-
配置nginx服務器
首先崩溪,對需要修改的nginx配置文件進行備份
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
然后修改nginx的配置文件
sudo vim /etc/nginx/sites-available/default
要修改的是server的部分
server {
listen 80 default_server;
listen [::]:80 default_server;root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; }}
修改以下部分:
root部分的修改
root /var/www/blog/public; # 這里的blog是你自己的laravel項目名稱
將nginx服務器的根目錄指向blog的public文件夾下斩松,Laravel項目的代碼將會放在/var/www/blog目錄下index部分的修改
index index.php index.html index.htm index.nginx-debian.html;
注意:將index.php排在最前面server_name部分的修改
server_name server_domain_or_IP;
其中惧盹,server_domain_or_IP是公網(wǎng)的iplocation部分的修改
location / {
try_files $uri $uri/ /index.php?$query_string;
}
- 最后
我們還需要配置一下Nginx,讓其執(zhí)行PHP文件粹断。同樣是在這個文件里嫡霞,在location下方添加下面的配置:
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
- 配置完之后重啟Nginx诊沪,使上面的配置項生效。
sudo service nginx restart
- Laravel項目遷移和創(chuàng)建
laravel項目創(chuàng)建
- 在/var/www目錄下晕粪,創(chuàng)建laravel 5.1項目渐裸, 若不指定版本,默認安裝最新版
composer create-project laravel/laravel --prefer-dist blog 5.1
其中 blog是laravel項目的名稱
命令執(zhí)行完后,就會在/var/www下執(zhí)行生成一個blog文件夾剩膘。然后可以進行相關開發(fā)盆顾。
laravel項目遷移
- 將本地的laravel項目文件一起通過filezill等工具上傳到/var/www目錄下。這里的項目名稱應該和nginx配置文件的root部分的修改一致奈懒。
- 配置云服務器上的mysql數(shù)據(jù)和本地laravel項目數(shù)據(jù)一致宪巨。重建相關表和數(shù)據(jù)填寫捏卓。
如果執(zhí)行數(shù)據(jù)庫遷移的時候報以下錯誤: root@'localhost' 。。浴捆。
多半是root權限的問題
可以試試以下方法:
方法一
mysql中執(zhí)行如下命令:
grant all on . to root@'localhost' identified by password '' with grant option;
方法二
- laravel項目的權限更改
sudo chmod -R 777 /var/www/laravel項目名稱/storage #修改storage文件夾權限
sudo chown -R :項目所有者 /var/www/laravel #修改項目所有者權限选泻,根據(jù)需要修改
- 完了 就可以在瀏覽器中輸入網(wǎng)址美莫,既可以看到相應頁面。
參考:
開啟 Laravel 之旅以及環(huán)境配置
在阿里云ECS上搭建LEMP環(huán)境
nginx+MySQL+Laravel+PHP7+Redis+Node.js
從零開始部署一個 Laravel 站點
Packagist / Composer中國全量鏡像