网站搜索

如何在 CentOS 8 上使用 Nginx 安装 Laravel PHP 框架


Laravel 是一个开源的、知名的、基于 PHP 的现代 Web 框架,具有富有表现力、优雅且易于理解的语法,可以轻松构建大型、健壮的 Web 应用程序。

其主要功能包括简单、快速的路由引擎、强大的依赖注入容器、用于会话和缓存存储的多个后端、富有表现力和直观的数据库 ORM(对象关系映射)、强大的后台作业处理和实时事件广播。

此外,它还使用诸如 Composer(用于管理依赖项的 PHP 包管理器)和 Artisan(用于构建和管理 Web 应用程序的命令行界面)等工具。

在本文中,您将了解如何在 CentOS 8 Linux 发行版上安装最新版本的 Laravel PHP Web 框架。

服务器要求

Laravel 框架有以下要求:

  • PHP >= 7.2.5 具有这些 PHP 扩展 OpenSSL、PDO、Mbstring、Tokenizer、XML、Ctype 和 JSON。
  • Composer – 用于安装和管理依赖项。

步骤 1:在 CentOS 8 中安装 LEMP Stack

1.首先,更新系统软件包并安装LEMP堆栈(LinuxNginx MariaDB/MySQLPHP)使用以下 dnf 命令。

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2.LEMP安装完成后,需要启动PHP-PFMNginx使用以下 systemctl 命令的 >MariaDB 服务。

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

3. 接下来,您需要使用所示的安全脚本来保护和强化 MariaDB 数据库引擎。

mysql_secure_installation

回答以下问题以确保服务器安装的安全。

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y

4.如果您运行了firewalld服务,则需要在防火墙中开启HTTPHTTPS服务启用对 Nginx Web 服务器的客户端请求。

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

5.最后,您可以使用浏览器在系统的 IP 地址上确认您的 LEMP 堆栈正在运行。

http://server-IP

步骤 2:配置和保护 PHP-FPM 和 Nginx

6. 为了处理来自 Nginx Web 服务器的请求,PHP-FPM 可以监听 Unix 套接字或 TCP 套接字,这是由/etc/php-fpm.d/www.conf 配置文件中的 listen 参数。

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

默认情况下,它被配置为侦听 Unix 套接字,如以下屏幕截图所示。这里的值稍后将在 Nginx 服务器块文件中指定。

7. 如果使用 Unix 套接字,您还应该为其设置正确的所有权和权限,如屏幕截图所示。取消注释以下参数并将其值设置为用户和组,以匹配 Nginx 运行时的用户和组。

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8.接下来,还在/etc/php.ini配置文件中设置系统范围的时区。

vi /etc/php.ini

查找行 “;date.timezone ” 并取消注释,然后按屏幕截图所示设置其值(使用适用于您所在地区/大陆和国家/地区的值)。

 
date.timezone = Africa/Kampala

9. 为了降低 Nginx 将使用其他扩展执行 PHP 代码的恶意用户的请求传递给 PHP-FPM 的风险,请取消注释以下参数并将其值设置为 <代码>0

cgi.fix_pathinfo=1

10.相对于上一点,还要取消注释 /etc/php-fpm.d/www.conf 文件中的以下参数。阅读评论以获取更多解释。

security.limit_extensions = .php .php3 .php4 .php5 .php7

第 3 步:安装 Composer 和 Laravel PHP 框架

11. 接下来,通过运行以下命令安装 Composer 软件包。第一个命令下载安装程序,然后使用 PHP 运行它。

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

12. 现在已经安装了 Composer,使用它来安装 Laravel 文件和依赖项,如下所示。将 mysite.com 替换为存储 Laravel 文件的目录名称,绝对路径(或 Nginx 配置文件中的根路径)将为 /var/www/html/mysite .com。

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com

如果在此过程中一切顺利,应用程序应已成功安装,并应生成密钥,如以下屏幕截图所示。

13.在安装过程中,.env环境文件已创建,所需的应用程序也已生成,因此您无需像以前那样手动创建它们。要确认这一点,请使用 ls 命令运行 laravel 根目录的长列表。

ls -la mysite.com/

14. 接下来,您需要配置 storagebootstrap/cache 目录的正确所有权和权限,以便 Nginx Web 可写入服务器。

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15.如果您的服务器上启用了SELinux,您还应该更新存储引导/缓存的安全上下文> 目录。

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'

步骤 4:为 Laravel 配置 Nginx 服务器块

16.要使Nginx开始为您的网站或应用程序提供服务,您需要在.conf文件中为其创建一个服务器块。 >/etc/nginx/conf.d/ 目录如图所示。

vi /etc/nginx/conf.d/mysite.com.conf

将以下配置复制并粘贴到文件中。记下 root 和 fastcgi_pass 参数。

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/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;
        }
}

17.保存文件并运行检查Nginx配置语法是否正确。

nginx -t

18.然后重新启动PHP-FPMNginx服务以使最近的更改生效。

systemctl restart php-fpm
systemctl restart Nginx

第 5 步:从 Web 浏览器访问 Laravel 网站

19. 访问 Laravel 网站 mysite.com,该网站不是完全限定域名 (FQDN),也未注册(仅用于测试目的) ,我们将使用本地计算机上的 /etc/hosts 文件来创建本地 DNS。

运行以下命令,在所需文件中添加服务器IP地址和域(根据您的设置替换值)。

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. 接下来,在本地计算机上打开网络浏览器并使用以下地址进行导航。

http://mysite.com

您已在 CentOS 8 上成功部署 Laravel。您现在可以开始使用 Laravel 开发您的网站或 Web 应用程序。有关更多信息,请参阅 Laravel 入门指南。