基于 Docker-CentOS7.5 安装 Laravel, 完美无坑!

虽然环境搭建的方法文档上都有说明,但是对我等菜逼来说依然遇到了很多坑,我在这里基于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 协议》,转载必须注明作者和本文链接
本帖由系统于 5年前 自动加精
MR_Z
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 7
xianyunyehe

都用docker了。直接用个带环境的 不是更方便

5年前 评论
幽弥狂

@xianyunyehe 求推荐啊

帖子很好。蟹蟹

5年前 评论

推荐用 本站镜像

5年前 评论
xianyunyehe

@Chasers9527

docker search laravel 

然后找下。
或者找个lnmp也可以的

5年前 评论
幽弥狂

@xianyunyehe 好的。谢谢

5年前 评论

为什么需要centos在装laravel环境啊? docker只是用来做服务器环境不行吗?本地编码,装composer、npm?
这个没大理解

5年前 评论
MR_Z

@xianyunyehe 新手多折腾折腾没坏处,自己从头开始玩遇到问题也知道原因,主要是我喜欢这样。生产环境肯定不会这样玩的啦! :blush:

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!