搜索
首页后端开发php教程CentOS7下Laravel部署并用nginx转发

CentOS7下Laravel部署并用nginx转发

Apr 18, 2018 am 10:30 AM
centos7laravelnginx

这篇文章介绍的内容是关于CentOS7下Laravel部署并用nginx转发,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

本文章仅作为个人笔记

  • 搭建php运行环境

    • 运行service php-fpm start启动php-fpm服务,运行ps aux | grep php-fpm验证是否成功安装php-fpm服务。

    • 如果使用第二种方案安装源的,请用如下脚本

      yum install php72-php-cli.x86_64 php72-php-common.x86_64 php72-php-fpm.x86_64 php72-php-devel.x86_64 php72-php-gd.x86_64 php72-php-intl.x86_64 php72-php-mbstring.x86_64 php72-php-pecl-mcrypt.x86_64 php72-php-mysqlnd.x86_64 php72-php-opcache.x86_64 php72-php-pdo.x86_64 php72-php-pear.noarch php72-php-xml.x86_64 -y
    • 有php源

    • 也有可能有部分用户无法访问这两个文件,此时可以换用下面方式(7.2),因此后面的部分教程可能也会不一样,需注意

      yum install epel-release -y
      rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    • php源比较旧

    • php:

    • 判断是否有php的yum源:
         yum search php

    • 系统本身自带php的yum源,但是版本太旧,还是5.4的,为了安装最新的源这里准备安装新yum源。

    • 安装php的yum源:

      rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
      rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    • 此时再运行 yum search php 会发现多出来更多选项

    • 安装php及部分相关插件(php-cli为shell相关,php-common为常用函数相关,php-devel为编译相关,php-fpm为服务相关,php-gd为图片处理相关,php-intl为国际化相关,php-mbstring为多字符串处理相关,php-mcrypt为加密相关,php-mysqlnd为mysql相关,php-opcache为性能加速相关,php-pdo为数据对象相关,php-pear为php应用扩展相关,php-xml为xml相关)(这里安装php7.1)使用了第一种的请用第一个脚本:
         yum install php71w-cli.x86_64 php71w-common.x86_64 php71w-fpm.x86_64 php71w-devel.x86_64 php71w-gd.x86_64 php71w-intl.x86_64 php71w-mbstring.x86_64 php71w-mcrypt.x86_64 php71w-mysqlnd.x86_64 php71w-opcache.x86_64 php71w-pdo.x86_64 php71w-pear.noarch php71w-xml.x86_64 -y

    • 运行php –version查看php是否安装并配置完成。出现与截图类似的版本信息则表示安装php配置完成,

    • php版本

    • php-fpm测试

  • 安装周边服务(nginx/composer/git/mysql/redis)

    • 这几个服务基本可以在基本yum源中安装,如果没有composer,可运行cd /tmp
      curl –sShttps://getcomposer.org/installer| php
      mv composer.phar/usr/local/bin/composer  即可完成composer的安装

  • 服务代码准备

    • 为了方便php服务的部署和更新,笔者使用git进行项目下载及更新。

    • 进入准备部署服务的文件夹,运行 git clone git地址(例:git clone root@www.temp.com:/git/php/markingphp)

    • 下载php代码

    • 此时项目权限为root,如果这样运行php-fpm可能会权限不足,笔者这里为了简便及对php项目静态资源nginx管理,将项目权限更改为nginx,并将php-fpm的运行者权限改为nginx。

  • php及项目相关配置

    • nginx错误日志

    • 服务转发失败

    • 初始化mysql

    • 运行 chown nginx:nginx -Rf 文件夹名(例:chown nginx:nginx -Rf markingphp)

    • 运行rpm -ql php17w-fpm.x86_64获取php-fpm安装地址

    • 获取php-fpm安装地址

    • 尝试得知 /etc/php-fpm.d/www.conf 为配置文件

    • php-fpm配置文件

    • 更改user = apache与 group = pache 为 user = nginx group = nginx 如果有必要可以更改127.0.0.1:9000为想要的端口

    • 为了服务器信息安全及项目大小控制,git项目未上传项目配置与项目引用库,所以需要重新新建项目配置文件并配置

    • 项目结构

    • 配置文件

    • 运行 composer update -vvv 下载库

    • 下载库失败

    • 如果库下载失败,可能是库被墙的原因,更改composer.json添加国内源再运行即可。


    “repositories”: { 
       “packagist”: { 
          “type”: “composer”, 
          “url”: “https://packagist.phpcomposer.com” 
       } 
    }
    • 国内源

    • 再运行 php artisan serve 可测试当前项目库是否完整,出现如下说明项目库下载完成。

    • 尝试启动项目测试

    • 初始化项目mysql表(php artisan migrate:refresh)

    • 配置nginx以转发80端口服务到php-fpm的服务,
         

      server { 
          listen 80; 
          location / { 
             root /php/markingphp/public/; 
             index index.php index.html index.jsp; 
          } 
          location ~ .php{  
               root html;  
               fastcgi_pass 127.0.0.1:9000;  
               fastcgi_index index.php;  
               fastcgi_param SCRIPT_FILENAME
    document_root$fastcgi_script_name; 
              include fastcgi_params; 
         } 
       }
    • 运行curl localhost 判断服务是否正常转发。

    • 运行 vim /var/log/nginx/error.log 检查nginx的log会发现log提示权限不足,可是我们已经把文件权限付给了nginx。

    • 最终得知是因为selinux的缘故,此时只需运行 setenforce 0 即可关闭selinux(临时),再修改配置文件 /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,这样下次重启selinux依然是关闭的。再运行curl localhost 会发现服务已经可以正常服务了。


以上是CentOS7下Laravel部署并用nginx转发的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP类型提示如何起作用,包括标量类型,返回类型,联合类型和无效类型?PHP类型提示如何起作用,包括标量类型,返回类型,联合类型和无效类型?Apr 17, 2025 am 12:25 AM

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。

PHP如何处理对象克隆(克隆关键字)和__clone魔法方法?PHP如何处理对象克隆(克隆关键字)和__clone魔法方法?Apr 17, 2025 am 12:24 AM

PHP中使用clone关键字创建对象副本,并通过\_\_clone魔法方法定制克隆行为。1.使用clone关键字进行浅拷贝,克隆对象的属性但不克隆对象属性内的对象。2.通过\_\_clone方法可以深拷贝嵌套对象,避免浅拷贝问题。3.注意避免克隆中的循环引用和性能问题,优化克隆操作以提高效率。

PHP与Python:用例和应用程序PHP与Python:用例和应用程序Apr 17, 2025 am 12:23 AM

PHP适用于Web开发和内容管理系统,Python适合数据科学、机器学习和自动化脚本。1.PHP在构建快速、可扩展的网站和应用程序方面表现出色,常用于WordPress等CMS。2.Python在数据科学和机器学习领域表现卓越,拥有丰富的库如NumPy和TensorFlow。

描述不同的HTTP缓存标头(例如,Cache-Control,ETAG,最后修饰)。描述不同的HTTP缓存标头(例如,Cache-Control,ETAG,最后修饰)。Apr 17, 2025 am 12:22 AM

HTTP缓存头的关键玩家包括Cache-Control、ETag和Last-Modified。1.Cache-Control用于控制缓存策略,示例:Cache-Control:max-age=3600,public。2.ETag通过唯一标识符验证资源变化,示例:ETag:"686897696a7c876b7e"。3.Last-Modified指示资源最后修改时间,示例:Last-Modified:Wed,21Oct201507:28:00GMT。

说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1?说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1?Apr 17, 2025 am 12:06 AM

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP:服务器端脚本语言的简介PHP:服务器端脚本语言的简介Apr 16, 2025 am 12:18 AM

PHP是一种服务器端脚本语言,用于动态网页开发和服务器端应用程序。1.PHP是一种解释型语言,无需编译,适合快速开发。2.PHP代码嵌入HTML中,易于网页开发。3.PHP处理服务器端逻辑,生成HTML输出,支持用户交互和数据处理。4.PHP可与数据库交互,处理表单提交,执行服务器端任务。

PHP和网络:探索其长期影响PHP和网络:探索其长期影响Apr 16, 2025 am 12:17 AM

PHP在过去几十年中塑造了网络,并将继续在Web开发中扮演重要角色。1)PHP起源于1994年,因其易用性和与MySQL的无缝集成成为开发者首选。2)其核心功能包括生成动态内容和与数据库的集成,使得网站能够实时更新和个性化展示。3)PHP的广泛应用和生态系统推动了其长期影响,但也面临版本更新和安全性挑战。4)近年来的性能改进,如PHP7的发布,使其能与现代语言竞争。5)未来,PHP需应对容器化、微服务等新挑战,但其灵活性和活跃社区使其具备适应能力。

为什么要使用PHP?解释的优点和好处为什么要使用PHP?解释的优点和好处Apr 16, 2025 am 12:16 AM

PHP的核心优势包括易于学习、强大的web开发支持、丰富的库和框架、高性能和可扩展性、跨平台兼容性以及成本效益高。1)易于学习和使用,适合初学者;2)与web服务器集成好,支持多种数据库;3)拥有如Laravel等强大框架;4)通过优化可实现高性能;5)支持多种操作系统;6)开源,降低开发成本。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)