摘要:這兩天翻了翻之前的技術(shù)文檔,發(fā)現(xiàn)有一篇值得拿出來(lái)和大家分享如何給一臺(tái)全新的阿里云服務(wù)器,搭建環(huán)境來(lái)部署項(xiàng)目,項(xiàng)目等。
這兩天翻了翻之前的技術(shù)文檔,發(fā)現(xiàn)有一篇值得拿出來(lái)和大家分享:如何給一臺(tái)全新的阿里云服務(wù)器,搭建環(huán)境 —— 來(lái)部署 PHP 項(xiàng)目,Node.js 項(xiàng)目等。
讓我們開(kāi)始吧:
1. 利用 Docker 制作 Centos 服務(wù)器
2. 安裝 Nginx
3. 安裝 PHP 7
4. 安裝 composer
5. 安裝Node.js
6. 安裝 git 和 svn
因?yàn)槲易约簺](méi)有阿里云服務(wù)器,所以沒(méi)法在真實(shí)的服務(wù)器上搭建環(huán)境;但我們可以利用 Docker 來(lái)模擬。
首先需要一個(gè) systemd 整合的 Centos 鏡像。
Dockerfile 內(nèi)容如下所示:
FROM daocloud.io/centos:7 MAINTAINER "yemeishu"ENV container docker RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); rm -f /lib/systemd/system/multi-user.target.wants/*; rm -f /etc/systemd/system/*.wants/*; rm -f /lib/systemd/system/local-fs.target.wants/*; rm -f /lib/systemd/system/sockets.target.wants/*udev*; rm -f /lib/systemd/system/sockets.target.wants/*initctl*; rm -f /lib/systemd/system/basic.target.wants/*; rm -f /lib/systemd/system/anaconda.target.wants/*; VOLUME [ "/sys/fs/cgroup" ] CMD ["/usr/sbin/init"]
然后就可以啟動(dòng)容器了,但這里要避免「運(yùn)行Docker 使用systemctl報(bào)錯(cuò)」的問(wèn)題,解決方案是:掛載 /sys/fs/cgroup 目錄到容器的 /sys/fs/cgroup 目錄并配置只讀權(quán)限,但是docker run 命令只能使用-d參數(shù),不能使用-it參數(shù),使用-it參數(shù)仍然會(huì)卡死。
docker run -d -v /sys/fs/cgroup:/sys/fs/cgroup:ro local/centos7-systemd
參考: https://github.com/docker-library/docs/tree/master/centos
運(yùn)行容器:
當(dāng)我們運(yùn)行 vim 想打開(kāi)編輯某個(gè)文件時(shí),發(fā)現(xiàn) vim 并沒(méi)有安裝,這時(shí)候我們可以直接在容器中安裝,但為了模擬的更徹底,我們?cè)傩薷男薷?Dockerfile 文件,讓鏡像帶上 vim:
FROM daocloud.io/centos:7 MAINTAINER "yemeishu"ENV container docker RUN yum -y install vim-enhanced RUN yum -y install vim* RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); rm -f /lib/systemd/system/multi-user.target.wants/*; rm -f /etc/systemd/system/*.wants/*; rm -f /lib/systemd/system/local-fs.target.wants/*; rm -f /lib/systemd/system/sockets.target.wants/*udev*; rm -f /lib/systemd/system/sockets.target.wants/*initctl*; rm -f /lib/systemd/system/basic.target.wants/*; rm -f /lib/systemd/system/anaconda.target.wants/*; VOLUME [ "/sys/fs/cgroup" ] CMD ["/usr/sbin/init"]
制作鏡像,生成容器,運(yùn)行容器,驗(yàn)證 vim 是否安裝成功,直接看圖:
安裝工具有了 「centos 服務(wù)器」了,我們開(kāi)始配置 PHP (Laravel / Lumen) 環(huán)境了。
安裝 Nginx安裝 Nginx 之前,我們需要修改 yum 源鏡像,我們使用阿里云的,
首先安裝 wget:
yum install wget -y
# CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo # CentOS 6 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo # CentOS 7 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all yum -y install epel-release yum install nginx -y systemctl start nginx systemctl enable nginx // 開(kāi)機(jī)自啟動(dòng)安裝 PHP 7
添加源:
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
安裝:
yum install php70w -y
安裝常規(guī)需要使用的 php 插件:
yum install php70w-json php70w-xml php70w-mbstring php70w-mysqlnd php70w-fpm -y安裝 composer
Composer 是 PHP 的一個(gè)依賴管理工具。它允許你申明項(xiàng)目所依賴的代碼庫(kù),它會(huì)在你的項(xiàng)目中為你安裝他們。
Composer 不是一個(gè)包管理器。是的,它涉及 "packages" 和 "libraries",但它在每個(gè)項(xiàng)目的基礎(chǔ)上進(jìn)行管理,在你項(xiàng)目的某個(gè)目錄中(例如 vendor)進(jìn)行安裝。默認(rèn)情況下它不會(huì)在全局安裝任何東西。因此,這僅僅是一個(gè)依賴管理。這種想法并不新鮮,Composer 受到了 node"s npm 和 ruby"s bundler 的強(qiáng)烈啟發(fā)。而當(dāng)時(shí) PHP 下并沒(méi)有類似的工具。
Composer 將這樣為你解決問(wèn)題:
a) 你有一個(gè)項(xiàng)目依賴于若干個(gè)庫(kù)。
b) 其中一些庫(kù)依賴于其他庫(kù)。
c) 你聲明你所依賴的東西。
d) Composer 會(huì)找出哪個(gè)版本的包需要安裝,并安裝它們(將它們下載到你的項(xiàng)目中)。
參考:http://docs.phpcomposer.com/00-intro.html
1.使用 php 命令安裝
# 下載安裝腳本 - composer-setup.php - 到當(dāng)前目錄。 php -r "copy("https://install.phpcomposer.com/installer", "composer-setup.php");" # 執(zhí)行安裝過(guò)程。 php composer-setup.php # 刪除安裝腳本。 php -r "unlink("composer-setup.php");" # 打開(kāi)命令行窗口并執(zhí)行如下命令將前面下載的 composer.phar 文件移動(dòng)到 /usr/local/bin/ 目錄下面 mv composer.phar /usr/local/bin/composer
更多查看:https://getcomposer.org/download/
2.使用 Packagist / Composer 中國(guó)全量鏡像加速
修改 composer 的全局配置文件(推薦方式)
composer config -g repo.packagist composer https://packagist.phpcomposer.com
更多查看:https://pkg.phpcomposer.com/
3.并行 composer install,讓下載如有神助
composer global require hirak/prestissimo
4.實(shí)時(shí)更新
安裝 Node.js提示:不要忘了經(jīng)常執(zhí)行 composer selfupdate 以保持 Composer 一直是最新版本哦!
yum -y install nodejs npm --enablerepo=epel
安裝國(guó)內(nèi)鏡像:
npm install -g cnpm --registry=https://registry.npm.taobao.org
安裝 n 來(lái)管理和選擇nodejs版本 // 保持和現(xiàn)有服務(wù)器版本一致
cnpm install -g n
安裝最新的stable版:
n stable
或者安裝指定版本:如 n 0.8.20
安裝 git 和 svnyum -y install git yum -y install subversion測(cè)試
現(xiàn)在基礎(chǔ)的工具和環(huán)境已經(jīng)有了,那我們開(kāi)始試試效果,安裝一個(gè) Lumen 項(xiàng)目試試:
配置 nginx。在/etc/nginx/conf.d/ 路徑下創(chuàng)建 blog.conf
server { listen 80; server_name blog.xxx.com; #index index.php index.html; location / { root /www/html/blog/public; try_files $uri $uri/ /index.php?$query_string; index index.php index.html index.htm; } location ~ .php$ { #try_files $uri = 404; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/html/blog/public$fastcgi_script_name; include fastcgi_params; fastcgi_pass 127.0.0.1:9000; } }
啟動(dòng)php-fpm,然后利用 curl 命令訪問(wèn)試試:
可以正常打印出:Lumen (5.5.0) (Laravel Components 5.5.*),表示我們的 nginx 和 php-fpm 啟動(dòng)并配置成功了。
總結(jié)溫故而知新,本文繼續(xù)通過(guò)簡(jiǎn)單的學(xué)習(xí) docker 模擬 Centos 服務(wù)器來(lái)配置環(huán)境。
如果你有阿里云服務(wù)器或者騰訊云服務(wù)器,并且是 Centos 7 系統(tǒng)的,正常通過(guò)以上的步驟,安裝必要的工具,部署常規(guī)的 PHP 或者 Node.js 項(xiàng)目應(yīng)該問(wèn)題不大了。接下來(lái)就可以部署常規(guī)的運(yùn)營(yíng)工具和防護(hù)工具了。
下面羅列一些問(wèn)題和知識(shí)點(diǎn):
1. centos7 docker容器報(bào) docker Failed to get D-Bus connection 錯(cuò)誤
報(bào)這個(gè)錯(cuò)的原因是 dbus-daemon 沒(méi)能啟動(dòng)。systemctl 并不是不能使用。將 CMD 或者 entrypoint 設(shè)置為 /usr/sbin/init 即可。docker 容器會(huì)自動(dòng)將 dbus 等服務(wù)啟動(dòng)起來(lái)。如下:
docker run --privileged -ti --name test docker.io/centos:7 /usr/sbin/init
2. 報(bào)Error: xz compression not available 的解決方法
yum remove epel-release # Sometimes that is not enough, you need to remove the cache as well by: rm -rf /var/cache/yum/x86_64/6/epel # Then you can install the epel-release again yum -y install epel-release # yum clean all is doing great for cleaning the cache
3. FastCgi 與 php-fpm之間是個(gè)什么樣的關(guān)系?
可以詳細(xì)參考這篇帖子:https://segmentfault.com/q/1010000000256516
「完」
coding01 期待您關(guān)注
感謝您能看到這了
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25911.html
摘要:這兩天翻了翻之前的技術(shù)文檔,發(fā)現(xiàn)有一篇值得拿出來(lái)和大家分享如何給一臺(tái)全新的阿里云服務(wù)器,搭建環(huán)境來(lái)部署項(xiàng)目,項(xiàng)目等。 showImg(https://segmentfault.com/img/remote/1460000011106825); 這兩天翻了翻之前的技術(shù)文檔,發(fā)現(xiàn)有一篇值得拿出來(lái)和大家分享:如何給一臺(tái)全新的阿里云服務(wù)器,搭建環(huán)境 —— 來(lái)部署 PHP 項(xiàng)目,Node.js ...
摘要:簡(jiǎn)介操作系統(tǒng)網(wǎng)頁(yè)服務(wù)器數(shù)據(jù)庫(kù)管理系統(tǒng)腳本語(yǔ)言注以下開(kāi)始進(jìn)行的是分步安裝,如果你想一步安裝請(qǐng)?zhí)^(guò),拉到頁(yè)面底部,當(dāng)然你得首先安裝好自己的系統(tǒng)安裝服務(wù)器如果你自己裝過(guò)虛擬機(jī)或者有更好的安裝技巧可跳過(guò),這只是博主自己安裝的方法此安裝方式操作的是下 LAMP簡(jiǎn)介 L:Linux操作系統(tǒng)A:Apache網(wǎng)頁(yè)服務(wù)器M:Mysql數(shù)據(jù)庫(kù)管理系統(tǒng)P:Php腳本語(yǔ)言 注:以下開(kāi)始進(jìn)行的是分步安裝,如果...
閱讀 3201·2021-11-18 10:02
閱讀 1456·2021-10-12 10:08
閱讀 1255·2021-10-11 10:58
閱讀 1277·2021-10-11 10:57
閱讀 1173·2021-10-08 10:04
閱讀 2125·2021-09-29 09:35
閱讀 778·2021-09-22 15:44
閱讀 1279·2021-09-03 10:30