失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux后台服务器开发环境部署配置和验证(nginx+apache+php-fpm+FASTCGI)

linux后台服务器开发环境部署配置和验证(nginx+apache+php-fpm+FASTCGI)

时间:2019-04-24 18:08:26

相关推荐

linux后台服务器开发环境部署配置和验证(nginx+apache+php-fpm+FASTCGI)

后端开发|php教程

服务器,部署,开发,配置,环境

后端开发-php教程

linux后台服务器开发环境部署配置

水果机 源码 三网,deb无法拖入ubuntu,程序员tomcat系列,爬虫饲养指南,php教程视频入门技术,韩国 seo gulzw

引言

背景

随着公司互联网业务的不断增多,开发环境变得越来越复杂,为了便于统一服务器端的开发部署环境,特制定本配置文档。

使用软件

CentOS 6.3(Linux version 2.6.32-279.el6.x86_64)

gcc (GCC) 4.4.6 0305 (Red Hat 4.4.6-4)

本次配置

Nginx 1.5.8

Apache 2.4.7

php 5.3.26

安卓开发会员源码,Ubuntu中vim行数,网络爬虫是违法,php替换br,a la seolzw

目的

构造WEB前端技术架构,web前端的部署结构技术完全完成。

完整描述 nginx + apache + FASTCGI(C/C++) 和nginx + php-fpm +FASTCGI(PHP)两种FASTCGI架构。

nginx 安装

软件准备

/en/download.html

官网下载版本,nginx-1.5.8.tar.gz

网络调试助手源码,vscode程序有波浪线,ubuntu 挂在,tomcat7 多域名,sqlite与linq,网页设计垂直居中,asp fso遍历文件 传进数据库,手机app服务器端开发,充值 积分 插件,前端外联框架,防爬虫当,零基础php,做seo的公司有哪些,内网程序springboot,手机论坛网站 html5,制作一个网页代码,简单电商网页模板下载,免费网站后台模板,微信公众号消息页面代码,cms站点管理系统,仓储系统软件源程序lzw

/

官网下载 pcre-8.34.tar.gz

/

官网下载 zlib-1.2.5.tar.gz

/source/

官网下载 openssl-1.0.1d.tar.gz

工作目录准备

建立工作目录 nginx_make,把上面下载的文件都放到该目录下。

解压所有的 .tar.gz 文件,对应出现个目录。

安装 pcre

cd pcre-8.34

./configure –prefix=/usr/local/pcre-8.34

make

make install

安装zlib

如果本地已经安装了 zlib ,可以不安装了。

安装步骤类似上面的,但是强烈建议编译安装的时候指定目录和安装版本。

安装openssl

如果本地已经安装 openssl,可以不安装了。

安装步骤类似上面的,但是强烈建议编译安装的时候指定目录和安装版本

安装nginx

cd nginx-1.5.8

./configure –user=root –group=root –prefix=/usr/local/nginx-1.5.8 –pid-path=/usr/local/nginx-1.5.8/nginx.pid –error-log-path=/data/logs/nginx/err/nginx –http-log-path=/data/logs/nginx/acc/nginx –with-http_gzip_static_module –with-poll_module –without-mail_pop3_module –without-mail_imap_module –without-mail_smtp_module –with-pcre=../pcre-8.34 –with-cc-opt=-O2

make

make install

apache 安装

软件准备

/

官网下载版本,httpd-2.4.7.tar.gz

/

官网下载 apr-1.5.0.tar.gz

/

官网下载 apr-util-1.5.3.tar.gz

/

官网下载 pcre-8.34.tar.gz

工作目录准备

建立工作目录 apache_make,把上面下载的文件都放到该目录下。

解压所有的 .tar.gz 文件,对应出现个目录。

安装 apr

cd apr-1.5.0

./configure –prefix=/usr/local/apr-1.5.0

make

make install

安装 apr-util

cd apr-1.5.0

./configure –prefix=/usr/local/apr-util-1.5.3/ –with-apr=/usr/local/apr-1.5.3/bin/apr-1-config

安装 pcre

cd pcre-8.34

./configure –prefix=/usr/local/pcre-8.34/ –with-apr=/usr/local/apr-1.5.3/bin/apr-1-config

参考上面已经安装好的 pcre 。

安装apache

cd httpd-2.4.7

./configure –prefix=/usr/local/apache2.4.7/ –with-pcre=/usr/local/pcre-8.34/ –with-apr=/usr/local/apr-1.5.0/ –with-apr-util=/usr/local/apr-util-1.5.3/

make

make install

php 安装

软件准备

/releases/

官网下载版本,php-5.3.26.tar.gz

工作目录准备

建立工作目录 php_make,把上面下载的文件都放到该目录下。

解压所有的 .tar.gz 文件,对应出现个目录。

构造 libphp5.so

编译 php,构造 libphp5.so,用于 apache 解析 php。

cd php-5.3.26

make clean;

./configure –prefix=/usr/local/php-5.3.26 -with-apxs2=/usr/local/apache2.4.7/bin/apxs –with-curl –with-curlwrappers

make

make install

安装 php-fpm

编译 php,支持 php-fpm和 socket,并启用curl模块,用于 nginx 以 FASTCGI 模式解析执行 php。

cd php-5.3.26

make clean;

./configure –prefix=/usr/local/php-5.3.26 –enable-fpm –enable-sockets –with-curl –with-curlwrappers

make

make install

安装 php

cd php-5.3.26

make install

php.ini安装

cd php-5.3.26

cp php.ini-development /usr/local/php-5.3.26/lib/php.ini

nginx+php-fpm 配置

启动php-fpm

/usr/local/php-5.3.26/sbin/php-fpm -y /usr/local/php-5.3.26/etc/php-fpm.conf -c /usr/local/php-5.3.26/lib/php.ini

配置 nginx.conf

修改 /usr/local/nginx-1.5.8/conf/nginx.conf。

listen 8090;

charset utf-8;

location ~ \.php$ {

/usr/local/web_umsa/

FASTCGI_pass 127.0.0.1:9000;

FASTCGI_index index.php;

#FASTCGI_param SCRIPT_FILENAME $document_root$FASTCGI_script_name;

include FASTCGI_params;

}

配置FASTCGI_params

修改 /usr/local/nginx-1.5.8/conf/FASTCGI_params。

# PHP only, required if PHP was built with –enable-force-cgi-redirect

FASTCGI_param REDIRECT_STATUS 200;

FASTCGI_param SCRIPT_FILENAME $document_root$FASTCGI_script_name;

测试 phpinfo.php

按下面内容建立 php 测试文件。

cat /usr/local/web_umsa/phpinfo.php

<?php

echo phpinfo();

?>

验证FASTCGI模式php

tcpdump -ilo -XAvs0 port 9000

抓包,然后浏览器执行

http://169.254.10.12:8090/phpinfo.php

浏览器输出PHP 的安装配置信息。

能看到抓包,9000 端口有数据发送,可以确认,传输的协议是 FASTCGI协议。

apache 配置

php5_module模块引导

启用 /usr/local/apache2.4.7/conf/httpd.conf 里面的。

LoadModule php5_module modules/libphp5.so

配置 Directory /

修改 /usr/local/apache2.4.7/conf/httpd.conf 里面的。

Options FollowSymLinks

AllowOverride None

Order deny,allow

Allow from all

配置 DocumentRoot

修改 /usr/local/apache2.4.7/conf/httpd.conf 里面的。

DocumentRoot “/usr/local/web_umsa”

配置

修改 /usr/local/apache2.4.7/conf/httpd.conf 里面的。

#支持cgi

ScriptAlias /cgi-bin/ “/usr/local/web_umsa/cgi-bin/”

#支持 FASTCGI

ScriptAlias /fcg-bin/ “/usr/local/web_umsa/fcgi-bin/”

配置

修改 /usr/local/apache2.4.7/conf/httpd.conf 里面的。

AddType application/x-httpd-php .php .phtml .php3 .inc

AddType application/x-httpd-php-source .phps

配置

修改 /usr/local/apache2.4.7/conf/httpd.conf 里面的。

AddHandler cgi-script .cgi .ums

Options FollowSymLinks

AllowOverride All

Order deny,allow

Allow from all

Options +ExecCGI

启动 apache

/usr/local/apache2.4.7/bin/apachectl start

验证 apache

http://169.254.10.12/phpinfo.php

http://169.254.10.12/

两个访问都能出来,证明安装成功。

apache-FASTCGI(C/C++) 配置

mod_fcgid加载

文件下载

官网 /mod_fcgid/ 下载

得到文件 mod_fcgid-2.3.9.tar.gz

编译安装

把 mod_fcgid-2.3.9.tar.gz 文件解压到 apache 原代码目录 httpd-2.4.7,得到目录

mod_fcgid-2.3.9,完整结构应该是 httpd-2.4.7/mod_fcgid-2.3.9。

执行apache 命令../bin/apachectl -k restart,把httpd 服务起来。

设置环境变量 APXS,设置后可查看效果

# echo $APXS

/usr/local/apache2.4.7/bin/apxs

其中的 /usr/local/apache2.4.7/bin/apxs 是刚才 apache 的安装目录。

执行目录下面的

./configure.apxs;make;make install

查看安装结果

# grep “mod_fcgid.so” /usr/local/apache2.4.7/conf/httpd.conf

LoadModule fcgid_module modules/mod_fcgid.so

能查看到已经启用了 mod_fcgid 模块。

配置FASTCGI支持

配置

修改 /usr/local/apache2.4.7/conf/httpd.conf 里面的。

SetHandler fcgid-script

AddHandler fcgid-script .fcgi .ums

Options FollowSymLinks

AllowOverride All

Order deny,allow

Allow from all

Options +ExecCGI

重启 apache,../bin/apachectl -k restart。

测试FASTCGI(C/C++)

下载FASTCGI库

官网/的/drupal/node/5位置(Current: download | docs | browse)下载 C/C++的开发包。最新版本是 2.4.1,得到文件fcgi-2.4.1-SNAP-0910052249.tar.gz。

编译库

解压文件,并进入目录。执行传统命令

./configure;make

看到

ranlib .libs/libfcgi.a

表示库已经生产,其他的编译错误不理会(是C++ 的错误,版本太老了)。

执行命令ls libfcgi/.libs/ -al,可以查询到 libfcgi.a和 libfcgi.so.0.0.0

动态库和静态库都有了。

构造例子

进入目录 exapmle,执行命令(编译cgi并部署到指定目录)

# gcc echo.c -o echo.ums ../libfcgi/.libs/libfcgi.a

#cp echo.ums /usr/local/web_umsa/fcgi-bin/

查看效果

http://169.254.10.12/fcgi-bin/echo.ums

可以看到页面输出:

Request number 8, Process ID: 28256

不断刷新页面,进程编号不变,序号不断增加。同时,服务器端查看发现

# ps aux|grep echo.ums

该进程一直存在,进程编号和页面一致。

开发环境验证(仅限于内部验证)

需要配置 nginx 转发,支持 .ums 解析。

#TCP长连接,nginx 作为 proxy

upstream tcp_keepalive {

server 127.0.0.1:8080;

keepalive 256;

}

#以php-fpm 实现的 fastcgi 部署方式

location ~ \.php$ {

root /data/php_project;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

#记得修改 fastcgi_params,增加配置

# PHP only, required if PHP was built with –enable-force-cgi-redirect

#fastcgi_param REDIRECT_STATUS 200;

#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

#以为 .fcgi,.ums 结尾的请求使用http协议转发给 tcpend

location ~* \.(fcgi|ums)$ {

#root root

# 向后端服务器发起请求时添加指定的header头信息

#proxy_set_header Host $http_host;

# 向后端服务器发送真实 IP

#proxy_set_header X-Real-IP $remote_addr;

# 让后端如php能直接通过变量获取真实IP

#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://tcpend;

proxy_http_version 1.1;

proxy_set_header Connection “”;

proxy_set_header Host $http_host;

proxy_set_header X-Forwarded-By $server_addr:$server_port;

proxy_set_header X-Forwarded-For $remote_addr;

#proxy_set_header Connection “”;

proxy_connect_timeout 5s;

proxy_read_timeout 10s;

proxy_send_timeout 5s;

}

如果觉得《linux后台服务器开发环境部署配置和验证(nginx+apache+php-fpm+FASTCGI)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。