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

LAMP架构之以模块方式让php和httpd搭档工作

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-25 08:48:27 | 显示全部楼层 |阅读模式
LAMP就是:Linux,Apache,Mysql,PHP的首字母缩写。

实验环境
Linux :CentOS-3 2.6.32-431.el6.x86_64

Apache:httpd-2.4.16.tar.gz
Mysql :mysql-5.5.24.tar.gz
PHP   :php-5.6.11.tar.bz2

安装顺序为:Apahce --> Mysql --> PHP

实验步骤

方便实验先关闭iptables和selinux
[iyunv@CentOS-3 ~]# service iptables stop
[iyunv@CentOS-3 ~]# setenforce 0

安装以下编译工具和依赖包
[iyunv@CentOS-3 ~]# yum -y install gcc \
> gcc-c++ \
> make \
> cmake \
> pcre-devel

安装apr和apr-util
apr是为了搭建apache的运行环境

创建apr和apr-util安装目录
[iyunv@CentOS-3 ~]# mkdir /usr/local/apr
[iyunv@CentOS-3 ~]# mkdir /usr/local/apr-util

将源码包解压
[iyunv@CentOS-3 ~]# tar xf /mnt/apr-1.5.2.tar.gz -C /usr/local/src/
[iyunv@CentOS-3 ~]# tar xf /mnt/apr-util-1.5.4.tar.gz -C /usr/local/src/
切换到源码包所在路径
[iyunv@CentOS-3 ~]# cd /usr/local/src/apr-1.5.2/
配置apr指定安装目录
[iyunv@CentOS-3 apr-1.5.2]# ./configure --prefix=/usr/local/apr
以上配置完成如果没有报错则执行编译并安装
[iyunv@CentOS-3 apr-1.5.2]# make && make install
切换到apr-util源码目录下
[iyunv@CentOS-3 ~]# cd /usr/local/src/apr-util-1.5.4/
配置apr-util安装目录并指定apr所在路径
[iyunv@CentOS-3 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr
以上无报错即可编译并安装
[iyunv@CentOS-3 apr-util-1.5.4]# make && make install

编译apache
创建apache根目录
[iyunv@CentOS-3 ~]# mkdir /usr/local/apache
解压并切换至apache源码包目录下
[iyunv@CentOS-3 ~]# tar xf /mnt/httpd-2.4.16.tar.gz -C /usr/local/src/
[iyunv@CentOS-3 ~]# cd /usr/local/src/httpd-2.4.16/

定制httpd

[iyunv@CentOS-3 httpd-2.4.16]# ./configure \
> --prefix=/usr/local/apache \     //指定安装目录
> --enable-so \         
//支持动态共享模块,否则php无法以模块方式和apache结合工作
> --enable-rewirte \            //支持URL重写
> --enable-cgi \                //支持CGI
> --enable-cgid \            //使用event或者worker的mpm模式要启用cgid
> --enable-modules=most \   
> --enable-mods-shared=most \         //启动共享模块
> --enable-mpms-shared=all \        //支持所有mpm模块
> --with-apr=/usr/local/apr \        //支持所有mpm模块
> --with-apr-util=/usr/local/apr-util        //指定apr-util位置
以上无报错即可编译并安装
[iyunv@CentOS-3 httpd-2.4.16]#make && make install

启动httpd
[iyunv@CentOS-3 ~]# /usr/local/apache/bin/apachectl start

测试看httpd是否工作正常
服务器的IP地址为:192.168.10.250
wKioL1ajkL3S-FKEAAA1KY_Y65I934.jpg

安装Mysql数据库
安装数据需要先安装ncurses-devel
[iyunv@CentOS-3 mysql-5.5.24]# yum -y install ncurses-devel
创建Mysql安装目录
[iyunv@CentOS-3 ~]# mkdir /usr/local/mysql
创建mysql用户,"-s"指定登录shell
[iyunv@CentOS-3 ~]# useradd -s /sbin/nologin mysql
解压Mysql并切换至源码包所在目录
[iyunv@CentOS-3 ~]# tar xf /mnt/mysql-5.5.24.tar.gz -C /usr/local/src/
[iyunv@CentOS-3 ~]# cd /usr/local/src/mysql-5.5.24/

使用cmake工具定义mysql
[iyunv@CentOS-3 mysql-5.5.24]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
指定安装目录
> -DMYSQL_DATADIR=/home/mysql \
数据文件路径,如果不指定就是安装目录下的data
> -DSYSCONFDIR=/etc \
配置文件路径
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
安装INNOBASE存储引擎
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
安装ARCHIVE存储引擎
> -DWITH_BLCAKHOLE_STORAGE_ENGINE=1 \
安装BLACKHOLE存储引擎
> -DWITH_READLINE=1 \
能够使用loadinfile来批量导入mysql数据
> -DWITH_SSL=system \
支持基于SSL的会话
> -DWITH_SSL=bundled
> -DWITH_ZLIB=system \
压缩库
> -DWITH_LIBWRAP=0 \
> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
默认套接字文件路径
> -DEXTRA_CHARSETS=all \
支持所有字符集
> -DDEFAULT_CHARSET=utf8 \
默认的字符集
> -DDEFAULT_COLLATION=utf8_general_ci
字符集排序规则

以上如果没有报错则执行编译并安装数据库
[iyunv@CentOS-3 mysql-5.5.24]# make && make install

为了系统安全将mysql目录下属组改为mysql
[iyunv@CentOS-3 ~]# chown :mysql /usr/local/mysql/

初始化数据库
[iyunv@CentOS-3 mysql-5.5.24]# /usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql \
> --datadir=/home/mysql

创建配置文件
[iyunv@CentOS-3 mysql-5.5.24]# cp support-files/my-large.cnf /etc/my.cnf

创建启动脚本,加入到service管理
[iyunv@CentOS-3 mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld


配置开机启动
[iyunv@CentOS-3 mysql-5.5.24]# chkconfig --add mysqld
[iyunv@CentOS-3 mysql-5.5.24]# chkconfig mysqld on
添加执行权限
[iyunv@CentOS-3 mysql-5.5.24]# chmod 755 /etc/init.d/mysqld

将mysql添加到$PATH环境变量中
[iyunv@CentOS-3 mysql-5.5.24]# vim /etc/profile.d/mysql.sh
输入以下内容
export PATH=$PATH:/usr/local/mysql/bin
运行脚本使其立即生效

[iyunv@CentOS-3 mysql-5.5.24]# . /etc/profile.d/mysql.sh

启动mysql
[iyunv@CentOS-3 mysql-5.5.24]# service mysqld start

为了后面测试方便授权一个账号
进入mysql数据库
[iyunv@CentOS-3 ~]# mysql -u root
授权tom用户所有权限
mysql> GRANT all ON *.* TO 'tom'@'192.168.10.250' IDENTIFIED BY '123456';
刷新授权信息

mysql> flush privileges;



安装PHP
默认apache只能支持静态的网站要想支持动态网站需要与PHP搭配工作
php与httpd工作有三种方式分别为:CGI、Modules、FastCGI

下面以Modules方式安装PHP

创建安装目录
[iyunv@CentOS-3 ~]# mkdir /usr/local/php
解压PHP并切换至PHP源码包所在目录

[iyunv@CentOS-3 ~]# tar xf /mnt/php-5.6.11.tar.bz2 -C /usr/local/src
[iyunv@CentOS-3 ~]# cd /usr/local/src/php-5.6.11/

安装GD库以及关联程序
[iyunv@CentOS-3 php-5.6.11]# yum -y install \
> libjpeg-devel \
> libpng-devel \
> freetype-devel \
> zlib-devel \
> gettext-devel \
> libXpm-devel \
> libxml2-devel \
> fontconfig-devel \
> openssl-devel \
> bzip2-devel


配置PHP
[iyunv@CentOS-3 php-5.6.11]# ./configure \
> --prefix=/usr/local/php \
指定安装路径
> --with-mysql=/usr/local/mysql \
指定mysql位置
> --with-openssl \
开启openssl功能
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
另一种mysql访问接口
> --enable-mbstring \
> --with-freetype-dir \
加载freetype字体库
> --with-jpeg-dir \
支持图片
> --with-png-dir \
> --with-zlib \
让数据文件先压缩在传送
> --with-libxml-dir=/usr \
指定xml库目录
> --enable-xml \
开启xml支持
> --enable-sockets \
让PHP支持套接字
> --with-apxs2=/usr/local/apache/bin/apxs \
将mysql编译成apache模块
> --with-config-file-path=/etc \
PHP配置文件位置
> --with-config-file-scan-dir=/etc/php.d \
> --with-bz2 \
> --enable-maintainer-zts
如果apache的mpm使用的是event或worker时要加,不是不用


以上如果不报错即可编译并安装
[iyunv@CentOS-3 php-5.6.11]# make && make install

创建配置文件
[iyunv@CentOS-3 php-5.6.11]# cp php.ini-production /etc/php.ini


编辑httpd配置文件,搜索“/AddType”添加如下内容让apache支持php格式页面
[iyunv@CentOS-3 ~]# vim /usr/local/apache/conf/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
wKiom1ajrt2CcbskAAEiZMNg5XU909.jpg


继续搜索“/DirectoryIndex”在此处添加一下内容以支持php主页面
LoadModule    php5_module    modules/libphp5.so
DirectoryIndex index.php index.html
QQ截图20160125084816.png

将httpd的默认主页修改为“.php”,并输入以下代码进行测试
切换至网页文件目录
[iyunv@CentOS-3 ~]# cd /usr/local/apache/htdocs/
改为index.php
[iyunv@CentOS-3 htdocs]# mv index.html index.php
编辑文件删除原有内容,添加如下内容
<?php
phpinfo();
?>

重启httpd服务
[iyunv@CentOS-3 htdocs]# /usr/local/apache/bin/apachectl restart

访问服务器测试
wKioL1ajr8mw90uMAAFIpZUPlqs789.jpg 出现以上界面说明php与httpd搭档成功

关联数据库测试

编辑网页文件删除原有内容输入以下代码
[iyunv@CentOS-3 htdocs]# vim index.php
<?php
    $conn=mysql_connect('192.168.10.250','tom','123456');

    if($conn)

        echo "数据库连接成功!!";

    else

        echo "数据库连接失败!!";

?>
wKiom1ajsTSBnSkcAABA8-78atU132.jpg

访问服务器测试
wKiom1ajsW-CVAkDAABbbBAmj_w003.jpg
以上就是lamp架构的内容了
以模块方式使php和httpd搭档工作,把PHP编译成httpd的模块,不能独立执行。当httpd需要用到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-169029-1-1.html 上篇帖子: LAMP架构之使用fpm机制编译安装 下篇帖子: lnmp环境下实现nginx负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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