编译安装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的主要内容,如果未能解决你的问题,请参考以下文章