laravel+nginx項目部署

2020.3.21部署laravel項目至一個帶有yum的centOS 7 服務器的一些總結

 

1.更新yum
yum -y update

2.yum安裝git
2.1查看系統是否已經安裝git
git --version
2.2安裝git
yum install -y git

3.git下載項目

4.安裝nginx
4.1 安裝前準備(由於執行了1的更新,所以此步忽略)
yum install yum-utils
4.2 添加源(與判斷添加源)
yum search nginx
4.3 安裝Nginx
yum install nginx
4.4 查看是否安裝成功
安裝完後,rpm -qa | grep nginx 查看
啓動nginx:systemctl start nginx
查看nginx的狀態:systemctl status nginx


5.安裝php
5.1 安裝rpm包
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

5.2 查看
yum search php71w

5.3 安裝php以及擴展
yum install php71w php71w-fpm php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath

5.4 開啓服務
service php-fpm start
開機自啓動設置
chkconfig php-fpm on
檢查是否啓動 
ps aux |grep php-fpm

5.5 往php-fpm.conf配置中加入錯誤日誌及慢查詢日誌(慢查詢日誌配法寫在https://blog.csdn.net/a26637896/article/details/105003317

6.安裝vue
6.1 安裝node.js
6.1.1 創建並進入node目錄
mkdir /usr/local/node
cd /usr/local/node
6.1.2 下載並解壓
wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.xz
xz -d node-v8.11.2-linux-x64.tar.xz
tar -xvf node-v8.11.2-linux-x64.tar
6.1.3 創建軟連接
ln -s /usr/local/node/node-v8.11.2-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node/node-v8.11.2-linux-x64/bin/npm /usr/local/bin/npm
6.1.4 驗證是否安裝成功
node -v
npm -v


7.配置php
7.1 配置php的env
7.2 安裝composer
7.2.1 yum  -y install curl
7.2.2 通過curl下載安裝composer(可能存在網絡問題多試幾次、還有要先下載安裝php環境)
curl -sS https://getcomposer.org/installer | php
佈置到全局
sudo mv composer.phar /usr/local/bin/composer

7.3 更換composer源

華爲雲
composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php/

Packagist / Composer 中國全量鏡像

composer config -g repo.packagist composer https://packagist.phpcomposer.com

7.4 安裝php擴展
7.4.1 查看php擴展
/usr/bin/php -m
7.4.2 安裝我項目的composer update的前提擴展(不同項目前提擴展不一致)
yum install php71w-xml

7.5 composer install/update
(本人項目在這一步前要先安裝php的xml擴展,而且還得先連接好有一定數據結構的數據庫)

8 安裝swoole
8.1 查看swoole是否已安裝
php --ri swoole
8.2 安裝swoole
sudo wget https://github.com/swoole/swoole-src/archive/v4.0.4.zip
sudo unzip v4.0.4.zip
*** 如果沒有unzip,先安裝    sudo yum install unzip   再  sudo  unzip v4.0.4.zip

cd swoole-src-4.0.4    (進入解壓包)
sudo phpize
***如果沒有phpize  先安裝  sudo yum install php7.1-dev  再    sudo phpize

sudo ./configure
sudo make
sudo make install
8.3 安裝後再php中加入
安裝成功後,在php.ini中加入so
位置 XX/php.ini
添加配置   extension=swoole.so

8.4 驗證是否成功安裝且關聯php
php --ri swoole

9.配置nginx的conf 及 放置 ssl文件(我這邊ssl文件不要了)
9.1 配置laravels(看是否執行了8,沒動到8的部分忽略此項)
在   nginx.conf  配置中添加
upstream laravels {
    # By IP:Port
    server 127.0.0.1:5200 weight=5 max_fails=3 fail_timeout=30s;
}
在service配置中添加
location @laravels {
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_pass http://laravels;
    }
9.2 配置php(laravel)項目相關的nginx配置(這一塊不寫了,每個nginx項目都應有自己的nginx配置文件)
9.3 放置ssl文件及帶入
文件放入與配置文件一致的路徑,然後這邊的路徑就好寫了
在service配置中添加
ssl off;
ssl_certificate      XXX(路徑及文件名).pem;
ssl_certificate_key  XXX(路徑及文件名).key;

10.將nginx和php-fpm加入服務及開機自啓動(可選)

11.laravel項目相關一些注意事項
11.1 如果是本地調試,要記得開debug模式,調試完關閉
11.2 storage文件夾給予開放權限(777)
11.3 個人項目細節(要加上一些文件,最好是用sh,然後部署時跑一下自己所有的sh(原則上是越少越好))

11.4 注意看有沒有沒寫在配置裏的外部鏈接(比如鏈接其他服務器的數據庫、redis等),然後外部設置白名單導致新遷入的ip不在白名單中報錯

11.5如果是做多服務器負載均衡,需要注意的是laravel有關於暫存信息(比如session、cache等)的存放conf都要改成redis或者其他能被共享的暫存區,千萬不要放在本地file中,不然其他服務器會找不到,然後出現很有規律的異常,比如下圖所示(我這邊是三個服務器,可以發現每一組3箇中只有1個token驗證成功了):

12.數據庫導入sql(因爲mysql和redis是客戶裝在另一臺服務器上,因此項目服務器便不重複安裝了)

13.通過curl http://localhost調試本地是否正確,然後再去瀏覽器上訪問並繼續調試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章