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

[经验分享] 静态/动态编译在Apache+Php+Mysql的应用

[复制链接]

尚未签到

发表于 2018-11-23 13:21:12 | 显示全部楼层 |阅读模式
  大家有不少都成功实现apache+php+mysql,网上的文章也有不少,但我发现不少文章都是抄来抄去,并且没有说明白编译的方式,有的索性apache1.3的编译方法原封不动的搬过来套在apache2.0,显然误导一些菜鸟!
  今天就以apache+mysql+php说一下静态编译和DSO动态编译的区别,我会分别拿apache1.3.27和apache2.0.46
  说明,因为两个版本的编译命令是有所区别的。
  系统和所需软件:
  Redhat9.0
  apache:1.3.27 和 2.0.46
  php: 4.3.2
  mysql:4.0.13
  首先来安装mysql,这不是我们的重点,所以关于mysql的安装配置我就很快过去了
  tar zvxf mysql-4.0.13.tar.gz
  cd mysql-4.0.13
  ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql &&
  make &&
  make install
  安装完成!
  然后初始化数据库
  /usr/local/mysql/bin/mysql_install_db
  设置权限:
  chown -R root /usr/local/mysql
  复制配置文件;
  cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
  启动mysql:
  /use/local/mysql/bin/mysqld_safe --user=root &
  修改密码:初始的root密码是空的
  /usr/local/mysql/bin/mysqladmin -u root -p password 1234
  enter password:
  把密码修改为1234,由于初始密码为空,所以enter password直接回车就行
  测试一下新的密码:
  mysql -u root -p mysql
  enter password:1234
  如果顺利的话就能进入mysql。
  好了mysql就讲这么多,有什么问题也不要问我,我对mysql不是很熟悉。好了下面是我们的重头戏,我将分别
  通过静态和动态DSO编译apache+php
  至于什么是静态,什么是DSO动态我这里就不多讲了,本人个人倾向大家用DSO动态编译。
  首先是apache1.3.29+php4.3.4+mysql4.0.13的静态编译
  apache第一次编译,并不要安装,因为php的编译需要apache至少已经编译过一次
  tar zvxf apache_1.3.27.tar.gz
  cd apache_1.3.27
  ./configure --prefix=/usr/local/apache
  #编译php
  tar zvxf php4.3.4.tar.gz
  cd php4.3.4
  ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.27 &&
  make &&
  make install
  #第二次编译安装apache:
  cd ../apache_1.3.29
  ./configure --prefi=/usr/local/apache --activate-module=src/modules/php4/libphp4.a &&
  make &&
  make install
  cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini
  #修改/usr/local/apache/conf/httpd.conf
  查找,在此范围添加
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps
  注意:apache和php的源码包在同一个目录,--with-apache=../apache_1.3.27是指向源码解压的目录
  #ok!静态编译完成,大家只要启动一下服务器
  /usr/local/apache/bin/apachectl start
  然后些个php测试页info.php:内容如下
  phpinfo();
  ?>
  正常的话,应该能看到php的信息了,恭喜你静态编译成功!!!
  我们再来讲讲DSO动态编译的方法:
  首先编译安装apache
  tar zvxf apache_1.3.29
  cd apache_1.3.29
  ./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max &&
  make &&
  make install
  so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译
  enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。
  然后编译php
  tar zvxf php4.3.4.tar.gz
  cd php4.3.2
  ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs &&
  make &&
  make install
  然后修改httpd.conf,方法同静态编译的方法
  OK,DSO动态编译就完成了,大家应该看出明堂来了吧,中间有什么区别应该看的很清楚了吧!!!
  接下来我们讲apache2.0.46+php4.3.2的编译方法,我这里只讲DSO动态编译,静态编译实在没有时间测试了,留给大家自己去试了。
  一样现编译安装apache
  tar zvxf httpd-2.0.46.tar.gz
  cd httpd-2.0.46
  ./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most &&
  make &&
  make install
  --enable-so 此选项SO capability. This module will be automatically
  --enable-mods-shared=most   The default set is most.此选项已经为默认值了
  大家注意了--enable-so相当与1.3.27的--enable-module=so,而--enable-mods-shared=most又等同与以前的
  --enable-shared=max 这些区别大家要注意了,否则编译错了不要找我
  然后还是编译PHP
  tar zvxf php4.3.2.tar.gz
  ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs &&
  make &&
  make install
  注意这里是apxs2!!!
  修改httpd.conf与1.3.27也有所不同,大家寻找Add Type application/x-tar .tgz 在下面添加
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps
  另外要显示中文的话,修改:
  AddDefaultCharset gb2312
  告知 Apache 将特定的扩展名解析成 PHP,例如,让 Apache 将扩展名 .php 解析成 PHP。为了避免潜在的危险,例如上传或者创建类似 exploit.php.jpg 的文件并被当做 PHP 执行,我们不再使用 Apache 的 AddType 指令来设置。参考下面的例子,你可以简单的将需要的扩展名解释为 PHP。我们演示为增加.php。
  
SetHandler application/x-httpd-php
  

  启动一下apache
  /usr/local/apache2/bin/apachectl start
  用那个info.php测试一下,应该不会有多大问题哦!!!



运维网声明 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-638714-1-1.html 上篇帖子: linux下apache启动问题(dummy 下篇帖子: apache下实现CA颁发及来源控制身份验证
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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