设为首页 收藏本站
查看: 1472|回复: 0

CnetOS 6.8 编译安装LAMP以及fcgi虚拟主机

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-19 08:26:29 | 显示全部楼层 |阅读模式
纠结了好几天,还是做出来吧。LAMP这几个东西搭配起来干活,还是部署比较方便的。  php和httpd结合的方式有两种,一种module,即php作为httpd的一部分运行,默认安装方式就是模块方式。第二种就是fpm,可以单独运行。因为工作环境多为centos 6,所以在6上做。

安装前提示
    1.事先准备好开发环境,安装 "Development tools" "Server Platform Development"


安装顺序:1.mysql或者httpd 2.php-fpm,因为php依赖前两个程序

1.mysql 此处使用二进制格式包安装
    安装包:mysql-5.6.14-linux-glibc2.5-x86_64.tar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# useradd -r mysql 创建系统用户mysql,一般事先都会存在
# tar xf mysql-5.6.14-linux-glibc2.5-x86_64.tar -C /usr/local/ 解压二进制包
# cd /usr/local/
# ln -sv mysql-5.6.14-linux-x86_64 mysql 创建软链接,可以多次使用
# cd mysql
# chown -R root:mysql ./*   改变mysql目录下内容用户组
# mkdir -pv /mydata/data  /mydata/data 作为mysql数据文件存放位置
# chown -R mysql.mysql /mydata/data
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data --skip_name_resolve
# cp support-files/my-large.cnf  /etc/my.cnf 主配置文件
#  vim /etc/my.cnf

  [mysqld] 编辑mysqld配置段
.......
datadir = /mydata/data
skip_name_resolve = ON 阻止反解地址
innodb_file_per_table = ON

此时还不能用mysql直接登录,那就要去找可执行文件,就去bin
# echo "export PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh
# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld 设置启动服务
# chkconfig --add mysqld 加入开机启动
#  service mysqld start
#  ss -tnl 查看3306 是否启动




2.安装httpd-2.4
源码包:httpd-2.4.10.tar.bz2
    apr 和 apr-util也可以编译安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
~]# yum install pcre-devel openssl-devel libevent-devel apr-devel apr-util-devel -y
     安装需要的开发包,不然./configure不停的报错,缺这缺那,还不一起告知,一个一个来     

# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so
--enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all
--with-mpm=prefork --with-pcre --with-zlib --with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr-util

# make -j 4
# make install

# echo 'export PATH=/usr/local/apache2/bin:$PATH' > /etc/profile.d/httpd.sh
# . /etc/profile.d/httpd.sh 把apahectl 加入PATH,每次开机就可使用
# apachectl start httpd-2.4 启动
# ss -tnl 查看80端口是否启动



附加:cp /usr/local/bin/apachectl /etc/rc.d/init.d/httpd ,可以支持stop 和start选项
1
--sysconfdir=/etc/httpd -->生成主配置文件



3.编译安装php5
前两部分都相同,此处可有两种方式
编译安装php5:php-5.4.40.tar.bz2
  模块安装和fpm安装使用同一个包
安装:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
(1) 作为httpd的模块安装:
# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config --with-openssl --enable-mbstring
--enable-xml --enable-sockets --with-freetype-dir --with-gd --with-libxml-dir=/usr
--with-zlib --with-jpeg-dir --with-png-dir --with-mcrypt
--with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/etc/php.ini
--with-config-file-scan-dir=/etc/php.d/
# make -j 4 # && make install
   注意:如果mpm为线程模型,则需要额外使用--enable-maintainer-zts

复制配置文件:
# cp php.ini-production  /etc/php.ini         
  编译php为httpd的模块后,整合php至httpd:
  编译httpd.conf,添加:
  DirectoryIndex index.php index.html
  AddType application/x-httpd-php .php

*************************************************************************************
*************************************************************************************
*************************************************************************************

(2) 安装为fpm:php-fpm 可以独立启动,和模块安装的区别就是加了 --enable-fpm 选项
     此处坑好多: --enable-mbstring --with-mcrypt 搞了半天才装上
# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql
   --with-mysqli=/usr/local/mysql/bin/mysql_config --with-openssl --enable-mbstring --enable-xml
--enable-sockets --with-freetype-dir --with-gd --with-libxml-dir=/usr --with-zlib --with-jpeg-dir
--with-png-dir --with-mcrypt --enable-fpm --with-config-file-path=/etc/php.ini
--with-config-file-scan-dir=/etc/php.d/

# make -j 4 # && make install

#  mv /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php/php-fpm.conf
    php-fpm主配置文件

# /usr/local/php5/sbin/php-fpm 此处为php-fpm的服务可执行文件直接执行即可

# echo 'export PATH=/usr/local/php5/sbin/:$PATH' > /etc/profile.d/php-fpm.sh
  将php-fpm路径写入环境变量 ***

# pkill php-fpm 关闭php-fpm,ss -tnl 发现9000端口没有了



    全部编译成功。可以去下一个坑玩耍受虐了。好开心
********************************************************************************
测试一下是否能正常工作,做个虚拟主机,进行下反向代理
要使用fcgi反向代理需要启用两个模块

php-fpm:FastCGI Process Manager
fpm

1.客户端请求URL到达httpd
2.httpd上的fcgi反代模块至fpm
3.fpm找资源
    静态资源

    httpd处理
动态资源
httpd中有一个fcgi模块。进行反向代理至fpm,将客户端送达的
RL从httpd转交给fpm,fpm创建子进程进行处理,
不在一台主机的情况
fpm监听动态资源所在主机
httpd监听静态资源所在主机

fcgi协议协议:
***启用httpd:proxy_module, proxy_fcgi_module,不然httpd -t 检测ProxyRequests会报错
ProxyRequests Off
ProxyPass
ProxyPassMatch ^(URL-PATTERN)$ fcgi://FCGI-SERVER:PORT/PATH/TO/DIR/$1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#vim /etc/httpd/httpd.conf
#DocumentRoot 注释掉中心主机
ServerName www.lh.com:80 去掉#
DirectoryIndex index.php index.html 可以识别多种后缀主页
LoadModule proxy_module modules/mod_proxy.so 去掉前面的注释#,启用这两个模块
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

下面直接把虚拟主机配置段放在httpd.conf中
<VirtualHost *:80>
    ServerName www.lh.com
    DocumentRoot "/web/lh"
    <Directory "/web/lh">
        Options None
        AllowOverride None
            Require all granted
        </Directory>
        ProxyRequests Off
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/lh/$1 吧
        ProxyPassMatch ^/(pm-status|ping)$ fcgi://127.0.0.1:9000/$1
        DirectoryIndex index.php index.html
</VirtualHost>

#mkdir -pv /web/lh
#vim /web/lh/index.php
    <h1>真麻烦啊</h1>
    <?php
        phpinfo();
    ?>




然后激动地打开浏览器,输入本机IP地址,能不能休息就看这下子了

spacer.jpg QQ截图20161019082614.png
居然乱码了,看来中文支持的包没装,但是调用的Server API FPM/FCGI出现了,就够了,老子去睡觉了




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-288177-1-1.html 上篇帖子: 详解LAMP源码编译安装 下篇帖子: LAMP环境-编译安装php-fpm 虚拟主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表