ubuntu使用lnmp部署laravel

參考了兩篇文章,今天終于在阿里云上嘗試部署了laravel的環(huán)境
一步一步教你部署自己的Laravel應(yīng)用程序到服務(wù)器
從零開始部署 Laravel 項(xiàng)目


準(zhǔn)備工作

  • 在阿里云上購(gòu)買一個(gè)ECS實(shí)例,本ECS安裝環(huán)境為 ubuntu 14.04
  • 本文的使用的部署方式為 linux + mysql5.7 + nginx + php7.1

一.安裝 Php 7.1


首先用SSH連接到你的服務(wù)器,Windows 用戶建議使用 SecureCRT 來連接,這是一個(gè)收費(fèi)軟件,請(qǐng)自行搜索 XX版 。

登錄命令

ssh root@公網(wǎng)IP

1. 準(zhǔn)備

安裝 Php7.1 之前,要先安裝language-pack-en-base這個(gè)包,運(yùn)行:

sudo apt-get update
sudo apt-get install -y language-pack-en-base

這個(gè)包是為了解決系統(tǒng)不同語言之間可能發(fā)生的沖突,安裝之后可以減少許多因語言編碼帶來的問題。其中-y參數(shù)表明直接安裝,無需確認(rèn)。

安裝完成之后,運(yùn)行:

locale-gen en_US.UTF-8

設(shè)定語言編碼為UTF-8。

接下來安裝Git,Vim,運(yùn)行:

sudo apt-get install git vim

Git 是必備的,你可以很方便的使用Git來拉取遠(yuǎn)程倉(cāng)庫(kù)的代碼,vim是一款強(qiáng)大的編輯器,可以幫助你修改一些配置文件,如.env文件,如果的你的服務(wù)器已經(jīng)安裝了vim編輯器,可以忽略。

進(jìn)入正題,安裝Php7.1,本教程采用ppa方式安裝php7.1,運(yùn)行:

sudo apt-get install software-properties-common

software-properties-common是add-apt-repository所依賴的包,安裝成功后,運(yùn)行:

sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

來添加php7的ppa,注意LC_ALL=en_US.UTF-8參數(shù)告訴我們系統(tǒng)語言為UTF-8,如果沒有,可能會(huì)出現(xiàn)錯(cuò)誤,如阿里云的服務(wù)器。

安裝完成之后,運(yùn)行sudo apt-get update更新安裝包,把剛才添加的包拉取下來。
運(yùn)行apt-cache search php7.1搜索php7.1開頭的包檢驗(yàn)是否安裝成功,輸出如下:

root@demo:~# apt-cache search php7.1
php-yaml - YAML-1.1 parser and emitter for PHP
php-apcu - APC User Cache for PHP
php-ssh2 - Bindings for the libssh2 library
php-igbinary - igbinary PHP serializer
php-mailparse - Email message manipulation for PHP
php-libsodium - PHP wrapper for the Sodium cryptographic library
php-propro - propro module for PHP
php-raphf - raphf module for PHP

....................省略...........................

2. 安裝

安裝php7.1:

sudo apt-get -y install php7.1

安裝成功后運(yùn)行php -v查看是否安裝成功,成功的話會(huì)輸出類似如下信息:

PHP 7.1.0beta2 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.1.0beta2, Copyright (c) 1999-2016, by Zend Technologies

安裝php7.1-mysql,這是 Php7.1 與 mysql 的通信模塊:

sudo apt-get -y install php7.1-mysql

安裝 fpm,這是Nginx 用來解析php文件的:

sudo apt-get install php7.1-fpm

安裝其他必備模塊:

apt-get install php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring

至此與php相關(guān)的模塊安裝安裝完成。

二.安裝Mysql


直接安裝Mysql5.7吧,5.7 可以說是里程碑式的版本,提高了性能,并增加了很多新的特性。特別是新增加的json字段,用過之后你會(huì)愛上她的!!

1. 下載.deb

包到你的服務(wù)器:

wget http://dev.[MySQL](http://lib.csdn.net/base/mysql).com/get/mysql-apt-config_0.8.1-1_all.deb

2. 然后使用dpkg

命令添加Mysql的源:

sudo dpkg -i mysql-apt-config_0.8.1-1_all.deb

注意在添加源的時(shí)候,會(huì)叫你選擇安裝 MySQL 哪個(gè)應(yīng)用,這里選擇 Server 即可,再選擇 MySQL 5.7 后又會(huì)回到選擇應(yīng)用的那個(gè)界面,此時(shí)選擇 Apply 即可。

  1. 安裝
sudo apt-get update 
sudo apt-get install mysql-server

安裝完成之后運(yùn)行mysql -V
查看版本:
root@demo:~# mysql -Vmysql Ver 14.14 Distrib 5.7.15, for Linux (x86_64) using EditLine wrapper

  1. 注意
如果你已經(jīng)通過 ppa 的方式安裝了 MySQL 5.6,首先得去掉這個(gè)源。
sudo apt-add-repository --remove ppa:ondrej/mysql-5.6# 如果沒有 apt-add-repository 先安裝上# sudo apt-get install software-properties-common

然后其它和上面一樣,**但最后要運(yùn)行sudo mysql_upgrade -u root -p
升級(jí)數(shù)據(jù)庫(kù),

** 如果安裝mysql出現(xiàn)問題,需要卸載舊版mysql

sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor  
sudo rm /var/lib/mysql/ -R          //非常重要
sudo rm /etc/mysql/ -R               //非常重要

運(yùn)行sudo service mysql restart
重啟數(shù)據(jù)庫(kù),這樣你的數(shù)據(jù)會(huì)完好無缺(不出意外的話)**。

三,安裝Nginx

簡(jiǎn)單,運(yùn)行:

sudo apt-get -y install nginx

即可,然后運(yùn)行curl localhost
查看是否運(yùn)行成功。你也可以直接訪問你的IP地址,如下:

file
file

如果你打開瀏覽器發(fā)現(xiàn)看到的是Apache的話,可以禁用或刪除apache

通過下面的命令來刪除Apache

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

四.配置


1. 配置php:

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

vim命令輸入/fix_pathinfo搜索,將cgi.fix_pathinfo=1改為cgi.fix_pathinfo=0

Why ? 假設(shè)有如下的 URL:http://phpvim.net/foo.jpg,當(dāng)訪問 http://phpvim.net/foo.jpg/a.php 時(shí),foo.jpg 將會(huì)被執(zhí)行,如果 foo.jpg 是一個(gè)普通文件,那么 foo.jpg 的內(nèi)容會(huì)被直接顯示出來,但是如果把一段 php 代碼保存為 foo.jpg,那么問題就來了,這段代碼就會(huì)被直接執(zhí)行。這對(duì)一個(gè) Web 應(yīng)用來說,所造成的后果無疑是毀滅性的。具體參看:http://www.cnblogs.com/buffer/archive/2011/07/24/2115552.html

2. 編輯fpm的配置文件:

運(yùn)行:

sudo vim /etc/php/7.1/fpm/pool.d/www.conf

找到listen = /run/php/php7.1-fpm.sock修改為listen = /var/run/php/php7.1-fpm.sock。當(dāng)然,你也可以不修改,但必須前后一致,后面會(huì)用到這個(gè)配置。

file
file

3. 配置Nginx:

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

主要是配置server這一部分,最終配置如下:

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
        root /var/www/your-laravelproject-name/public;
        index index.php index.html index.htm;
        # Make site accessible from http://localhost/
        server_name lufficc.com www.lufficc.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.php?$query_string;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

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

解釋:

  • root:是你的項(xiàng)目的public目錄,也就是網(wǎng)站的入口
  • index:添加了,index.php,告訴Nginx先解析index.php文件
  • server_name:你的域名,沒有的話填寫localhost
  • location / try_files修改為了try_files $uri $uri/ /index.php?$query_string;
  • location ~ .php$部分告訴Nginx怎么解析Php,原封不動(dòng)復(fù)制即可,但注意:fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;的目錄要和fpm的配置文件中的listen一致。

4. 創(chuàng)建網(wǎng)站目錄,Laravel項(xiàng)目:

如果你還沒有/var/www目錄,運(yùn)行mkdir /var/www,然后將Nginx的用戶名和用戶組www-data分配給它:

sudo chown -R www-data:www-data   項(xiàng)目路徑

然后進(jìn)入到/var/www/目錄,cd /var/www/。這個(gè)www目錄就是放置你的網(wǎng)站文件的目錄(可以多個(gè))。

這里創(chuàng)建Laravel項(xiàng)目可以使用git 把已有的項(xiàng)目拉下來或使用 composer 來新建

1. git方式,假設(shè)項(xiàng)目名稱為laraveldemo

首先cd到 /var/www/ 目錄

git clone  代碼倉(cāng)庫(kù)路徑

再次給予目錄權(quán)限,運(yùn)行(在/var/www/laraveldemo下面):

sudo chmod -R 775 storage/
sudo chown -R www-data:www-data /var/www/laraveldemo

注:上面這一步十分重要
記得修改前面步驟的nginx配置的root 位置 為
root /var/www/laraveldemo/public;

最后??!重啟nginx,fpm,訪問你的ip地址,不出意外,安裝成功,部署完成!

sudo service nginx restart
sudo service php7.1-fpm restart

2. composer方式

安裝 composer

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

由于被墻的原因,第一條指令通常會(huì)失敗,可以直接在composer官網(wǎng)下載composer.phar壓縮包,然后再移動(dòng)到 /usr/local/bin/composer

如果發(fā)現(xiàn)composer指令提示權(quán)限問題無法使用,可以增加權(quán)限

 chmod +x  composer.phar

安裝完 composer后可以使用 composer來安裝larvavel項(xiàng)目

在使用 composer來安裝larvavel項(xiàng)目前,你必須確認(rèn)你的ubuntu系統(tǒng)安裝了zip和uzip包,如果木有,則需要 先安裝zip和uzip

apt-get install zip unzip

使用 composer來安裝larvavel項(xiàng)目

cd /var/www/
composer create-project laravel/laravel laraveldemo --prefer-dist "5.1.*"

然后重復(fù) Git方式安裝 的 最后幾個(gè)步驟: 修改nginx配置文件 -> 指定項(xiàng)目用戶與組,修改權(quán)限

至此,本教程基本結(jié)束

node.js安裝


如果有些庫(kù)需要用到node.js,可自行安裝
參考ubuntu安裝node.js

方式一 apt-get

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm

方式二 添加ppa源方式安裝

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

For the older LTS (the 4.x branch), use:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

For the currently active release (the 7.x branch), use:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

The PPA will be added to your configuration and your local package cache will be updated automatically. After running the setup script from nodesource, you can install the Node.js package in the same way that you did above:

sudo apt-get install nodejs

The nodejs package contains the nodejs binary as well as npm, so you don't need to install npm separately. However, in order for some npm packages to work (such as those that require building from source), you will need to install the build-essentials package:

sudo apt-get install build-essential

yarn安裝


參考
一個(gè)替代npm包管理器方案的選擇

你需要先配置倉(cāng)庫(kù):

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容