使用docker搭建laravel記敘

 第一步,先從dockerhub上pull一個docker鏡php

 1 docker pull laraedit/laraedit html

 這個docker鏡像已經安裝了 nginx、laravel和mysql,因此不須要本身再去安裝,先建立一個文件夾mysql

 1 mkdir /usr/local/laravel nginx

 直接運行一個容器  laravel

docker run -it --name laravel -p 8088:80 -p:3306:3306 -v /usr/local/laravel:/var/www/html/app laraedit/laraedit /bin/bash 

 --name  laravel容器名字,能夠隨便改sql

 -v 主機文件夾:docker文件夾 是將主機文件夾掛載到容器中,如今訪問/usr/local/laravel就像訪問容器中/var/www/html/app同樣docker

 運行這個命令以後直接進入到了容器中數據庫

 按Ctrl+P 而後Ctrl+Q 退出容器 ,再次進入docker exec -it laravel /bin/bash 或者 docker exec -it 容器id  /bin/bashvim

 這個laraedit預先已經將 80, 443, 3306, 6379端口開放,但若是別的主機想要使用這個端口訪問 ,還須要用-p 主機端口:docker端口 進行端口映射, 我暴露出了兩個端口網站的和mysql的bash

 由於我想要在本身的電腦上用navicat鏈接docker的數據庫,不過如今我連數據庫密碼都不知道,首先進入數據庫

     

mysql

這裏不須要用戶名密碼直接進入

  

1 use mysql;
2 
3 select host,user,authentication_string from user;

能夠看到相似如下

+-----------+-----------+-------------------------------------------+
| host | user | authentication_string |
+-----------+-----------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| 0.0.0.0 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 0.0.0.0 | homestead | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
| % | homestead | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
+-----------+-----------+-------------------------------------------+

有能夠遠程訪問的root帳號,因此直接改

1 update user set authentication_string =password('你的密碼') where user='root'
1  GRANT ALL PRIVILEGES ON *.* TO '你的用戶名'@'%'IDENTIFIED BY '你的密碼' WITH GRANT OPTION;
2 FLUSH PRIVILEGES;

上面就是添加了遠程訪問的權限

這時候就能夠直接在本身的電腦上用navicat鏈接docker中的mysql了

 

接着去配置docker容器中的nginx

 1 vim /etc/nginx/nginx.conf 

配置參照官方文檔

https://laravel-china.org/docs/laravel/5.5/deployment

具體配置仍是根據本身實際環境配置

配置完成以後將本身的網站laravel根目錄下的全部文件所有複製到容器中的app目錄下,由於已經作了目錄掛載,因此直接複製到主機上 /usr/local/laravel下便可

而後將laravel的數據庫地址更改一下,修改成主機外網ip地址

最後修改容器中/var/www/html/app的屬主

 1 chown -R www-data:www-data /var/www/html/app 

 

若是使用了Eloquent ORM框架的話

再在根目錄下運行php artisan  migrate,查看數據庫中表是否是都成生了。

如今就能夠訪問php網站了  

相關文章
相關標籤/搜索