1. 程式人生 > >使用docker搭建laravel記敘

使用docker搭建laravel記敘

laravel容器 avi tca migrate 運行 -name select 如果 his

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

1 docker pull laraedit/laraedit

這個docker鏡像已經安裝了 nginx、laravel和mysql,所以不需要自己再去安裝,先創建一個文件夾

1 mkdir /usr/local/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容器名字,可以隨便改

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

運行這個命令之後直接進入到了容器中

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

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

因為我想要在自己的電腦上用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網站了

使用docker搭建laravel記敘