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

[经验分享] LAMP编译安装只PHP以模块化的方式工作

[复制链接]

尚未签到

发表于 2018-12-18 09:58:04 | 显示全部楼层 |阅读模式
    
  php在apache下一般有三种工作方式:CGI,Apache模块,FastCGI
在CGI模式下,如果用户请求一个php文件,web服务器就会调用php解析器去解析这个文件,然后把结果返回给客户端。
在apache模块模式下,将php解析器作为了apache的一个模块,这样php解析器就与web服务器一起运行。
在fastcgi模式下,web服务器不会像cgi那样每次都启动一个新的进程,而是将内容传递到一个已有的进程中(这个进程在web服务器启动时就开启了,而且不会退出),这个进程就会一次次的处理来自客户端的请求。
  这里我们将演示以模块化的方式工作的LAMP。安装的流程是
httpd--->mariadb--->php--->phpMyadmin--->Xcache
一.编译安装httpd,我们这里的编译安装都是在CentOS6环境下进行的。
编译前的环境准备:
apr-1.5.0.tar.bz2--->apr-util-1.5.3.tar.bz2---> httpd-2.4.10.tar.bz2
httpd-2.4.10编译过程也要依赖于pcre-devel软件包,需要事先安装。
包组:Development tools ,Server Platform Development
接下来我们就可以进行编译了:
1,编译 apr-1.5.0.tar.bz2
yum groupinstall "Devlopment Tools" "Server Platform Development" -y
yum install pcre-devel
[root@localhost tmp]# tar xf apr-1.5.0.tar.bz2
[root@localhost tmp]# cd apr-1.5.0
[root@localhost apr-1.5.0]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.0]# make && make install
2,编译 apr-util-1.5.3.tar.bz2

  


[root@localhost tmp]# tar -xf apr-util-1.5.3.tar.bz2
[root@localhost tmp]# cd apr-util-1.5.3
[root@localhost apr-util-1.5.3]# ./c
configure  crypto/   
[root@localhost apr-util-1.5.3]# ./configure --prefix=/usr/loacl/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.5.3]# make && make install3,编译 httpd-2.4.10.tar.bz2

[root@localhost tmp]# tar -xf httpd-2.4.10.tar.bz2
[root@localhost tmp]# cd httpd-2.4.10
[root@localhost httpd-2.4.10]# ./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
[root@localhost httpd-2.4.10]# make && make install


  


  这样的话我们的httpd-2.4就编译完成了
[root@localhost ~]# vim /etc/profile.d/httpd24.sh
export PATH=/usr/local/apache/bin:$PATH
[root@localhost ~]# vim /etc/profile.d/httpd24.sh
[root@localhost ~]# . /etc/profile.d/httpd24.sh
[root@localhost ~]# echo $PATH
/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# clear
[root@localhost ~]# cd /etc/rc.d/init.d/  
[root@localhost init.d]# cp httpd httpd24
[root@localhost init.d]# vim httpd24


为httpd24提供的脚本中,我们只需要修改一下
  

  接着我们把httpd24加到服务中去,然后启动就可以了
[root@localhost httpd]# chkconfig --add httpd24
[root@localhost httpd]# chkconfig httpd24 on
[root@localhost httpd]# chkconfig --list httpd24
httpd24        0:off1:off2:on3:on4:on5:on6:off  

  修改httpd的主配置文件,设置其Pid文件的路径
  编辑/etc/httpd/httpd.conf,添加如下行即可:
  PidFile  "/var/run/httpd/httpd.pid"
  

  二.编译安装mariadb,我们这里使用的是mariadb的通用二进制包来编译。
  1、准备数据存放的文件系统
  新建一个逻辑卷,并将其挂载至特定目录即可。这里不再给出过程。
  这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
[root@localhost tmp]# tar -xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local
[root@localhost tmp]# cd /usr/local
[root@localhost local]# ln -sv mariadb-5.5.43-linux-x86_64/  mysql
`mysql' -> `mariadb-5.5.43-linux-x86_64/'  

  2、新建用户以安全方式运行进程:
  

# groupadd -r mysql ###创建系统组
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
# chown -R mysql:mysql /mydata/data
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
I                         #####指明数据库位置在/mydata/data  

  3.接着我们要为数据库提供主配置文件
[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# cp support-files/my-large.cnf  /etc/my.cnf
cp: overwrite `/etc/my.cnf'? y  

  并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
  thread_concurrency = 2
  另外还需要添加如下行指定mysql数据文件的存放位置:
  datadir = /mydata/data
  4.位数据库提供服务脚本

[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/m
mdmonitor   messagebus  mysqld      
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# chkconfig --list mysqld
mysqld         0:off1:off2:on3:on4:on5:on6:off
[root@localhost mysql]#  

  接下来,启动服务,看是否能启动成功

[root@localhost ~]# service mysqld start
Starting MySQL............... SUCCESS!  

  我们要给数据库安全初始化
[root@localhost ~]# cd /usr/local/mysql/bin
[root@localhost bin]# . mysql_secure_installation ###安全初始化  

  至此,我们的数据编译完毕。
  三,编译PHP
  1、解决依赖关系:
  

  请配置好yum源(系统安装源及epel源)后执行如下命令:
  # yum -y groupinstall "Desktop Platform Development" ###这个需要配置本地yum源
  # yum -y install bzip2-devel libmcrypt-devel libxml2-devel##这个需要配置epl源
  2.接着我们安装下面的步骤进行就OK
  # tar xf php-5.4.26.tar.bz2
  # cd php-5.4.26
  # ./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
   注意:这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。
  # make && make install
  为php提供配置文件:
  # cp php.ini-production /etc/php.ini
  

  3、 编辑apache配置文件httpd.conf,以apache支持php
  
   # vim /etc/httpd24/httpd.conf
    (1)添加如下二行
     AddType application/x-httpd-php  .php
     AddType application/x-httpd-php-source  .phps
  

   (2)定位至DirectoryIndex index.html
     修改为:
      DirectoryIndex  index.php  index.html
  

  而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。


  有上面可以看到我们的三者的结合是成功的,所以LAMP编译完成。接下来我们来部署phpadmin图形化工具
  


[root@localhost tmp]# unzip phpMyAdmin-4.4.14.1-all-languages.zip
[root@localhost tmp]# cp -a phpMyAdmin-4.4.14.1-all-languages /usr/local/apache/htdocs/
[root@localhost tmp]# cd /usr/local/apache/htdocs/
[root@localhost htdocs]# ls
index.php  phpMyAdmin-4.4.14.1-all-languages
[root@localhost htdocs]# mv phpMyAdmin-4.4.14.1-all-languages/ pma
[root@localhost pma]# cp config.sample.inc.php config.inc.php
[root@localhost pma]# vim config.inc.php
$cfg['blowfish_secret'] = 'seijoiefhsidfhidjfidsf';这里的随机子串可以自己填写也可以随机生成
[root@localhost pma]# cd /usr/local/mysql/bin/
[root@localhost bin]# . mysql_secure_installation ###安全初始化,给root用户设置密码。
四,安装xcache,为php加速:

  


[root@localhost tmp]# tar -xf xcache-3.1.2.tar.gz
[root@localhost tmp]# cd xcache-3.1.2
[root@localhost xcache-3.1.2]# /usr/local/php/bin/php
php         php-cgi     php-config  phpize      
[root@localhost xcache-3.1.2]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
[root@localhost xcache-3.1.2]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
[root@localhost xcache-3.1.2]# make && make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
[root@localhost xcache-3.1.2]# mkdir /etc/php.d
[root@localhost xcache-3.1.2]# cp xcache.ini /etc/php.d
[root@localhost xcache-3.1.2]# vim /etc/php.d/xcache.ini
extension =/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

  上图可知xcache已经加入到PHP中去了,现在可以做压力测试看看效果。
  [root@lirui ~]# ab -c 200 -n 10000  http://192.168.1.101/pma


  忘记在便宜xcache做压力测试了,不过,前面没做,这种效果也可以从上图可以看出。
  到此就完了,写的有些凌乱,日后有时间在修改吧




运维网声明 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-652720-1-1.html 上篇帖子: PHP json字符串对特殊字符处理(单引号,双引号) 下篇帖子: PHP开发工具上的vim插件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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