Mac M1安裝laradock

wxvirus發表於2022-02-21

安裝配置

github地址:github.com/laradock/laradock

文件、官網地址:laradock.io/

  1. 克隆程式碼

    git clone https://github.com/Laradock/laradock.git
  2. 複製配置檔案

    cp .env.example .env
  3. 因為是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
  4. 後面還可能因為網路問題,導致Service php-fpm build failed,修改docker-compose.yml

    WORKSPACE_TIMEZONE=UTC  # 換成 PRC

    如果沒有很好的訪問國外raw.github.com類似的網址的,建議去hosts檔案新增,如果有,那就另當別論。

  5. 啟動容器 ,根據自己需要的映象來啟動

    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

等待下載安裝完成即可。

還需要對.envkey進行配置,因為我們是直接拉取的一個程式碼,而不是使用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檔案進行修改即可。

hosts

配置完成之後,我們嘗試ping通一下

ping laravel.test

ping

我們在瀏覽器上訪問是否可以

訪問透過

本作品採用《CC 協議》,轉載必須註明作者和本文連結
Virus

相關文章