国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

部署web項(xiàng)目的過程記錄,包括laravel,redis,mongodb,workerman的配置過

bluesky / 1393人閱讀

摘要:如果服務(wù)器中該賬號的鑰匙對已經(jīng)存在,并且已經(jīng)將放到該賬號的設(shè)置中,可以跳過這一步。如果不符合,需要根據(jù)提示安裝必要的擴(kuò)展。后續(xù)再進(jìn)行補(bǔ)充做守護(hù)隊(duì)列監(jiān)聽進(jìn)程和自動部署到服務(wù)器的說明。

系統(tǒng)LAMP基礎(chǔ)環(huán)境是已經(jīng)搭建好,記錄要將web項(xiàng)目部署到線上的過程如下,方便后續(xù)部署新項(xiàng)目時參考:

laravel項(xiàng)目
ubuntu 16.04
php 7.0

克隆項(xiàng)目到服務(wù)器 (1)我們使用 your@email.com的賬號來在服務(wù)器中g(shù)it下來項(xiàng)目

在gitlab中要部署的項(xiàng)目加上your@email.com成員。

(2)在服務(wù)器上創(chuàng)建your@email.com賬號ssh鑰匙對。

如果服務(wù)器中該賬號的鑰匙對已經(jīng)存在,并且已經(jīng)將ssh key放到該賬號的SSH Key gitlab設(shè)置中,可以跳過這一步。

$ sudo ssh-keygen -C  "your@email.com" -t rsa
// 直接按下一步,如果想要為秘鑰對更改名字,可以在這一步中做
$ sudo su
$ cd ~/.ssh
$ cat id_rsa.pub
// 復(fù)制公鑰將其填入到gitlab的SSH Key中
配置apache (3)進(jìn)入到/var/www目錄下,克隆項(xiàng)目,并更改相關(guān)的文件權(quán)限
$ cd /var/www
// 切回普通賬號
$ su ubuntu
$ sudo git clone git@yourprojecturl.com/yourproject.git 
$ cd yourproject
// laravel 需要更改storage文件夾的權(quán)限和bootstrap權(quán)限
$ sudo chmod -R 777 storage/ 
$ cd bootstrap/
$ sudo chmod -R 777 cache
(4)更改apache的DocumentRoot,將/var/www作為訪問目錄
$ cd /etc/apache2/sites-available
$ sudo vi 000-default.conf
// 修改 "DocumentRoot /var/www/html" 為 "DocumentRoot /var/www"
// 保存后重啟apache
$ sudo service apache2 restart
(5)接下來,在瀏覽器中輸入服務(wù)器ip地址,發(fā)現(xiàn)服務(wù)器可以顯示目錄文件,需要禁用目錄列表,并且允許url重定向
$ sudo vi /etc/apache2/sites-available/000-default.conf

//增加禁用目錄列表,并允許支持url rewirte,在DocumentRoot下增加如下配置

    Options +Includes -Indexes
    AllowOverride All
    Order Deny,Allow
    Allow from all
 

//開啟apache rewrite 模塊
$ sudo a2enmod rewrite

// 重啟apache
$ sudo service apache2 restart
安裝配置Redis (6)由于項(xiàng)目用到redis,需要安裝redis

由于使用redis做消息隊(duì)列,稍后需要開啟監(jiān)聽消息隊(duì)列,下面再做說明。

// 安裝redis
$ sudo apt-get install redis-server
// 查看是否安裝成功
$ ps aux | grep redis

//配置遠(yuǎn)程登錄,默認(rèn)redis是不允許遠(yuǎn)程登錄的,需要我們配置,
//但如果應(yīng)用服務(wù)器和redis安裝在同個服務(wù)器中,則不需要做這一步。

//編輯redis配置文件
$ sudo vi /etc/redis/redis.conf
//注釋掉下面這一行。
# bind 127.0.0.1

//配置密碼登錄

//編輯redis配置文件
$ sudo vi /etc/redis/redis.conf
//找到下面這一行并去除注釋
# requirepass foobared #未修改之前
//修改之后,123456是設(shè)置的redis密碼
requirepass 123456

//重啟redis server
sudo service redis-server restart
安裝配置mongodb (7)項(xiàng)目中使用了mongodb,需要安裝mongodb和mongo擴(kuò)展
// 導(dǎo)入 MongoDB public GPG Key
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

// Create a list file for MongoDB
$ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

//Reload local package database
$ sudo apt-get update

//Install the MongoDB packages
$ sudo apt-get install -y mongodb-org

該系統(tǒng)的ubuntu版本為16.04,其他版本的可以查看
https://docs.mongodb.com/manu...
中的其他配置方法

安裝完成后,mongodb的日志文件和配置文件分別在以下路徑中

/var/log/mongodb

/etc/mongod.conf

先用不驗(yàn)證賬號密碼的方式開啟mongodb,在mongodb中創(chuàng)建表和用戶

//查看是否安裝成功
$ mongod --version
//查詢是否啟動mongodb
$ ps aux | grep mongod
//沒有相應(yīng)的進(jìn)程,則啟動
$ sudo mongod --logpath=/var/log/mongodb/mongod.log --fork 

//如果啟動不成功,查看一下日志,發(fā)現(xiàn)提示exception in initAndListen: 29 Data directory /data/db not found.
//我們創(chuàng)建這個目錄
$ sudo mkdir -p /data/db
//再重新啟動mongo

我們需要創(chuàng)建相應(yīng)的數(shù)據(jù)庫數(shù)據(jù)表和用戶

//登錄mongodb
$ mongo 127.0.0.1:27017
//我們先在admin數(shù)據(jù)庫創(chuàng)建一個賬號
> use admin
//創(chuàng)建一個管理員賬號
> db.createUser({user:"admin",pwd:"123456","customData":{description:"管理員用戶"},roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
//可以用show users查看是否創(chuàng)建成功
> show users

//我們系統(tǒng)使用了yourdb數(shù)據(jù)庫,切換yourdb數(shù)據(jù)庫,為yourdb添加賬號
> use yourdb
> db.createUser({user:"youruser",pwd:"12345678","customData":{description:"管理員用戶"},roles:[{role:"dbOwner",db:"yourdb"}]})

//創(chuàng)建數(shù)據(jù)表(集合)
> db.createCollection("erp_records") 
//查看是否創(chuàng)建成功
> show collections

為了安全,我們要開啟mongodb用戶驗(yàn)證,綁定指定的ip,不允許所有ip連接

// 編輯mongodb配置文件
$ sudo vi /etc/mongod.conf
//將文件中的相應(yīng)內(nèi)容更改,121.232.33.33這個是你自己要綁定的ip
bindIp: [127.0.0.1,121.232.33.33]
authorization:enabled
//保存配置文件

//關(guān)閉mongod進(jìn)程,重新以驗(yàn)證的方式開啟
$ sudo killall -9 mongod
$ sudo mongod --logpath=/var/log/mongodb/mongod.log --auth --fork

//這時候我們再測試登錄
$ mongo 127.0.0.1:27017
> use yourdb
> show collections
// 如果提示沒有驗(yàn)證,那么證明已經(jīng)開啟了驗(yàn)證,那么驗(yàn)證之前設(shè)置的賬號密碼是否正確
> db.auth("youruser","12345678")
// 如果顯示1,代表驗(yàn)證通過
//退出登錄
> exit

接下來,我們就要安裝mongodb的php擴(kuò)展

//我們是服務(wù)器是php7,如果不確定可以裝什么擴(kuò)展,可以用以下命令查看
$ sudo apt-cache search php7
$ sudo apt-get install php-mongodb
//重啟apache2
$ sudo service apache2 restart
安裝配置workerman (8)項(xiàng)目有使用workerman,負(fù)責(zé)websocket連接監(jiān)聽推送消息。

該程序?qū)τ趐hp環(huán)境的要求是:

php cli >= 5.4,可以運(yùn)行命令 php -v查看版本

linux系統(tǒng)要求php安裝了posix和pcntl擴(kuò)展。

可以使用 curl -Ss http://www.workerman.net/chec... | php 來檢測當(dāng)前環(huán)境是否符合要求。如果不符合,需要根據(jù)提示安裝必要的擴(kuò)展。

如果支持更大的并發(fā)連接數(shù),建議安裝event擴(kuò)展或者libevent擴(kuò)展(二者作用相同,二選一即可),

我們的php版本為7.0,安裝event

//如果沒有pecl,需要先安裝
$ sudo apt-get install php-pear php7.0-dev libevent-dev
//提示ERROR: `phpize" failed
$ pecl install event

// 當(dāng)出現(xiàn)Include libevent OpenSSL support [yes] :時,輸入no

//切換到root用戶,添加event.so到php-cli的php-ini文件中。
$ sudo su

$ echo extension=event.so > /etc/php/7.0/cli/conf.d/event.ini

//切換回普通用戶,切換到要保存項(xiàng)目的目錄,clone web-msg-sender項(xiàng)目
$ su ubuntu

$ cd /var/www

$ git clone https://github.com/walkor/web-msg-sender.git

使用composer安裝,如果沒有安裝composer,請先安裝。

// 下載composer

$ curl -sS https://getcomposer.org/installer | php

// 設(shè)置全局

$ sudo mv composer.phar /usr/local/bin/composer

// 查看是否安裝成功,如果有版本信息顯示,則說明安裝成功

$ composer -v

// 更新一下

$ composer self-update

// 進(jìn)入到 web-msg-sender 項(xiàng)目中,使用composer進(jìn)行安裝

$ cd /var/www/web-msg-sender/

$ composer install

開啟服務(wù)器監(jiān)聽

進(jìn)入該項(xiàng)目文件,啟動服務(wù)(以守護(hù)進(jìn)程方式)

$ php start.php start -d

停止服務(wù)

$ php start.php stop

服務(wù)狀態(tài)

$ php start.php status

==注意要將前端websoket的連接和應(yīng)用程序curl workerman監(jiān)聽的服務(wù)的連接ip
更改為對應(yīng)workerman所在的服務(wù)器ip中==

開啟隊(duì)列監(jiān)聽 (9)開啟消息隊(duì)列監(jiān)聽

我們的隊(duì)列名稱為GetAllPlatformOrder

//進(jìn)入到項(xiàng)目下
$ cd /var/www/yourproject

$ php artisan queue:work --queue=GetAllPlatformOrder  --daemon

queue:work --daemon 只要運(yùn)行著,就能一直接受請求,不一樣的地方是在這個運(yùn)行模式下,當(dāng)新的請求到來的時候,不重新加載整個框架,而是直接 fire 動作。

但是并不能做后臺守護(hù)進(jìn)程,關(guān)閉終端進(jìn)程也會退出,需要再借助一些進(jìn)程控制工具,譬如Supervisor。

//如果沒有安裝supervisor,要先安裝,已經(jīng)安裝的跳過這一步
$ sudo apt-get install supervisor

$ cd /etc/supervisor/conf.d
//創(chuàng)建一個進(jìn)程配置文件
$ sudo vi laravel_queue_order.conf 

//內(nèi)容如下:
[program:laravel_queue_order]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/yourproject/artisan queue:work --queue=GetAllPlatformOrder --daemon
directory=/var/www/yourproject
autostart=true
autorestart=true
numprocs=4
stdout_logfile=/var/www/yourproject/storage/logs/laravel_redis_queue.log

//進(jìn)程數(shù)numprocs由自己確定


//開啟進(jìn)程
sudo service supervisor start
sudo supervisorctl update
sudo supervisorctl reread
sudo supervisorctl start laravel_queue_order

//可以使用htop查看進(jìn)程是否正確運(yùn)行中
$ htop
//如果有出現(xiàn)command為php /var/www/yourproject/artisan queue:work --queue=GetAllPlatformOrder --daemon的進(jìn)程,代表進(jìn)程啟動成功
上線數(shù)據(jù)庫 (10)數(shù)據(jù)庫更新到線上。

后續(xù)再進(jìn)行補(bǔ)充Supervisor做守護(hù)隊(duì)列監(jiān)聽進(jìn)程和git push自動部署到服務(wù)器的說明。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/25770.html

相關(guān)文章

  • 部署web項(xiàng)目記錄包括laravelredismongodbworkerman配置

    摘要:如果服務(wù)器中該賬號的鑰匙對已經(jīng)存在,并且已經(jīng)將放到該賬號的設(shè)置中,可以跳過這一步。如果不符合,需要根據(jù)提示安裝必要的擴(kuò)展。后續(xù)再進(jìn)行補(bǔ)充做守護(hù)隊(duì)列監(jiān)聽進(jìn)程和自動部署到服務(wù)器的說明。 系統(tǒng)LAMP基礎(chǔ)環(huán)境是已經(jīng)搭建好,記錄要將web項(xiàng)目部署到線上的過程如下,方便后續(xù)部署新項(xiàng)目時參考: laravel項(xiàng)目ubuntu 16.04php 7.0 克隆項(xiàng)目到服務(wù)器 (1)我們使用 your@e...

    xuexiangjys 評論0 收藏0
  • GatewayWorker/Workerman搭建Websocket微服務(wù)

    摘要:背景最近在一些項(xiàng)目需要用到實(shí)時推送給分組的用戶,前端需要傳輸給后端的信息比較少,通過多方考慮選擇了通過框架基于搭建微服務(wù)。擁有定時器異步客戶端異步異步異步異步消息隊(duì)列等眾多高性能組件。配合的定時器,也可以定時推送數(shù)據(jù)。 背景 最近在一些項(xiàng)目需要用到Websocket實(shí)時推送給分組的用戶,前端需要傳輸給后端的信息比較少,通過多方考慮選擇了通過GatewayWorker框架(基于Worke...

    QLQ 評論0 收藏0
  • PHP新手開發(fā)者路線建議

    摘要:年開發(fā)者應(yīng)該熟練使用,并且知道版本更新內(nèi)容。對開發(fā)和運(yùn)維人員來說,最希望的就是一次性創(chuàng)建或配置,可以在任意地方正常運(yùn)行。是標(biāo)準(zhǔn)規(guī)范,是開發(fā)的實(shí)踐標(biāo)準(zhǔn)。對開發(fā)者來說語言推薦和,全棧的選擇非常多,推薦熱門的 前言 在前天(2018-08-02)已經(jīng)發(fā)布了PHP 7.3.0.beta1 Released 如果你還沒有使用 PHP7 ,那真的很遺憾。2018年P(guān)HP開發(fā)者應(yīng)該熟練使用 PHP7...

    klinson 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<