由于在学习laravel,须要搭建一个php7的开发环境,常常要反复卸载从新安装各类软件,多搞几遍环境可能就被污染。全部想到了能够使用docker来安装容器,还方便扩展。安装步骤:php
- ubuntu安装git php composer docker
- ubutnu安装laravel
- docker下载镜像,启动容器
- 修改docker nginx容器的配置文件
sudo apt-get install git
sudo apt-get install php7.0 php7.0-dev
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D sudo vim /etc/apt/sources.list.d/docker.list 增长内容 deb https://apt.dockerproject.org/repo ubuntu-precise main deb https://apt.dockerproject.org/repo ubuntu-trusty main deb https://apt.dockerproject.org/repo ubuntu-wily main deb https://apt.dockerproject.org/repo ubuntu-xenial main sudo apt-get update sudo apt-get install docker-engine
curl -sS https://getcomposer.org/installer | php
注意: 若是上述方法因为某些缘由失败了,你还能够经过 php >下载安装器:html
php -r "readfile('https://getcomposer.org/installer');" | php
全局调用composer设置mysql
sudo mv composer.phar /usr/local/bin/composer
下载laravel安装器nginx
composer global require "laravel/installer"
laravel命令加入环境变量,实现全局调用laravel
sudo vim /etc/profile
在文件底部加入git
export PATH=~/.config/composer/vendor/bin:$PATH
使环境变量生效sql
source /etc/profile
创建文件夹,修改权限,进入目录docker
sudo mkdir /var/www sudo chmod -R 777 /var/www cd /var/www
用命令创建laravel项目shell
laravel new bolg or composer create-project --prefer-dist laravel/laravel blog
修改项目文件里面的storage 和 bootstrap/cache 权限 777bootstrap
cd /var/www/bolg chmod -R 777 storage chmod -R 777 bootstrap/cache
sudo docker pull mysql sudo docker pull php:7.0-fpm sudo docker pull nginx
sudo docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root mysql sudo docker run -d --name php-fpm --link mysql:mysql -v /var/www:/var/www/html php sudo docker run -d -p 80:80 --name nginx --link php-fpm:php --volumes-from php-fpm nginx
进入nginx容器
sudo docker exec -it nginx /bin/bash apt-get update apt-get isntall vim vim /etc/nginx/conf.d/default.conf
用下面文件替换
请注意fastcgi_pass,它的值是你php容器的域名或者ip。例如:172.17.0.3:9000;
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; root /var/www/html; index index.php index.html index.htm; #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root $document_root; fastcgi_pass 172.17.0.3:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }