使用Laradock进行PHP7.4+Apache2.4+MariaDB10.3+phpMyAdmin环境配置的步骤如下:

在使用Laradock进行环境搭建时,默认的服务器是nginx。由于生产环境需要使用Apache和MariaDB10.3,我们需要修改laradock的配置。

重要的事项

    • Git 2.35.1

 

    • Docker version 20.10.13

 

    • docker-compose version 1.29.2, build 5becea4c

 

    Laradock v12.1

容器的构造

    • Apache2.4

 

    • MariaDB10.3

 

    • PHP7.4

 

    phpMyAdmin

目录结构

laradock-Apache   ... プロジェクトルート
   ┗ laradock     ... Laradock
   ┗ laravel      ... Laravel app project
       ┗ public   ... 公開ディレクトリ(Document Root)

Laradock的安装设置转到项目根目录

$ mkdir laradock-Apach
$ cd ~/laradock-Apache/

克隆Laradock

$ git clone https://github.com/laradock/laradock.git

前往Laradock

$ cd ~/laradock-Apach/laradock

创建.env文件

$ vi cp .env.example  .env

编辑.env文件

$ vim .env
---

### PHP Version ###########################################

- PHP_VERSION=7.3
+ PHP_VERSION=7.4

### MARIADB ###############################################

- MARIADB_VERSION=latest
+ MARIADB_VERSION=10.3

- MARIADB_DATABASE=default
+ MARIADB_DATABASE=laradock

### WORKSPACE #############################################

- WORKSPACE_INSTALL_MYSQL_CLIENT=false
+ WORKSPACE_INSTALL_MYSQL_CLIENT=true

### PHP MY ADMIN ##########################################

- PMA_DB_ENGINE=mysql
+ PMA_DB_ENGINE=mariadb

### APACHE ################################################

- APACHE_DOCUMENT_ROOT=/var/www/
+ APACHE_DOCUMENT_ROOT=/var/www/laravel/public/

---

更改Apache配置将 Apache 的默认配置文件 default.apache.conf 进行备份。

$ cp apache2/sites/default.apache.conf apache2/sites/default.apache.conf.example
$ mv apache2/sites/default.apache.conf.example apache2/sites/default.apache.conf

编辑Apache的虚拟主机配置文件

$ vim apache2/sites/default.apache.conf
<VirtualHost *:80>
  ServerName laradock.test
- DocumentRoot /var/www/
+ DocumentRoot /var/www/laravel/public/
  Options Indexes FollowSymLinks

- <Directory "/var/www/">
+ <Directory "/var/www/laravel/public/">
    AllowOverride All
    <IfVersion < 2.4>
      Allow from all
    </IfVersion>
    <IfVersion >= 2.4>
      Require all granted
    </IfVersion>
  </Directory>

  ErrorLog /var/log/apache2/error.log
  CustomLog /var/log/apache2/access.log combined
</VirtualHost>

修改MariaDB的设置将Mariadb服务器的字符集更改为utf8mb4。

$ cd ~/laradock-Apach/laradock/mariadb

$ cp my.cnf my.cnf.example

$ vi my.cnf

+ [mariadb]
+ character-set-server = utf8mb4

+ [client-mariadb]
+ default-character-set = utf8mb4

启动laradock容器启动

$ docker-compose up -d workspace apache2 mariadb phpmyadmin

创建Laravel项目.

$ docker-compose exec workspace bash
root@509785bbe57:/var/www$
root@509785bbe57:/var/www$ composer create-project "laravel/laravel=8.*" laravel --prefer-dist
root@509785bbe57:/var/www$ cd laravel
root@509785bbe57:/var/www/laravel$ chmod -R 777 storage/

修改Laravel的环境配置更新Laravel项目中生成的.env文件。

root@509785bbe57:/var/www$ cd laravel/
root@509785bbe57:/var/www/laravel$ vi .env

以下是对/var/www/laravel/.env的本地中文释义(只提供一种选项):

/var/www/laravel/.env 可以解释为「位于/var/www/laravel/路径下的.env文件」。

DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=laradock
DB_USERNAME=default
DB_PASSWORD=secret
root@509785bbe57:/var/www/laravel$ exit

确认行动只要所有的容器都是“up”的状态,就可以了。

$ docker-compose ps
           Name                          Command               State                                                                      Ports
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
laradock_apache2_1            /opt/docker/bin/entrypoint ...   Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up      2375/tcp, 2376/tcp
laradock_mariadb_1            docker-entrypoint.sh mysqld      Up      0.0.0.0:3306->3306/tcp
laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up      9000/tcp, 0.0.0.0:9003->9003/tcp
laradock_phpmyadmin_1         /docker-entrypoint.sh apac ...   Up      0.0.0.0:8081->80/tcp
laradock_workspace_1          /sbin/my_init                    Up      0.0.0.0:2222->22/tcp, 0.0.0.0:3000->3000/tcp, 0.0.0.0:3001->3001/tcp, 0.0.0.0:4200->4200/tcp, 0.0.0.0:8001->8000/tcp, 0.0.0.0:8080->8080/tcp

只要访问 http://localhost 并成功显示 Laravel 的首页画面即可。

20210118143323.png请确认能够通过 http://localhost:8081 访问到 phpmyadmin。
只要能使用 .env 文件中设置的 mariadb 用户名和密码成功登录即可。

名称未設定2.png

执行迁移确认迁移操作能够顺利完成。

root@509785bbe57:/var/www/laravel$ php artisan migrate
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (22.06ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (21.03ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (25.08ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated:  2019_12_14_000001_create_personal_access_tokens_table (32.52ms)

MySQL客户端我会在MySQL客户端上确认能否登录。

root@509785bbe57:/var/www$ mysql -h mariadb -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 202
Server version: 5.5.5-10.3.34-MariaDB-1:10.3.34+maria~focal mariadb.org binary distribution

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

现在,你已经准备好开始Laravel的开发了。

附加信息:Laradock(docker) 的操作
登录到Docker的工作空间

$ docker-compose up -d workspace apache2 mariadb phpmyadmin

停止 Docker 容器

$ docker-compose down

停止Docker容器,刪除映像。

$ docker-compose down --rmi all

停止 Docker 容器,刪除容量

$ docker-compose down -v

如果更改了Docker的配置文件(例如apache),

$ docker-compose up -d --build workspace apache2 mariadb phpmyadmin
or
$ docker-compose build apache2 など

bannerAds