📅  最后修改于: 2023-12-03 15:41:54.712000             🧑  作者: Mango
有多种方式来运行 Lumen 项目,包括使用 PHP 内置的开发服务器、使用类似于 Apache 或 Nginx 的 web 服务器等。下面将介绍在 shell 或 bash 命令行界面中运行 Lumen 项目的方法。
composer install
命令,以安装依赖包。在命令行界面中,进入到 Lumen 项目根目录,运行以下命令:
php -S localhost:8000 -t public
这条命令会启动一个 PHP 内置的开发服务器,监听 localhost:8000
端口,并将 public
目录作为根目录。你可以通过 http://localhost:8000
来访问 Lumen 应用。
此方式仅适用于开发环境,不应该在生产环境中使用。
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 镜像,避免了安装和配置环节的繁琐。这里,我们使用官方提供的 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
镜像。接下来,创建 docker/apache2.conf
文件:
# 禁止 Apache 显示版本号
ServerSignature Off
ServerTokens Prod
# 开启 URL 重写
<Directory /var/www/html/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
上述 Apache 配置的作用:
最后,构建镜像并运行容器:
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 等容器化技术来保证应用的稳定性和安全性。