📜  运行 lumen 项目 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:41:54.712000             🧑  作者: Mango

运行 Lumen 项目 - Shell/Bash

有多种方式来运行 Lumen 项目,包括使用 PHP 内置的开发服务器、使用类似于 Apache 或 Nginx 的 web 服务器等。下面将介绍在 shell 或 bash 命令行界面中运行 Lumen 项目的方法。

前提条件
  • 已经安装好了 PHP 和 Composer。
  • 已经安装好了 Lumen 项目,并且在项目根目录下运行 composer install 命令,以安装依赖包。
运行 PHP 内置的开发服务器

在命令行界面中,进入到 Lumen 项目根目录,运行以下命令:

php -S localhost:8000 -t public

这条命令会启动一个 PHP 内置的开发服务器,监听 localhost:8000 端口,并将 public 目录作为根目录。你可以通过 http://localhost:8000 来访问 Lumen 应用。

此方式仅适用于开发环境,不应该在生产环境中使用。

使用 Homestead

Homestead 是一个预先配置好的 Vagrant 环境,可用于在 Laravel 或 Lumen 应用的开发和部署中。

首先,你需要安装 Homestead。详见 Homestead 官方文档

然后,你需要修改 Homestead 的配置文件 Homestead.yaml,添加如下配置:

folders:
    -
        map: /path/to/lumen
        to: /home/vagrant/lumen

sites:
    -
        map: lumen.local
        to: /home/vagrant/lumen/public

这里,/path/to/lumen 应该替换成你的 Lumen 项目所在的目录。

接下来,你需要重新载入 Homestead 环境并启动:

vagrant reload --provision

完成后,在浏览器中输入 http://lumen.local 即可访问你的 Lumen 应用。

使用 Docker

建议使用 Docker 可以方便地环境隔离,并且可以使用现成的 Docker 镜像,避免了安装和配置环节的繁琐。这里,我们使用官方提供的 php:7.4-apache 镜像。

首先,你需要安装 Docker。详见 官方文档

进入到 Lumen 项目根目录,创建 Dockerfile 文件:

FROM php:7.4-apache

# 安装 Lumen 项目所需的 PHP 扩展(如有需要,请自行添加)
RUN docker-php-ext-install pdo_mysql

# 设置 Apache 文档根目录
ENV APACHE_DOCUMENT_ROOT /var/www/html/public

# 配置 Apache
COPY docker/apache2.conf /etc/apache2/apache2.conf

# 将 Lumen 项目文件复制到容器中
COPY . /var/www/html

# 修改权限
RUN chmod -R o+w /var/www/html/storage

# 安装 Composer
COPY --from=composer /usr/bin/composer /usr/bin/composer

# 安装 Lumen 项目依赖
RUN composer install --no-dev --no-scripts --no-progress --no-suggest --optimize-autoloader --no-interaction

上述 Dockerfile 的作用:

  • 继承了官方 php:7.4-apache 镜像。
  • 安装了 Lumen 所需的 PHP 扩展,如需要,可自行添加。
  • 设置了 Apache 的文档根目录。
  • 复制了 Apache 的配置文件。
  • 将 Lumen 项目文件复制到容器中。
  • 修改了文件权限,避免因权限问题导致文件无法访问。
  • 安装了 Composer 和 Lumen 项目依赖。

接下来,创建 docker/apache2.conf 文件:

# 禁止 Apache 显示版本号
ServerSignature Off
ServerTokens Prod

# 开启 URL 重写
<Directory /var/www/html/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

上述 Apache 配置的作用:

  • 禁止 Apache 显示版本号。
  • 开启 URL 重写,方便美化 URL。

最后,构建镜像并运行容器:

docker build -t lumen-app .
docker run --rm -it -p 8080:80 -v $(pwd):/var/www/html lumen-app

这里,我们将主机的 8080 端口映射到容器的 80 端口,并将主机当前目录挂载到容器的 /var/www/html 目录下。

完成后,在浏览器中输入 http://localhost:8080 即可访问你的 Lumen 应用。

总结

以上就是在 shell 或 bash 命令行界面中运行 Lumen 项目的方法。选择何种运行方式,需要根据实际需求来选择。在开发环境中,使用 PHP 内置的开发服务器可方便地进行开发和调试。在生产环境中,建议使用 Homestead、Docker 等容器化技术来保证应用的稳定性和安全性。