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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

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,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
存储 关系型数据库 PHP
深入浅出PHP:构建动态网页的基石
在数字时代的浪潮中,PHP作为一门强大的服务器端脚本语言,为无数网站的建设和开发提供了动力。本文将通过浅显易懂的方式,引导初学者理解PHP的核心概念,掌握基础语法,并介绍如何利用PHP进行数据库交互和处理表单数据,最终实现一个简单动态网页的搭建。无论你是编程新手还是希望扩展技能的开发者,这篇文章都将为你开启PHP世界的大门。
|
14天前
|
机器学习/深度学习 PHP 开发者
探索PHP中的面向对象编程构建你的首个机器学习模型:以Python和scikit-learn为例
【8月更文挑战第30天】在PHP的世界中,面向对象编程(OOP)是一块基石,它让代码更加模块化、易于管理和维护。本文将深入探讨PHP中面向对象的魔法,从类和对象的定义开始,到继承、多态性、封装等核心概念,再到实战中如何应用这些理念来构建更健壮的应用。我们将通过示例代码,一起见证PHP中OOP的魔力,并理解其背后的设计哲学。
|
13天前
|
存储 关系型数据库 MySQL
PHP编程基础:构建你的第一个Web应用
【8月更文挑战第31天】 在数字时代的海洋里,每个人都可以成为自己命运的船长。本文将引领初学者启航,用PHP语言搭建起第一个属于自己的网站。我们将从浅入深,逐步探索PHP的世界,最终实现一个简单的个人博客系统。这不仅是一段代码的旅程,更是一次思维和技术的飞跃。
|
15天前
|
安全 前端开发 PHP
PHP与现代Web开发:构建高效和可扩展的应用程序
【8月更文挑战第29天】在这篇文章中,我们将深入探讨PHP如何适应现代Web开发的需求。我们将通过实际案例分析,揭示PHP的核心优势,并展示如何利用这些优势来构建高性能、可扩展的Web应用。文章不仅提供理论知识,还包括具体的代码示例,旨在帮助开发者更好地理解和运用PHP解决实际问题。
|
15天前
|
PHP
PHP中的面向对象编程:构建更高效的代码
【8月更文挑战第29天】在PHP的世界中,面向对象编程(OOP)是提升代码可维护性、可扩展性和复用性的利器。本文将通过浅显易懂的方式,带领读者探索PHP中OOP的核心概念,并通过实际代码示例揭示如何利用这些概念来编写更加高效和优雅的代码。无论你是PHP新手还是希望深化理解的老手,这篇文章都将为你打开一扇新窗,让你看到编码的艺术与哲学。
|
5天前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
13天前
|
前端开发 中间件 PHP
|
13天前
|
缓存 监控 PHP
深入PHP:构建高效Web应用的实用技巧
【8月更文挑战第31天】 本文旨在揭示如何通过实用的编程技巧提升PHP Web应用的性能和效率。我们将从基础优化谈起,逐步深入到高级策略,包括代码重构、数据库交互优化以及安全性增强。文章以简洁明了的语言和实际编码示例,带领读者理解并运用这些策略,从而在开发过程中做出更明智的决策。无论你是PHP新手还是资深开发者,这篇文章都能为你的项目带来实质性的提升。
|
13天前
|
缓存 中间件 PHP
Laravel 框架:优雅 PHP Web 开发的典范
【8月更文挑战第31天】
37 0
|
13天前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
27 0