基於 Docker-CentOS7.5 安裝 Laravel, 完美無坑!

MR_Z發表於2018-07-29

雖然環境搭建的方法文件上都有說明,但是對我等菜逼來說依然遇到了很多坑,我在這裡基於centos7.5開一條柏油路, 希望大家在這條路上可以節省很多時間!

我這裡是使用的docker, 請自行安裝docker !

約定:
在本機上執行的命令使用 > 符號,在容器中執行的命令使用 $ 符號。

獲取centos映象(現在預設為7.5版本)

> docker pull centos

後臺執行centos容器,起別名Laravel, 對映8000埠到本機的8000埠

> docker run -it -p 127.0.0.1:8000:8000 -d --name Laravel centos

進入Laravel容器

> docker exec -it Laravel /bin/bash

解決依賴問題

$ yum install zip unzip openssl openssl-devel gcc vim git wget libxml2-devel autoconf make -y

進入root目錄

$ cd

下載php原始碼壓縮包並解壓

$ wget http://cn2.php.net/distributions/php-7.2.7.tar.gz
$ tar -zxvf php-7.2.7.tar.gz

編譯並安裝php

$ cd php-7.2.7
$ ./configure --with-zlib
$ make install

安裝需要的擴充套件

$ cd ./ext/mbstring
$ phpize && ./configure && make install
$ cd ../../

$ cd ./ext/openssl
$ mv config0.m4 config.m4
$ phpize && ./configure && make install
$ cd ../../

$ cd ./ext/zip
$ phpize && ./configure && make install
$ cd ../../

配置php.ini

$ mv php.ini-production /usr/local/lib/php.ini

開啟/usr/local/lib/php.ini
將被註釋的 extension=openssl 去掉註釋
將被註釋的 extension=mbstring 去掉註釋
在附近新增 extension=zip

檢查擴充套件是否備齊(可以忽略此命令)

$ php -m

安裝並更新composer

$ php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ mv composer.phar /usr/local/bin/composer
$ composer self-update

由於composer不讓在root環境中執行所以需要建立個使用者,去那個使用者中操作!

$ adduser mrz
$ passwd mrz
$ su mrz
$ cd

加速:

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

建立專案(第一次建立專案需要多等一會)

$ composer create-project --prefer-dist laravel/laravel blog

啟動專案服務

$ cd blog
$ php artisan serve --host=0.0.0.0 --port=8000

然後在本地主機開啟 http://localhost:8000 可以看到我們laravel專案的主頁

至此laravel安裝完畢!


我還想做兩件事:

  1. 如果我將容器刪除的話,新建立容器後還是需要做上面的這些操作;所以我要在這個階段構建一個映象儲存下來,下次就不用再安裝了,可以拉去映象直接使用。
  2. 我不想使用vim在容器中寫程式碼,要將本地一個目錄對映到容器;在容器中操作(專案程式碼的提交,拉取,服務的啟動等等)專案,在容器外寫程式碼!

在docker hub上註冊一個賬戶

建立一個倉庫,命名為samoyedsun

本地提交容器的操作記錄,b4a379d00f82是你容器的id

> docker commit -m "a new laravel image" -a "mr_z" b4a379d00f82 samoyedsun/laravel:v1

將映象推送到docker hub, 如果未登陸,需要執行docker login登陸自己的docker hub賬戶

> docker push samoyedsun/laravel:v1

拉取映象

> docker pull samoyedsun/laravel:v1

以後臺方式執行容器,關閉安全許可權,將本地目錄/Users/mrz/laravel對映到容器中/home/mrz/laravel

> docker run -it -d -p 8000:8000 -v /Users/mrz/laravel_project:/home/mrz/laravel_project --privileged=true --name Laravel samoyedsun/laravel:v1

進入容器中的laravel_project建立自己的laravel專案, 或者叢github上拉取自己的專案. 如果是github上拉取專案的話需要先看一下從 GitHub 上克隆專案程式碼後需要做的事情,這樣才能順利再次啟動你的服務。

> docker exec -it Laravel /bin/bash
$ su mrz
$ cd /home/mrz/laravel_project
$ composer create-project --prefer-dist laravel/laravel blog

接下來就可以在本機進入/Users/mrz/laravel_project編輯自己的專案了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章