📜  在没有 php artisan serve 的情况下运行 laravel (1)

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

在没有 php artisan serve 的情况下运行 Laravel

Laravel 是一款流行的 PHP Web 框架,它内置了一个命令行工具 Artisan,可用于快速创建和管理 Laravel 应用程序。其中一个常用的 Artisan 命令是 php artisan serve,它会在本地开启一个 Web 服务器,然后运行 Laravel 应用程序。但是有些情况下,你可能不想使用 php artisan serve 命令。这篇文章将介绍如何在没有 php artisan serve 的情况下运行 Laravel。

直接使用 PHP 内置服务器

PHP 有一个内置的 Web 服务器,你可以使用它来运行 Laravel 应用程序。通过以下命令可以启动 PHP 内置服务器:

php -S localhost:8000 -t public/

其中 -S 参数指定了要使用的 Web 服务器,localhost:8000 指定了服务器监听的地址和端口号,-t public/ 指定了 Laravel 应用程序的根目录。如果你想要使用不同的端口号,可以将 8000 替换为其他端口号。如果你想要在外部访问该服务器,则将 localhost 替换为你的计算机 IP 地址。

使用 Docker

如果你熟悉 Docker,也可以使用 Docker 来运行 Laravel 应用程序。以下是一个简单的 Dockerfile 示例:

FROM php:7.4-cli

WORKDIR /app

COPY composer.* ./

RUN curl -sS https://getcomposer.org/installer | php \
    && mv composer.phar /usr/local/bin/composer \
    && composer install --prefer-dist --no-dev --no-scripts --no-progress --no-suggest --optimize-autoloader

COPY . .

CMD php artisan serve --host=0.0.0.0 --port=8000

在上面的代码中,我们使用了官方 PHP 镜像,并在容器中安装了 Composer。然后,我们将 Laravel 应用程序复制到容器中,并运行 php artisan serve 命令来启动 Web 服务器。

使用 NGINX 或 Apache

如果你已经安装了 NGINX 或 Apache Web 服务器,并且想要在其中运行 Laravel 应用程序,可以使用以下方式。这里以 NGINX 为例:

  1. 在 NGINX 的配置文件中,添加一个新的虚拟主机:

    server {
        listen 80;
        server_name example.com;
        root /var/www/laravel/public;
        index index.php;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    }
    

    其中 server_nameroot 分别指定了虚拟主机的域名和文档根目录。

  2. 在 Laravel 应用程序的根目录中,创建一个 .env 文件,并指定数据库和其他配置参数。例如:

    APP_NAME=Laravel
    APP_ENV=production
    APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
    APP_DEBUG=false
    APP_URL=http://example.com
    
    ...
    
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=laravel
    DB_USERNAME=laravel
    DB_PASSWORD=yourpassword
    
  3. 在 Laravel 应用程序的根目录中,运行以下命令来生成应用程序密钥:

    php artisan key:generate
    
  4. 配置 Laravel 应用程序的数据库。在 Laravel 应用程序的根目录中,运行以下命令来创建数据库表:

    php artisan migrate --force
    
  5. 重启 NGINX Web 服务器:

    sudo service nginx restart
    
  6. 访问 http://example.com,你应该能够看到 Laravel 应用程序的欢迎页面了。

结论

以上是在没有 php artisan serve 命令的情况下运行 Laravel 的一些方法。你可以根据自己的需要和熟练程度来选择适合自己的方式。