编译安装LAMP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译安装LAMP相关的知识,希望对你有一定的参考价值。

题目:在LAMP架构中,请分别以php编译成httpd模块形式和php以fpm工作为独立守护进程的方式来支持httpd,列出详细的过程。


本次实验以CentOS 7为搭建环境,并且已经使用源码编译安装了httpd-2.4(默认使用prefork模块)和使用通用二进制格式安装了mariadb-5.5。现在将php分别编译成httpd模块和fpm方式工作。


httpd模块形式编译安装php

编译php并配置

#从官网上下载php的压缩包,并解压

[[email protected] ~]# tar xf php-5.5.38.tar.bz2


#因为是将php编译成httpd模块形式,所以需要制定apache的apxs路径(即--with-apxs2=/usr/local/apache24/bin/apxs)

[[email protected] ~]# cd php-5.5.38/
[[email protected] php-5.5.38]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql 
--with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring 
--with-png-dir --with-jpeg-dir --with-freetype-dir --with-zlib --with-libxml-dir=/usr
 --enable-xml --enable-sockets --with-apxs2=/usr/local/apache24/bin/apxs --with-mcrypt
  --with-config-file-path=/etc/php5 --with-config-file-scan-dir=/etc/php.d --with-bz2
[[email protected] php-5.5.38]# 
[[email protected] php-5.5.38]# make -j 4 && make install


#在php的解压目录下找到php的样本配置文件php.ini-development或php.ini-production,根据实际需要选择其中之一复制到php配置文件目录路径下(此处在编译php时为是/etc/php5目录下)

[[email protected] php-5.5.38]# mkdir /etc/php5
# 复制样本配置文件并将其名字修改为php.ini
[[email protected] php-5.5.38]# cp php-5.5.38/php.ini-production /etc/php5/php.ini


httpd配置

#为了使httpd能够识别php动态资源并能够提交给httpd的php模块(引擎),需要编辑httpd的配置文件/etc/httpd24/httpd.conf,添加AddType配置段

[[email protected] ~]# vim /etc/httpd24/httpd.conf
AddType application/x-httpd-php .php    # 将.php的动态资源识别为application/x-httpd-php类型


#启动httpd服务进程

[[email protected] ~]# apachectl -t    # 启动前检查语法
Syntax OK
[[email protected] ~]# apachectl start    # 启动httpd
[[email protected] ~]# ss -tnl | grep 80    # 查看是否监听在80端口
LISTEN     0      128         :::80                      :::*


mysql配置及授权

#导出mysql相关库文件

[[email protected] ~]# vim /etc/ld.so.conf.d/mariadb.conf
/usr/local/mysql/lib
[[email protected] ~]# ldconfig


#授权数据库用户

[[email protected] ~]# mysql
MariaDB [(none)]> GRANT ALL ON *.* TO [email protected]‘192.168.%.%‘ IDENTIFIED BY ‘testpass‘;
MariaDB [(none)]> FLUSH PRIVILEGES;


测试

#创建并编辑httpd的文档根目录下的index.php,写入测试代码

[[email protected] ~]# vim /usr/local/apache24/htdocs/index.php 

<?php
    $conn = mysql_connect(‘192.168.10.101‘,‘testuser‘,‘testpass‘);
    if($conn)
        echo "OK";
    else
        echo "Failure";
?>


#使用浏览器访问URL为http://192.168.10.101/index.php

技术分享

测试成功,LAMP平台搭建完成(将php编译成httpd模块)!接下来重新搭建LAMP平台,但将php编译成以fpm方式工作。


将php编译成以fpm方式工作

编译php并配置

#搭建环境同样是CentOS 7,并且已经使用源码编译安装了httpd-2.4(默认使用event模块)以及使用通用二进制格式安装了mariadb-5.5

#以fpm模式运行,在执行configure脚本时需要使能fpm选项,而--with-apxs2这一项就不用了

[[email protected] ~]# cd php-5.5.38/
[[email protected] php-5.5.38]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl
 --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-png-dir 
 --with-jpeg-dir --with-freetype-dir --with-zlib --with-libxml-dir=/usr --enable-xml 
 --enable-sockets --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir
 =/etc/php.d --with-bz2 --enable-fpm
[[email protected] ~]# 
[[email protected] ~]# make -j 4 && make install


#为php和php-fpm提供配置文件

[[email protected] php-5.5.38]# cp php.ini-production /etc/php.ini    # 提供php的配置文件
[[email protected] php-5.5.38]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# 提供php-fpm配置文件
[[email protected] php-5.5.38]# vim /usr/local/php/etc/php-fpm.conf    # 编辑php-fpm配置文件
# 主要确保这两项如下配置
listen = 127.0.0.1:9000        # 此处php-fpm和httpd在同一主机上
listen.allowed_clients = 127.0.0.1


#为php-fpm提供服务控制脚本

[[email protected] php-5.5.38]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[[email protected] php-5.5.38]# chkconfig --add php-fpm
[[email protected] php-5.5.38]# chmod +x /etc/init.d/php-fpm    # 确保有执行权限
[[email protected] php-5.5.38]# service php-fpm start    # 启动php-fpm服务
[[email protected] php-5.5.38]# ss -tnl | grep 9000
LISTEN     0      128    127.0.0.1:9000                     *:*


httpd配置

#修改httpd-2.4的配置文件

[[email protected] ~]# vim /etc/httpd24/httpd.conf
AddType application/x-httpd-php .php
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_module modules/mod_proxy.so

ProxyRequests Off
ProxyPassMatch ^/(.*\.php) fcgi://127.0.0.1:9000/usr/local/apache24/htdocs/$1


#启动httpd服务进程

[[email protected] ~]# apachectl -t    # 启动前检查语法
Syntax OK
[[email protected] ~]# apachectl start    # 启动httpd
[[email protected] ~]# ss -tnl | grep 80    # 查看是否监听在80端口
LISTEN     0      128         :::80                      :::*


mysql配置及授权

#导出mysql相关库文件

[[email protected] ~]# vim /etc/ld.so.conf.d/mariadb.conf
/usr/local/mysql/lib
[[email protected] ~]# ldconfig


#授权数据库用户

[[email protected] ~]# mysql
MariaDB [(none)]> GRANT ALL ON *.* TO [email protected]‘192.168.%.%‘ IDENTIFIED BY ‘testpass‘;
MariaDB [(none)]> FLUSH PRIVILEGES;


测试

#创建并编辑httpd的文档根目录下的index.php,写入测试代码

[[email protected] ~]# vim /usr/local/apache24/htdocs/index.php 

<?php
    $conn = mysql_connect(‘192.168.10.101‘,‘testuser‘,‘testpass‘);
    if($conn)
        echo "OK";
    else
        echo "Failure";
?>


#使用浏览器访问URL为http://192.168.10.101/index.php

技术分享

测试成功,LAMP平台搭建完成(将php编译成fpm方式工作)!



本文出自 “Tab” 博客,请务必保留此出处http://xuweitao.blog.51cto.com/11761672/1931688

以上是关于编译安装LAMP的主要内容,如果未能解决你的问题,请参考以下文章

一键安装lamp环境 centos

LAMP环境编译安装

源码编译安装LAMP

Linux自学笔记——手动编译安装LAMP

yum 安装 lamp

详解LAMP源码编译安装