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

[经验分享] 编译安装Apache、php、xcache、FastCGI及相关整合

[复制链接]

尚未签到

发表于 2018-11-23 13:52:52 | 显示全部楼层 |阅读模式
编译安装Apache、php、xcache、FastCGI及相关整合

一:编译php工作在xcache模式下
在编译安装之前,要首先确保其安装环境,需要安装相关的开发环境的包组“Development tools”和“Server Platform Development”
Apache
1:安装apache需要先安装apr包和apr-util包,还依赖于pcre-devel包,所以我们要先安装所依赖的包。系统自带的apr和apr-util版本较老,我们这里需要手动去升级,升级的方式有2种,一种是直接升级rpm包,还有一种可以通过源码来进行编译,我们这里使用源码编译进行安装。我们以apr-1.4.6.tar.bz2apr-util-1.5.2.tar.bz2为例。
  #yum -y install pcre-devel
(1) 编译安装apr
  # tar xf apr-1.4.6.tar.bz2
  # cd apr-1.4.6
  # ./configure --prefix=/usr/local/apr
  # make && make install
(2) 编译安装apr-util
  # tar xf apr-util-1.5.2.tar.bz2
  # cd apr-util-1.5.2
  # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  # make && make install
(3)编译安装apache
#tar xf httpd-2.4.6.tar.bz2
  #cd httpd-2.4.6
  # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
  # make && make install

各选项的意义:
--prefix=/usr/local/apache #指定httpd的安装路径
--sysconfdir=/etc/httpd24 #指定安装后配置文件的路径
--enable-so #这项是关键:支持动态模块装卸载,如果不写的话,php没办法以模块的方式编译成apache的模块了
--enable-ssl #支持https
--enable-cgi #支持cgi动态执行  
--enable-rewrite #支持url重写
--with-zlib #支持使用zlib库将数据发送到客户端之前进行压缩
--with-pcre #和依赖的pcre软件包相关
--with-apr=/usr/local/apr #依赖于apr告知apr的安装路径
--with-apr-util=/usr/local/apr-util #依赖于apr-util,告知其安装路径
--enable-modules=most #支持多数模块
--enable-mpms-shared=all #构建MPM为动态模块,将所有的模块都设为动态共享,可以在系统运行时加载
--with-mpm=prefork #指定安装的模块式prefork,如果安装后想要更改,可以再编辑LoadModule指令内容选择不同的模块。
2:为其提供服务脚本。
  # cd /etc/rc.d/init.d/
  # cp httpd httpd24 以httpd的服务脚本为基础进行修改
  #vim httpd24  
找到以下选项的位置对其进行修改

DSC0000.png
  #chkconfig --add httpd24 添加httpd24服务
  #chkconfig --list httpd24 查看服务的运行状态,默认是关闭的
如果想要设定自动开机启动:
  #chkconfig httpd24 on
  #service httpd24 start 启动服务
检查80端口是否处于监听状态
  #ss -tanl
然后我们通过浏览器做访问测试。
PHP
注意:编译安装php之前,要确保apache和mysql安装成功,因为php的有些选项依赖它们的某些文件。mysql在前面的博客中我们已经演示安装了,所以我们可以安装php了。
1:我们以php-5.4.19.tar.bz2为例
  #tar xf php-5.4.19.tar.bz2
  #cd php-5.4.19
在这个目录下, php.ini-development是在开发环境中建议使用的模板;php.ini-production是在生产环境中建议使用的模板。

编译的时候依赖于libmcrypt-develmhash-devel,所以我们先安装这两个包。
  # yum install libmcrypt-devel mhash-devel

  #./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
各选项的意义:
--prefix=/usr/local/php #指定安装路径
--with-mysql=/usr/local/mysql #指定mysql的安装路径
--with-openssl #支持加密功能
--with-mysqli=/usr/local/mysql/bin/mysql_config #指定mysql的高级接口
--enable-mbstring #支持多字节的字符
--with-freetype-dir #支持多种字体文件库
--with-jpeg-dir #支持jpeg图片格式
--with-png-dir #支持pnf图片格式
--with-zlib #支持使用zlib库将数据发送到客户端之前进行压缩
--with-libxml-dir=/usr #指定扩展标记语言库文件路径
--enable-xml     #支持扩展标记语言
--enable-sockets #php可以基于sockets进行通信
--with-apxs2=/usr/local/apache/bin/apxs #指将php安装成apache的动态模块
--with-mcrypt #支持加密解密功能
-with-config-file-path=/etc #指定配置文件的路径,主配置文件php.ini放在这里
--with-config-file-scan-dir=/etc/php.d #指定主配置文件的从配置文件路径,这里放置一些以.ini 结尾的文件
--with-bz2 #支持bz2的压缩格式
--enable-maintainer-zts #取决于mpm所选择的模型,worker和event时,需要这个选项,而如果是prefork,就不需要了

在编译安装的过程中还提示有别的包需要安装,其中有libxml2,bzip2,所以我们还要安装libxml2-devel,bzip2-devel。
注意:当提示我们所依赖的包时,我们要安装包的devel的包!
  #yum -y install libxml2-devel bzip2-devel
安装好了之后,再重新进行刚才执行错误的编译安装,这一步操作成功后,我们就快成功了。
接着编译:
  #make && make install
至此php安装成功了。
2:由于我们安装的php还不能满足要求,所以还要修改它的配置文件。

  # vim /etc/httpd24/httpd.conf
可以看到里面多了一个 modules/libphp5.so模块,有了这个模块,就可以解析php脚本了。此时php还不能识别php格式的网页,所以我们还要添加相关的配置。
找到AddType的相关说明添加选项:
AddType application/x-httpd-php .php
这样就能识别php结尾的网页了,还有些网页是以phps结尾的网页,如果也要识别这种格式的网页,那么我们还要添加选项:
AddType application/x-httpd-php-source .phps
我们要默认能识别的网页文件是以.php结尾的文件,还需要配置一些选项
找到Directorylndex的位置添加index.php


DSC0001.png
我们需要测试一下,但是我们有两个版本httpd,一个是编译的,还有一个是rpm包的,所以我们还要编辑一些文件
  #vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH
重新读取
  # . /etc/profile.d/httpd.sh
这时候测试就能找到我们所编译安装的httpd了
进行测试
  #httpd -t
可以验证一下
  #hash
然后重启服务
  #service httpd24 restart

3:验证一下我们安装的php,在这里我们用主服务器验证,主服务器默认的网页的安装路径为/usr/local/apache/htdocs
我们可以在自己的目录下编辑网页
  # mkdir /web/htdocs/ -pv
  # vim /web/htdocs/index.php
DSC0002.png
然后修改apache的主配置文件
#vim /etc/httpd24/httpd.conf
找到DocumentRoot的位置,编辑相关内容
#
DocumentRoot "/web/htdocs"

提供主配置文件
  # cd php-5.4.19
  # cp php.ini-production /etc/php.ini
重新启动使其生效
  #service httpd24 restart
然后在浏览器上测试,显示我们所编辑的网页,测试成功。

Pma的配置设置
我们再安装一个软件能够基于图形化的界面进行管理
phpMyAdmin-3.5.1-all-languages.tar.bz2为例:
在这里启用基于虚拟主机的方式提供服务
首先启用虚拟主机,先创建pma放置的路径
  # mkdir /web/htdocs/pma
  # tar xf phpMyAdmin-3.5.1-all-languages.tar.bz2
  # mv phpMyAdmin-3.5.1-all-languages/* /web/htdocs/pma
  #cd /web/htdocs/pma
  # cp config.sample.inc.php config.inc.php
  # vim config.inc.php
DSC0003.png
我们先生成随机数写在要求位置,最好用命令生成,
  # openssl rand -hex 4
  cc0d142f

接着配置虚拟主机
  #cd /etc/httpd24
  # vim httpd.conf
将中心主机注释掉
  #DocumentRoot "/web/htdocs"
找到vhosts
  # Virtual hosts
Include /etc/httpd24/extra/httpd-vhosts.conf

运维网声明 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-638745-1-1.html 上篇帖子: web服务器apache理论、实践详解 下篇帖子: Linux下实现Apache站点的安全
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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