当前位置:首页 > 操作系统 > Linux

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

 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

[root@centos-3 ~]# service iptables stop

[root@centos-3 ~]# setenforce 0

 

安装以下编译工具和依赖包

[root@centos-3 ~]# yum -y install gcc

> gcc-c++

> make

> cmake

> pcre-devel

 

安装apr和apr-util

apr是为了搭建apache的运行环境


创建apr和apr-util安装目录

[root@centos-3 ~]# mkdir /usr/local/apr

[root@centos-3 ~]# mkdir /usr/local/apr-util

 

将源码包解压

[root@centos-3 ~]# tar xf /mnt/apr-1.5.2.tar.gz -c /usr/local/src/

[root@centos-3 ~]# tar xf /mnt/apr-util-1.5.4.tar.gz -c /usr/local/src/

切换到源码包所在路径

[root@centos-3 ~]# cd /usr/local/src/apr-1.5.2/

配置apr指定安装目录

[root@centos-3 apr-1.5.2]# ./configure --prefix=/usr/local/apr

以上配置完成如果没有报错则执行编译并安装

[root@centos-3 apr-1.5.2]# make && make install

切换到apr-util源码目录下

[root@centos-3 ~]# cd /usr/local/src/apr-util-1.5.4/

配置apr-util安装目录并指定apr所在路径

[root@centos-3 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr

以上无报错即可编译并安装

[root@centos-3 apr-util-1.5.4]# make && make install

 

编译apache

创建apache根目录

[root@centos-3 ~]# mkdir /usr/local/apache

解压并切换至apache源码包目录下

[root@centos-3 ~]# tar xf /mnt/httpd-2.4.16.tar.gz -c /usr/local/src/

[root@centos-3 ~]# cd /usr/local/src/httpd-2.4.16/


定制httpd

 

[root@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位置

以上无报错即可编译并安装

[root@centos-3 httpd-2.4.16]#make && make install

 

启动httpd

[root@centos-3 ~]# /usr/local/apache/bin/apachectl start

 

测试看httpd是否工作正常

服务器的ip地址为:192.168.10.250

 

安装mysql数据库

安装数据需要先安装ncurses-devel

[root@centos-3 mysql-5.5.24]# yum -y install ncurses-devel

创建mysql安装目录

[root@centos-3 ~]# mkdir /usr/local/mysql

创建mysql用户,"-s"指定登录shell

[root@centos-3 ~]# useradd -s /sbin/nologin mysql

解压mysql并切换至源码包所在目录

[root@centos-3 ~]# tar xf /mnt/mysql-5.5.24.tar.gz -c /usr/local/src/

[root@centos-3 ~]# cd /usr/local/src/mysql-5.5.24/

 

使用cmake工具定义mysql

[root@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

字符集排序规则

 

以上如果没有报错则执行编译并安装数据库

[root@centos-3 mysql-5.5.24]# make && make install

 

为了系统安全将mysql目录下属组改为mysql

[root@centos-3 ~]# chown :mysql /usr/local/mysql/

 

初始化数据库

[root@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

 

创建配置文件

[root@centos-3 mysql-5.5.24]# cp support-files/my-large.cnf /etc/my.cnf

 

创建启动脚本,加入到service管理

[root@centos-3 mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld

 

配置开机启动

[root@centos-3 mysql-5.5.24]# chkconfig --add mysqld

[root@centos-3 mysql-5.5.24]# chkconfig mysqld on

添加执行权限

[root@centos-3 mysql-5.5.24]# chmod 755 /etc/init.d/mysqld

将mysql添加到$path环境变量中

[root@centos-3 mysql-5.5.24]# vim /etc/profile.d/mysql.sh

输入以下内容

export path=$path:/usr/local/mysql/bin

运行脚本使其立即生效

[root@centos-3 mysql-5.5.24]# . /etc/profile.d/mysql.sh

 

启动mysql

[root@centos-3 mysql-5.5.24]# service mysqld start

 

为了后面测试方便授权一个账号

进入mysql数据库

[root@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

 

创建安装目录

[root@centos-3 ~]# mkdir /usr/local/php

解压php并切换至php源码包所在目录

[root@centos-3 ~]# tar xf /mnt/php-5.6.11.tar.bz2 -c /usr/local/src

[root@centos-3 ~]# cd /usr/local/src/php-5.6.11/

 

安装gd库以及关联程序

[root@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

[root@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时要加,不是不用

 

以上如果不报错即可编译并安装

[root@centos-3 php-5.6.11]# make && make install

 

创建配置文件

[root@centos-3 php-5.6.11]# cp php.ini-production /etc/php.ini

 

 

编辑httpd配置文件,搜索“/addtype”添加如下内容让apache支持php格式页面

[root@centos-3 ~]# vim /usr/local/apache/conf/httpd.conf

addtype application/x-httpd-php .php

addtype application/x-httpd-php-source .phps

 

 

继续搜索“/directoryindex”在此处添加一下内容以支持php主页面

loadmodule php5_module modules/libphp5.so

directoryindex index.php index.html

 

将httpd的默认主页修改为“.php”,并输入以下代码进行测试

切换至网页文件目录

[root@centos-3 ~]# cd /usr/local/apache/htdocs/

改为index.php

[root@centos-3 htdocs]# mv index.html index.php

编辑文件删除原有内容,添加如下内容

phpinfo();

?>


重启httpd服务

[root@centos-3 htdocs]# /usr/local/apache/bin/apachectl restart

访问服务器测试

出现以上界面说明php与httpd搭档成功


关联数据库测试


编辑网页文件删除原有内容输入以下代码

[root@centos-3 htdocs]# vim index.php

$conn=mysql_connect('192.168.10.250','tom','123456');

if($conn)

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

else

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

?>

 

访问服务器测试

以上就是lamp架构的内容了

以模块方式使php和httpd搭档工作,把php编译成httpd的模块,不能独立执行。当httpd需要用到php进程的时候直接从磁盘加载进来,在它内部运行即可不需要启动一个新的进程。


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐