Cent OS 6 编译方式安装LAMP

细节要求:
(1) 三者分离于三台主机;
(2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;
(3) PHP使用FastCGI+xcache;
(4) httpd使用非prefork的mpm模式;
一、CentOS6环境准备
1、OS(CentOS6.8)下开发环境包的安装,编译安装程序包需要使用
#yum groupinstall “Development tools” -y
#yum groupinstall “Server Platform Development”
2、编译安装LAMP的顺序:httpd–>mariadb–>php
httpd2.4:该版本依赖组件:apr1.4以上+apr-utils1.4以上+pcre等,如果直接rpm包安装方式会存在问题一:可能默认所需的版本不符合;问题二:如果符合组件的版本要求,可能rpm直接安装会升级OS系统原有的低版本组件,但低版本组件有可能是其他应用的依赖组件;所以我们建议这些组件采用通用二进制包形式手动安装,安装包可以在官方站点事先下载(apr.apache.org);
二、web-server服务器(192.168.1.211)编译安装过程
1、定义主机名,关闭selinux,iptables等
#echo “127.0.0.1 web-server.test.com”
#setenforce 0
#vim /etc/selinux/config                                                     –修改selinux参数
SELINUX=permissive
#chkconfig iptables off
#service iptables stop
2、手动安装通用二进制格式的apr以及apr-utils
#tar jxvf /tmp/apr-1.5.2.tar.bz2
#tar jxvf /tmp/apr-util-1.5.4.tar.bz2
#cd /tmp/apr-1.5.2.tar.bz2/
#./configure –prefix=/usr/local/apr-1.5.2                               –编译安装配置文件,如指定apr1.5.2的安装路径
#make -j 4 && make install                                                     –编译并执行安装
#cd /tmp/apr-util-1.5.4.tar.bz2
#./configure –prefix=/usr/local/apr-util-1.5.4  –with-apr=/usr/local/apr-1.5.2   –编译安装配置文件,指定安装目录以及依赖的apr目录
#make -j 4 && make install
3、安装依赖组件pcre-devel
#yum install pcre-devel -y
4、安装httpd2.4
#tar jxvf /tmp/httpd-2.4.25.tar.bz2
#cd /tmp/httpd-2.4.25
#./configure –prefix=/usr/local/http2.4.25 –sysconfdir=/etc/httpd –enable-modules=”most” –enable-mods-shared=”most”  –enable-so –enable-deflate –enable-proxy-fcgi –enable-ssl –enable-rewrite –enable-mpms-shared=”all” –with-mpm=event  –enable-cgi  –enable-cgid –with-apr=/usr/local/apr-1.5.2 –with-apr-util=/usr/local/apr-util-1.5.4
#make -j 4 && make install
编译安装完成之后,进行后续配置部署
a、配置文件路径:/etc/httpd/httpd.conf 以及 /etc/httpd/extra/*.conf,默认extra目录下的其他特性的配置文件在主配置文件中没有启用,需要手动启用,常用的如httpd-mpm.conf;httpd-vhost.conf;httpd-ssl.conf等
b、二进制脚本文件路径:/usr/local/http2.4.25/bin/*,其中httpd是进程服务启用脚本,apachectl是服务进程管理程序,由于路径不在$PATN系统环境指定路径中,并且也无法用过系统进程管理实现开机自动启用等统一管理,所以后续需要修改设置实现系统服务进程统一管理
c、日志存放路径:/usr/local/http2.4.25/logs/{error_log,access_log},可以在主配置文件或者虚拟主机配置文件中单独制定其他路径,如/var/log/apache/{error_log,access_log}
d、pidfile文件默认存放在/usr/local/http2.4.25/logs目录中,建议修改主配置文件参数,制定存放到系统默认的通用路径/var/run/中
e、默认主页路径:/usr/local/http2.4.25/htdocs
主配置文件修改
#vim /etc/httpd/httpd.conf
##启用Proxy反向代理主模块以及FastCGI代理模块(去除前面的#注释符号)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
##指定日志存放路径
ErrorLog “/var/log/apache/error_log”
CustomLog “/var/log/apache/access_log” common
##启用特殊功能的配置文件
# Server-pool management (MPM specific)
Include /etc/httpd/extra/httpd-mpm.conf
# Virtual hosts
Include /etc/httpd/extra/httpd-vhosts.conf
# Secure (SSL/TLS) connections
Include /etc/httpd/extra/httpd-ssl.conf
##新增两个httpd的应用类型
#AddType application/x-httpd-php  .php
#AddType application/x-httpd-php-source  .phps
##http2.4.25版本的pidfile参数设置在http-mpm.conf配置文件中设定
#vim /etc/httpd/extra/http-mpm.conf
##指定pid文件保存路径
PidFile “/var/run/httpd/httpd.pid”
##创建系统服务启用脚本,可以利用rpm方式安装在/etc/rc.d/init.d下的httpd脚本文件作为模板,再次定义
#vim /etc/rc.d/init.d/httpd
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/http2.4.25/bin/apachectl
httpd=${HTTPD-/usr/local/http2.4.25/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
#chmod +x /etc/rc.d/init.d/httpd
#service httpd stop
#service httpd start
#service httpd status
#chkconfig –add httpd
#chkconfig –level 35 httpd on
#chkconfig –list httpd
#vim /etc/profile.d/httpd.sh
##增加环境变量路径指向httpd服务的脚本默认路径
export PATH=$PATH:/usr/local/http2.4.25/bin
##部署完成php-server服务之后,可以编辑虚拟主机配置文件,执行动态资源的php反向代理转发
#vim /etc/httpd/extra/httpd-vhosts.conf
##编辑如下内容
DirectoryIndex index.php
<VirtualHost *:80>
ServerName    www.test6.com
DocumentRoot    /var/www/test6
ProxyRequests    off
ProxyPassMatch    ^/(.*\.php)$    fcgi://php-server-IP:9000/var/www/test6/$1
<Directory /var/www/test6>
Options    none
AllowOverride    none
Require all granted
</Directory>
</VirtualHost>
#mkdir -pv /var/www/test6
#cd /var/www/test6
#touch index.php
三、db-server服务器(192.168.1.210)编译安装部署
1、定义主机名,关闭防火墙,selinux,安装系统开发包等
#vim /etc/hosts
#vim /etc/sysconfig/network
#vim /etcselinux/config
#service iptables stop
#chkconfig iptables off
#chkconfig –del iptables
#chkconfig –list iptables
2、解压二进制通用包至指定的默认程序路径,并创建指定的mysql目录名符号链接
#tar zxvf mariadb-5.5.54-linux-x86_64.tar.gz -C /usr/local/
#ln -sv /usr/local/mariadb-5.5.54-linux-x86_64  /usr/local/mysql
3、首先可以查看安装步骤说明文件
#more /usr/local/mysql/INSTALL-BINARY
The basic commands that you must execute to install and use a
   MariaDB binary distribution are:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf –
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db –user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe –user=mysql &
该步骤说明首先需要创建数据库专有的所属主和所属组为mysql,并建立一个目录名是mysql的符号链接关联mariadb默认路径,后续执行数据库初始化安装脚本mysql_install_db,参数–user 指定今后mysqld服务进程所属用户为mysql,参数–datadir 指定今后数据库数据存放路径(默认保存在安装路径下的data目录:/usr/local/mysql/data)
4、创建mariadb数据库运行的系统账号mysql用户与mysql用户组,赋予//usr/local/mysql目录所属主和所属组为系统默认要求的mysql
#useradd -r mysql
#chown -R mysql:mysql /usr/local/mysql/*
5、创建独立的lvm逻辑分区用于今后存放data数据,执行数据库初始化脚本
#mount /dev/mysqlvg/mysqldata /mysqldata
#chown -R mysql:mysql /mysqldata/
#chmod 750 /mysqldata/
#cd /usr/local/mysql
#./scripts/mysql_install_db –user=mysql –datadir=/mysqldata
##初始化数据库完成以后,建议除了数据存放目录的权限属性保留为mysql:mysql之外,出于安全性考虑,其他的mariadb安装路径下的所属主再次恢复为root用户
#chown -R root /usr/local/mysql/*
6、数据库后续部署配置:mariadb数据库的相应配置文件,进程服务文件
配置文件模板路径:/usr/local/mysql/support-files/*.cnf,复制相应的一份模板文件至默认的/etc路径下,并改名为my.cnf
进程启用服务脚本:/usr/local/mysql/support-files/mysql.server,复制到/etc/rc.d/init.d/路径下,并改名为mysqld;通过chkconfig加入开机启动服务列表中
#cd /usr/local/mysql
#cp ./support-files/my-huge.cnf /etc/my.cnf
#vim /etc/my.cnf                                                      ##修改默认配置的某些参数
skip_name_resolve = ON
## Try number of CPU’s*2 for thread_concurrency  按照实际CPU的数量修改进程并发数量
thread_concurrency = 2
#cat /proc/cpuinfo                                                   ##可以查看服务器CPU硬件参数
#cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
#vim /etc/rc.d/init.d/mysqld                                     ##修改启用服务脚本中的配置参数
basedir=/usr/local/mysql
datadir=/mysqldata
#ll /etc/rc.d/init.d/mysqld                                         ##查看此进程服务脚本的权限属性,具有可执行权限
-rwxr-xr-x. 1 root root 11982 Feb 21 19:40 /etc/rc.d/init.d/mysqld
#chkconfig –add mysqld
#chkconfig –level 35 mysqld on
#service mysqld start
#ss -tln
#vim /etc/profile.d/mysql.sh
##增加环境变量路径指向本机运行mysql客户端程序的二进制文件路径
export PATH=$PATH:/usr/local/mysql/bin
#vim /etc/ld.so.conf.d/mysql.conf
##增加mysql的动态库文件路径指向
/usr/local/mysql/lib
#ldconfig                                                                        ##再次加载一下动态库文件路径到系统环境中,使其生效
##执行mariadb数据库初始化设置,增加数据库root账户密码,禁用匿名用户访问,删除test临时测试库等
#mysql_secure_installation
##执行数据库管理,创建php-server动态资源数据库结构与访问账户
#mysql -uroot -p
Mariadb [(none)]>grant all privileges on test.* to testuser@’192.168.1.%’ identified by ‘redhat’;
四、php-server服务器(192.168.1.212)编译安装部署
1、定义主机名,关闭防火墙,selinux,安装系统开发包等
#vim /etc/hosts
#vim /etc/sysconfig/network
#vim /etc/selinux/config
#service iptables stop
#chkconfig iptables off
#chkconfig –del iptables
#init 6
2、解压php源代码包,放置到默认的/usr/local/phpXX路径
#cd /tmp
#tar jxvf /tmp/php-5.5.37.tar.bz2
#cd /tmp/php-5.5.37
#more INSTALL                                                                                ##查看浏览默认的安装说明文档
#yum groupinstall “Server Platform Development” “Development Tools” -y
#yum install libxml2-devel libmcrypt-devel bzip2-devel -y
3、编译php源码包
#./configure –prefix=/usr/local/php5.5 –with-mysql –with-mysqli –enable-fpm –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-openssl –with-zlib –with-bz2 –with-jpeg-dir –with-png-dir –enable-mbstring –enable-xml –with-libxml-dir –with-mcrypt
#make test
#make -j 4 && make install
##php-fpm自己的配置文件在安装路径下的/etc/php-fpm.conf以及/etc/php-fpm.d/*.conf,除此之外还有运行php进程的环境配置文件在系统根路径下的/etc/php.ini以及/etc/php.d/*.ini(在编译安装中可以通过设定–with-config-file-path=xxxxx以及–with-config-file-scan-dir=xxxxx两个参数来明确)
##负责复制解压目录中的php配置文件以及服务进程脚本文件到系统环境中指定的默认路径
##复制运行环境配置文件
#cp /tmp/php-5.5.37/php.ini-production  /etc/php.ini
##复制php-fpm进程服务脚本文件,并加入系统开机运行列表
#cp /tmp/php-5.5.37/sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
#chkconfig –add php-fpm
#chkconfig –list php-fpm
##修php-fpm自己的服务置文件中部分参数
#cp /usr/local/php5.5/etc/php-fpm.conf.default  /usr/local/php5.5/etc/php-fpm.conf
#vim /usr/local/php5.5/etc/php-fpm.conf
##修改下面两项参数
listen = 192.168.1.212:9000
listen.allowed_clients = 192.168.1.211
##修改完成以后,启用php-fpm服务
#service php-fpm start
##查看php-fpm的进程状态
#ss -tln
#ps aux | grep php*
 
##测试fcgi反向代理访问效果
#mkdir -pv /var/www/test6
#vim /var/www/test6/index.php
<h1>
  This is PHP-Server
</h1>
<?php
   phpinfo();
?>
#chown -R nobody:nobody /var/www/test6/*
##在任意客户端上打开浏览器,通过预先指定的www.test6.com的本地主机名解析,访问web-server站点,显示默认主页如下
Cent OS 6 编译方式安装LAMP
显示php动态资源如下
Cent OS 6 编译方式安装LAMP
##测试php-server远程数据库访问连接
#vim /var/www/test6/index.php
<h1>
  This is PHP-Server
</h1>
<?php
        $conn = mysql_connect(‘192.168.1.210′,’testuser’,’redhat’);
        if ($conn)
                echo “OK”;
        else
                echo “Failure”;
?>
Cent OS 6 编译方式安装LAMP

原创文章,作者:N24_shishen,如若转载,请注明出处:http://www.178linux.com/69919

(0)
N24_shishenN24_shishen
上一篇 2017-02-24
下一篇 2017-02-24

相关推荐

  • 马哥教育网络班21期+第六周博客作业

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; # cp -a /etc/rc.d/rc.sysinit /tmp/ # ls /tmp/ | grep rc.sysin…

    Linux干货 2016-08-15
  • 软件包管理

    1.程序包管理器 源代码–>目标二进制格式–>组织称为一个或有限几个“包”文件;     安装、升级、卸载、查询、校验 程序包管理器: debian(Ubuntu):dpt,工具:dpkg,程序包以“.deb”结尾 redhat:redhat package manager&nbsp…

    Linux干货 2016-08-21
  • 文件的查找作业

    1、查找/var目录下属主为root,且属组为mail的所有文件 2、查找/var目录下不属于root、lp、gdm的、所有文件 3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件 4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件 5、查找/etc目录下大于1M且类型为普通文件的所有文件 6、查找/…

    Linux干货 2016-08-15
  • N25第三周作业

    .列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登陆多次,则只显示一次即可。 此题主要考察命令who,cut,sort以及管道的基本用法:who:列出当前已登陆的用户名,登陆设备名,时间以及ip地址。 cut:    顾名思义就是截取之意, -d 指定要截取信息的分隔符,此处是以空格为分隔符,-f指定要截取的字段,此…

    Linux干货 2016-12-20
  • N24 第6周作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; 3、删除/tmp/rc.sysinit文件…

    Linux干货 2016-11-30
  • Linux程序包管理方式

    Linux程序包安装和管理方式共计三种:          一、[yum|dnf],通过官网或者其他开源网站提供的文件服务器,本机镜像源等途径进行安装。         二、rpm,通过官网或者其他开源网站通过…

    Linux干货 2016-08-29

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-06 19:06

    亲,请问你的cache在那里呢?做的与题目不符啊。