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 [[email protected] tmp]# tar xf apr-1.5.0.tar.bz2 [[email protected] tmp]# cd apr-1.5.0 [[email protected] apr-1.5.0]# ./configure --prefix=/usr/local/apr [[email protected] apr-1.5.0]# make && make install |
2,编译 apr-util-1.5.3.tar.bz2
[[email protected] tmp]# tar -xf apr-util-1.5.3.tar.bz2 [[email protected] tmp]# cd apr-util-1.5.3 [[email protected] apr-util-1.5.3]# ./c configure crypto/ [[email protected] apr-util-1.5.3]# ./configure --prefix=/usr/loacl/apr-util --with-apr=/usr/local/apr [[email protected] apr-util-1.5.3]# make && make install |
3,编译 httpd-2.4.10.tar.bz2
[[email protected] tmp]# tar -xf httpd-2.4.10.tar.bz2 [[email protected] tmp]# cd httpd-2.4.10 [[email protected] 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 [[email protected] httpd-2.4.10]# make && make install 这样的话我们的httpd-2.4就编译完成了 |
[[email protected] ~]# vim /etc/profile.d/httpd24.sh export PATH=/usr/local/apache/bin:$PATH [[email protected] ~]# vim /etc/profile.d/httpd24.sh [[email protected] ~]# . /etc/profile.d/httpd24.sh [[email protected] ~]# echo $PATH /usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [[email protected] ~]# clear [[email protected] ~]# cd /etc/rc.d/init.d/ [[email protected] init.d]# cp httpd httpd24 [[email protected] init.d]# vim httpd24 |
为httpd24提供的脚本中,我们只需要修改一下
接着我们把httpd24加到服务中去,然后启动就可以了
[[email protected] httpd]# chkconfig --add httpd24 [[email protected] httpd]# chkconfig httpd24 on [[email protected] 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数据的存放目录。
[[email protected] tmp]# tar -xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local [[email protected] tmp]# cd /usr/local [[email protected]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 [[email protected] mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data Installing MariaDB/MySQL system tables in ‘/mydata/data‘ ...###指明数据库位置在/mydata/data |
3.接着我们要为数据库提供主配置文件
[[email protected] ~]# cd /usr/local/mysql [[email protected] 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.位数据库提供服务脚本
[[email protected] ~]# cd /usr/local/mysql [[email protected] mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld [[email protected] mysql]# chmod +x /etc/rc.d/init.d/m mdmonitor messagebus mysqld [[email protected] mysql]# chmod +x /etc/rc.d/init.d/mysqld [[email protected] mysql]# chkconfig --add mysqld [[email protected] mysql]# chkconfig mysqld on [[email protected] mysql]# chkconfig --list mysqld mysqld 0:off1:off2:on3:on4:on5:on6:off [[email protected] mysql]# |
接下来,启动服务,看是否能启动成功
[[email protected] ~]# service mysqld start Starting MySQL............... SUCCESS! |
我们要给数据库安全初始化
[[email protected] ~]# cd /usr/local/mysql/bin [[email protected] bin]# . mysql_secure_installation ###安全初始化 |
至此,我们的数据编译完毕。
三,编译PHP