Oracle Linux 8 安装 Laravel PHP 框架

Laravel 是一个免费的开源 PHP 框架,专为轻松的网站开发而设计。 它使用各种符号组件使PHP Web开发更加容易。 Laravel 是一个 Web 应用程序框架,具有富有表现力、优雅的语法,通过简化一些常见任务(包括身份验证、路由、会话和缓存)来减轻 Web 开发的痛苦。 Laravel 健壮、易于理解,并提供了一组工具和资源来构建现代 PHP 应用程序。

在这篇文章中,我们将向我们展示 Oracle Linux 8 上安装 Laravel PHP 框架。

先决条件

  • 在 云平台上运行 OracleLinux 8 的服务器
  • 在我们的服务器上配置了 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Oracle Linux 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

dnf update -y

第 2 步 – 安装 LEMP 堆栈

在启动之前,我们需要在服务器上安装灯服务器。 首先,使用以下命令安装 Nginx 和 MariaDB 服务器:

dnf install nginx mariadb-server -y

安装这两个软件包后,我们还需要安装 PHP 8.0 版和其他所需的扩展。 默认情况下,Oracle Linux 默认存储库中不包含 PHP 8.0,因此我们需要在系统上安装 PHP REMI 存储库。

首先,使用以下命令安装 EPEL 和 REMI 包:

dnf install epel-release -y
dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

接下来,重置 PHP 默认模块并使用以下命令启用 PHP REMI 8.0 模块:

dnf module reset php
dnf module enable php:remi-8.0

最后,使用以下命令安装带有所有必需扩展的 PHP 8.0:

dnf install php php-fpm php-common php-xml php-mbstring php-json php-zip php-mysqlnd curl unzip -y

安装所有软件包后,使用以下命令启动并启用 Nginx、MariaDB 和 PHP-FPM 服务:

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb

接下来,我们需要编辑 PHP-FPM 配置文件并将用户和组从 apache 更改为 Nginx。

nano /etc/php-fpm.d/www.conf

更改以下行:

listen.owner = nginx
listen.group = nginx

保存并关闭文件,然后编辑 php.ini 文件:

nano /etc/php.ini

更改以下行:

date.timezone = UTC
cgi.fix_pathinfo=1

保存并关闭文件,然后重新启动 PHP-FPM 服务以应用更改。

systemctl restart php-fpm

第 3 步 – 安装 PHP Composer

Composer 是 PHP 的依赖管理器,用于安装项目所需的各种 PHP 依赖。 我们可以使用以下命令安装它:

curl -sS https://getcomposer.org/installer | php

我们应该得到以下输出:

All settings correct for using Composer
Downloading...

Composer (version 2.3.5) successfully installed to: /root/opencart/composer.phar
Use it: php composer.phar

接下来,将下载的二进制文件移动到系统路径并设置适当的权限:

mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

现在,使用以下命令验证 Composer 版本:

composer --version

我们应该得到以下输出:

Composer version 2.3.5 2022-04-13 16:43:00

第 4 步 – 在 Oracle Linux 8 上安装 Laravel 框架

首先,导航到 Nginx Web 根目录并使用以下命令下载最新版本的 Laravel:

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel laravelsite

我们应该得到以下输出:

> @php artisan package:discover --ansi
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Discovered Package: spatie/laravel-ignition
Package manifest generated successfully.
78 packages we are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
> @php artisan key:generate --ansi
Application key set successfully.

接下来,为 laravel 目录设置适当的权限和所有权:

chown -R nginx:nginx /var/www/html/laravelsite/storage/
chown -R nginx:nginx /var/www/html/laravelsite/bootstrap/cache/
chmod -R 0777 /var/www/html/laravelsite/storage/
chmod -R 0775 /var/www/html/laravelsite/bootstrap/cache/

第 5 步 – 为 Laravel 创建 Nginx 虚拟主机

现在,我们需要创建一个 Nginx 虚拟主机配置文件来在 Internet 上托管 Laravel。

我们可以使用以下命令创建它:

nano /etc/nginx/conf.d/laravel.conf

添加以下行:

server {
       listen 80;
       server_name laravel.example.com;
       root        /var/www/html/laravelsite/public;
       index       index.php;
       charset utf-8;
       gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
        	try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

保存并关闭文件,然后编辑 Nginx 配置文件:

nano /etc/nginx/nginx.conf

在 http{ 下添加以下行:

server_names_hash_bucket_size 64;

保存并关闭文件,然后使用以下命令验证 Nginx 是否存在任何语法错误:

nginx -t

我们应该得到以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最后,重新启动 Nginx 和 PHP-FPM 服务以应用更改:

systemctl restart php-fpm
systemctl restart nginx

我们还可以使用以下命令验证 Nginx 状态:

systemctl status nginx

我们应该看到以下输出:

● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           └─php-fpm.conf
   Active: active (running) since Wed 2022-05-18 23:07:14 EDT; 6s ago
  Process: 8451 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 8449 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 8445 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 8458 (nginx)
    Tasks: 3 (limit: 23694)
   Memory: 5.0M
   CGroup: /system.slice/nginx.service
           ├─8458 nginx: master process /usr/sbin/nginx
           ├─8459 nginx: worker process
           └─8460 nginx: worker process

May 18 23:07:13 oraclelinux systemd[1]: nginx.service: Succeeded.
May 18 23:07:13 oraclelinux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
May 18 23:07:13 oraclelinux systemd[1]: Starting The nginx HTTP and reverse proxy server...
May 18 23:07:14 oraclelinux nginx[8449]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
May 18 23:07:14 oraclelinux nginx[8449]: nginx: configuration file /etc/nginx/nginx.conf test is successful
May 18 23:07:14 oraclelinux systemd[1]: Started The nginx HTTP and reverse proxy server.

第 6 步 – 配置防火墙

如果我们的服务器上安装并运行了 firewalld,那么我们需要允许 HTTP 和 HTTPS 服务通过防火墙。 我们可以使用以下命令同时允许这两种服务:

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https

接下来,重新加载 firewalld 以应用更改:

firewall-cmd --reload

步骤7 – 访问Laravel Web界面

我们现在可以使用 URL http://laravel.example.com 访问 Laravel 仪表板。 我们将被重定向到 Laravel 默认屏幕:
Laravel 仪表板页面

本文记录了, Oracle Linux 8 上使用 Nginx 安装 Laravel。我们现在可以使用 Laravel 框架来创建高性能和现代的 PHP Web 应用程序。 从 开始使用专用托管。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论