安裝配置
github地址:github.com/laradock/laradock
文件、官網地址:laradock.io/
克隆程式碼
git clone https://github.com/Laradock/laradock.git
複製配置檔案
cp .env.example .env
因為是M1系統,所以需要在
docker-compose.yml
中的mysql
部分進行修改mysql: image: mysql:8.0.19 platform: 'linux/x86_64' build: context: ./mysql args: - MYSQL_VERSION=${MYSQL_VERSION} environment: - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - TZ=${WORKSPACE_TIMEZONE} volumes: - ${DATA_PATH_HOST}/mysql:/var/lib/mysql - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d ports: - "${MYSQL_PORT}:3306" networks: - backend user: mysql
後面還可能因為網路問題,導致
Service php-fpm build failed
,修改docker-compose.yml
WORKSPACE_TIMEZONE=UTC # 換成 PRC
如果沒有很好的訪問國外
raw.github.com
類似的網址的,建議去hosts
檔案新增,如果有,那就另當別論。啟動容器 ,根據自己需要的映象來啟動
docker-compose up -d redis mysql nginx workspace
進行等待漫長的下載過程即可。
如果最後都有一個綠色的done
顯示,並且沒有error
,再使用docker ps
檢視執行的容器是否執行成功。
因為我們使用這個,僅僅需要一個workspace
,所以我們需要進入workspace
的控制檯。
docker-compose up exec workspace bash
克隆一個laravel程式碼,預設克隆下來是最新的版本,我們需要切換到我們支援的版本上去。
我這裡目錄放的有點草率了,導致當前上一級目錄都被對映到容器內部去了,浪費了。所以你們需要找一個當前laradock
目錄上一級是個除了laradock
以外沒啥東西的地方去弄比較合適。
Laravel配置
我們需要配置composer
使用阿里雲映象
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
複製一份環境配置檔案
cp .env.example .env
安裝Laravel需要的依賴
composer install -vvv
等待下載安裝完成即可。
還需要對.env
的key
進行配置,因為我們是直接拉取的一個程式碼,而不是使用Laravel
的命令或者composer
安裝的
cd laravel
php artisan key:generate
配置完成之後,我們最終還是需要在網頁進行訪問的,所以還需要配置nginx
到我們的
laradock
目錄下的nginx
下的sites
目錄裡有一個laravel.conf.example
檔案,我們進行復制一份,去除後面的.example
即可。
注意:
此時我們的nginx
配置檔案中的案例,是指向的是對的,
#server {
# listen 80;
# server_name laravel.com.co;
# return 301 https://laravel.com.co$request_uri;
#}
server {
listen 80;
listen [::]:80;
# For https
# listen 443 ssl;
# listen [::]:443 ssl ipv6only=on;
# ssl_certificate /etc/nginx/ssl/default.crt;
# ssl_certificate_key /etc/nginx/ssl/default.key;
# 配置虛擬域名
server_name laravel.test;
# 主要是這裡,必須指向我們真確的目錄
root /var/www/laravel/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/laravel_error.log;
access_log /var/log/nginx/laravel_access.log;
}
要想使得nginx
生效,我們還得重新啟動一下nginx
重啟nginx
的幾種方式
# 進入到laradock目錄
docker-compose exec nginx bash
# 或者使用docker ps 檢視容器的id
docker-compose exec 容器id bash
# 或者直接在任意目錄下使用docker重啟
docker restart 容器id
配置虛擬域名
如上所述,我們配置了http://laravel.test
的虛擬域名
我們在Mac
中有一個軟體:SwitchHosts
可以輕鬆做到。Windows
下你們可以自己去找到hosts
檔案進行修改即可。
配置完成之後,我們嘗試ping
通一下
ping laravel.test
我們在瀏覽器上訪問是否可以
本作品採用《CC 協議》,轉載必須註明作者和本文連結