php框架laravel 5.1环境构建(CentOS 6.5)之FastCGI

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
日志服务 SLS,月写入数据量 50GB 1个月
简介:

1、理论部分

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

2、实验部分

2.1、实验环境

lfSer:

hostname=laravel-fastCGI

ipaddress=10.168.0.177


client:

hostnmae=client

ipaddress=10.168.0.8

2.2、yum源的安装

In lfSer

1
2
3
4
yum  install  -y https: //mirror .webtatic.com /yum/el6/latest .rpm 
yum  install  -y httpd php56w php56w-fpm php56w-mysql php56w-pdo php56w-mbstring php56w-mcrypt php56w-pear
yum  install  -y mysql mysql-server
yum -y  install  wget unzip

2.3、配置部分

In lfSer

2.3.1、step1

1)检查是否引入php模块(默认开启),主配置文件:

1
grep  ^Include  /etc/httpd/conf/httpd .conf

包含如下内容:

1
Include conf.d/*.conf

查看PHP支持模块配置文件:

1
less  /etc/httpd/conf .d /php .conf

包含如下内容:

1
2
3
4
5
6
7
8
9
10
11
<IfModule prefork.c>
   LoadModule php5_module modules /libphp5 .so
< /IfModule >
<IfModule worker.c>
   LoadModule php5_module modules /libphp5-zts .so
< /IfModule >
 
AddHandler php5-script .php
AddType text /html  .php
 
DirectoryIndex index.php

2)关闭apache的php模块

1
mv  /etc/httpd/conf .d /php .conf  /etc/httpd/conf .d /php .conf.default

2.3.2、step2

启动httpd&mysqld服务:

1
2
3
4
5
6
/etc/init .d /php-fpm  start
chkconfig php-fpm on
/etc/init .d /httpd  start
chkconfig httpd on
/etc/init .d /mysqld  start
chkconfig mysqld on

注:关于MySQL的安全配置请运行,这里不再详述!

1
mysql_secure_installation

2.3.3、step3

配置httpd服务

1)vim编辑/etc/httpd/conf/httpd.conf

启用并更改ServerName(去掉ServerName前面的#)

启用NameVirtaulHost(去掉ServerName前面的#)

1
2
ServerName www.cmdschool.org:80
NameVirtualHost *:80

2.3.4、step4(可选)

1)下载composer并全局安装

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

2)查看全局命令目录

1
echo  $PATH

显示如下:

1
/usr/local/sbin : /usr/local/bin : /sbin : /bin : /usr/sbin : /usr/bin : /root/bin

3)移动composer执行文件到全局命令目录(选择分隔符":"的一段路径)

1
mv  composer.phar  /usr/local/bin/composer

2.3.5、step5

安装框架

1)下载框架

1
wget http: //down .golaravel.com /laravel/laravel-master .zip

2)解压框架

1
unzip laravel-master.zip

3)拷贝框架到指定目录

1
2
mkdir  /var/www/www .cmdschool.org
cp  -rf laravel-master/* www.cmdschool.org/

2.3.6、step6

权限设置

1)目录权限设置

1
2
chown  :apache -R www.cmdschool.org
chmod  770 -R www.cmdschool.org

2)确保selinux是Enforcing状态:

1
getenforce

3)恢复预设的selinux type:

1
restorecon -RFvv  /var/www/www .cmdschool.org/

4)检查当前的selinux type:

1
ll -dZ  /var/www/www .cmdschool.org/

2.3.7、step7

设置虚拟目录:

vim编辑/etc/httpd/conf.d/www.cmdschool.org.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<VirtualHost *:80>
     ServerName www.cmdschool.org
 
     DocumentRoot  /var/www/www .cmdschool.org /public/
     <Directory  /var/www/www .cmdschool.org /public/ >
             Options FollowSymlinks
             DirectoryIndex index.php
             AllowOverride All
             Order allow,deny
             Allow from all
     < /Directory >
 
     <LocationMatch  "^(.*\.php)$" >
             ProxyPassMatch fcgi: //127 .0.0.1:9000 /var/www/www .cmdschool.org /public/
     < /LocationMatch >
 
     LogLevel debug
     ErrorLog  /var/log/apache2/www .cmdschool.org.error.log
     CustomLog  /var/log/apache2/www .cmdschool.org.access.log combined
< /VirtualHost >

8)重启httpd服务:

1
2
/etc/init .d /php-fpm  restart
/etc/init .d /httpd  restart

2.3.8、step8

设置防火墙:

vim编辑/etc/sysconfig/iptables

1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

重启防火墙:

1
/etc/init .d /iptables  restart

2.4.9、step9

In Client:

以下在windows客户端下测试:

1)修改本机的hosts(相当于dns解析)

1
notepad %SystemRoot%\System32\drivers\etc\hosts

增加如下内容:

1
10.168.0.177 www.cmdschool.org

2)浏览器测试

浏览器测试你可以看到如下提示:

wKioL1ZlQaPBO86GAAA0JhpSOok107.png

3)日志的排查方法

In lfSer:

参阅如下日志可知属于代码级别的错误,排查方法如下:

配置文件日志:

tail -f /var/log/apache2/www.cmdschool.org.error.log

wKioL1ZlQpfAusT_AAEP8HDUDio442.png

监看以上信息表明PHP代码已经完成送到fastCGI网关

tail -f /var/log/php-fpm/error.log

wKiom1ZlQp3SwsZWAABUkDLyr4Q598.png

监看以上日志无任何反应,证明php-fpm解析php代码无任何异常。

tail -f /var/www/www.cmdschool.org/storage/logs/laravel.log

wKiom1ZlQ6aw2VkuAAIdI-OVT4M009.png

监看以上信息发现错误,可见这种错误是框架已经预见的,应该由php程序员处理,与运维无关。









本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1720282,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
190 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
2月前
|
关系型数据库 MySQL PHP
利用PhpStorm、phpstudy和xdebug快速构建PHP调试环境
至此,我们已经完成了PHP调试环境的构建。现在,你可以在PhpStorm中打开你的PHP项目,设置断点,然后开始调试你的代码了。希望这个指南能帮助你快速构建PHP调试环境,提高你的开发效率。
204 26
|
3月前
|
前端开发 算法 NoSQL
前端uin后端php社交软件源码,快速构建属于你的交友平台
这是一款功能全面的社交软件解决方案,覆盖多种场景需求。支持即时通讯(一对一聊天、群聊、文件传输、语音/视频通话)、内容动态(发布、点赞、评论)以及红包模块(接入支付宝、微信等第三方支付)。系统采用前后端分离架构,前端基于 UniApp,后端使用 PHP 框架(如 Laravel/Symfony),配合 MySQL/Redis 和自建 Socket 服务实现高效实时通信。提供用户认证(JWT 集成)、智能匹配算法等功能,助力快速上线,显著节约开发成本。
88 1
前端uin后端php社交软件源码,快速构建属于你的交友平台
|
2月前
|
Ubuntu Linux PHP
利用PHP压缩音频:Linux环境下的ffmpeg简易安装指南
希望这个指南能为你的编程之旅提供帮助。只需记住,每一行代码都像音乐的音符,组合在一起,创造出美妙的旋律。祝你编程愉快!
119 6
|
4月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
133 20
|
5月前
|
SQL 缓存 PHP
PHP框架详解 - symfony框架
Symfony框架凭借其灵活性、高性能和强大的社区支持,成为PHP开发领域的重要工具。无论是初学者还是资深开发者,都可以通过Symfony快速构建高质量的Web应用程序。通过深入理解Symfony的核心组件和最佳实践,开发者可以充分发挥其优势,提升开发效率和代码质量。
106 24
|
7月前
|
关系型数据库 MySQL PHP
PHP与MySQL的无缝集成:构建动态网站的艺术####
本文将深入探讨PHP与MySQL如何携手合作,为开发者提供一套强大的工具集,以构建高效、动态且用户友好的网站。不同于传统的摘要概述,本文将以一个生动的案例引入,逐步揭示两者结合的魅力所在,最终展示如何通过简单几步实现数据驱动的Web应用开发。 ####
|
7月前
|
数据库连接 PHP 开发者
PHP中的异常处理:构建健壮的应用程序####
本文深入探讨了PHP中异常处理的重要性和实践方法,通过具体代码示例和最佳实践,展示了如何利用try-catch语句、自定义异常类以及全局异常处理器来提升应用程序的稳定性和可维护性。无论你是初学者还是有经验的开发者,本文都将为你提供有价值的见解和实用技巧,帮助你构建更加健壮的PHP应用程序。 ####
|
7月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
231 4