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

CentOS编译安装LAMP

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-20 08:32:14 | 显示全部楼层 |阅读模式
LAMP组合的编译安装:
    httpd+php
        modules: 把php编译成httpd的DSO对象;
            prefork: libphp5
            event, worker: libphp5-zts
                在使用event和worker模型时,在编译php时,要加入此选项--enable-maintainer-zts。
            cgi
            fpm(fastcgi):php作为独立的服务

            httpd对fastcgi协议的支持:
                httpd-2.2: 需要额外安装fcgi模块;
                httpd-2.4: 自带fcgi模块;
            安装次序:
                httpd, MariaDB, php。
编译安装httpd:
    前提:安装好Development tools、Server Platform Development这两个工具包组。在此处,编译安装的为httpd-2.4。

    第一步需要安装pcre-devel这个包,可能会有依赖关系。
1
[iyunv@localhost ~]# yum install pcre-devel



    第二步:获取apr、apr-util以及httpd这三个源代码包。
    第三步:解压并安装apr包。
1
2
3
4
[iyunv@localhost ~]# tar xf apr-1.5.0.tar.bz2 #解压该源代码包
[iyunv@localhost ~]# cd apr-1.5.0                #切换到解压之后的目录下
[iyunv@localhost apr-1.5.0]# ./configure --prefix=/usr/local/apr #安装目录/usr/local/apr
[iyunv@localhost apr-1.5.0]# make && make install #根据makefile文件,构建应用程序



    第四步:解压并安装apr-util包。
1
2
3
4
5
[iyunv@localhost ~]# tar xf apr-util-1.5.3.tar.bz2  #解压该源代码包
[iyunv@localhost ~]# cd apr-util-1.5.3              #切换到解压之后的目录下
[iyunv@localhost apr-util-1.5.3]# ./configure -prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#指定安装目录为/usr/local/apr-util,并且其依赖的apr包的安装位置为/usr/local/apr
[iyunv@localhost apr-1.5.3]# make && make install         #根据makefile文件,构建应用程序



    第五步:解压并安装httpd包。   

1
2
3
4
[iyunv@localhost ~]# tar xf httpd-2.4.10.tar.bz2
[iyunv@localhost ~]# cd httpd-2.4.10
[iyunv@localhost httpd-2.4.10]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --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
[iyunv@localhost apr-1.5.3]# make && make install         #根据makefile文件,构建应用程序



    对安装过程中个选项的解释:
        --prefix=/usr/local/apache:httpd的安装路径
        --sysconfdir=/etc/httpd24:配置文件的路径
        --enable-so --enable-ssl --enable-cgi:支持so模块,支持ssl协议,支持cgi协议
        --enable-rewrite --with-zlib --with-pcre:支持重写,支持浏览网页进行压缩传输,需要使用到pcre
        --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util:所依赖到的apr和apr-util包安装路径
        --enable-modules=most:支持大多数的模块
        --enable-mpms-shared=all --with-mpm=event:所有的mpm共享支持,默认的mpm类型为event


    第六步:安装完成,提供服务相关的配置。

        (1)将/usr/local/apache/bin/apachectl文件复制到/etc/init.d下,并且命名为httpd;
1
[iyunv@localhost apache]# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd



        (2)修改/etc/init.d/httpd文件,添加如下两行;
1
2
# chkconfig: - 85 15  #此处指定服务的启动顺序
# description: Apache is a World Wide Web server.  It is used to serve \



        (3)添加该服务到系统服务;
1
[iyunv@localhost ~]# chkconfig --add httpd



        (4)添加PATH环境变量;
                在/etc/profile.d/目录下创建httpd.sh,内容如下:
                    export PATH=/usr/local/apache/bin/:$PATH
                添加环境变量并不是必须的,如果不添加该内容,则在运行/usr/local/apache/bin/下边的所有相关命令的时候,必须使用绝对路径运行,反之,则可以使用命令本身进行运行,不用写绝对路径。


        第七步:启动服务,并且测试。
1
2
3
[iyunv@localhost bin]# service httpd start
httpd (pid 35925) already running
[iyunv@localhost bin]# ss -tnl



         wKioL1YlCCTyeUEkAAC_X22pYvE538.jpg

编译安装marirdb:

    使用通用二进制包进行mariadb的安装。
    1、新建用户,创建一个数据目录/mydata/data,指定其所属的组为mysql,所用的shell为/sbin/nologin,账户登陆时所用的家目录为/mydata/data。、
1
2
3
[iyunv@localhost ~]# groupadd -r mysql
[iyunv@localhost ~]# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
[iyunv@localhost ~]# chown -R mysql:mysql /mydata/data



    2、解压通用二进制mrdiadb包,将其解压至/usr/local目录下。并为其创建一个软连接mysql指向解压之后的文件夹。
1
2
3
[iyunv@localhost ~]# tar xf mariadb-5.5.45-linux-x86_64.tar.gz -C /usr/local
[iyunv@localhost ~]# cd /usr/local
[iyunv@localhost local]# ln -sv mariadb-5.5.45-linux-x86_64  mysql



    3、切换至/usr/local/mysql目录下,改变当前目录的属主和属组为mysql。初始化mysql,指明其数据目录为/mydata/data,用户为mysql。
1
2
3
[iyunv@localhost local]# cd mysql/
[iyunv@localhost mysql]# chown -R mysql:mysql
[iyunv@localhost mysql]# scripts/mysql_install_db --datadir=/mydata/data --user=mysql



    4、改变当前目录的属主为root,并为其提供配置文件。
1
2
[iyunv@localhost mysql]# chown -R root  .   #不要省略这个点号
[iyunv@localhost mysql]# cp support-files/my-large.cnf  /etc/my.cnf



     如果在系统上已经存在/etc/my.cnf配置文件,可以直接覆盖。当然,先备份一份,出问题可以及时修复。
    5、编辑/etc/my.cnf该配置文件时,要加入以下内容:
1
2
3
datadir=/mydata/data   #指明数据的存储目录
innodb_file_per_table=on  #指明默认使用的数据引擎
skip_name_resolve=on  #跳过DNS名称解析



    6、为mysql服务提供服务脚本,并且为该脚本提供执行权限。并添加至服务列表。  
1
2
3
[iyunv@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[iyunv@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
[iyunv@localhost mysql]# chkconfig --add mysqld



    7、输出mysql的头文件至系统头文件路径/usr/include,输出mysql的库文件给系统库查找路径,让系统重新载入系统库。
1
2
3
[iyunv@localhost mysql]# ln -sv /usr/local/mysql/include  /usr/include/mysql
[iyunv@localhost mysql]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[iyunv@localhost mysql]# ldconfig



     添加PATH环境变量;

        在/etc/profile.d/目录下创建mysqld.sh,内容如下:
            export PATH=/usr/local/mysql/bin/:$PATH
        添加环境变量并不是必须的,如果不添加该内容,则在运行/usr/local/mysql/bin/下边的所有相关命令的时候,必须使用绝对路径运行,反之,则可以使用命令本身进行运行,不用写绝对路径。
    进行安全初始化:

        第一种:添加了PATH环境变量:

            直接执行mysql_secure_installation就可以,然后进行自己选择要修改的项即可。
        第二种:没有修改PATH变量:
1
[iyunv@localhost bin]# /usr/local/mysql/bin/mysql_secure_installation



    测试启动mysql服务:
         wKioL1YlCm_j32u8AABqIYEABlU141.jpg
    测试使用mysql客户端连接mysql服务器:
         wKiom1YlCnawxdZjAABMcGnFACQ455.jpg
        由于当时进行了安全初始化,所以在登录的时候要指定密码才能登录。

    mysql允许远程登录:
1
2
3
4
5
6
7
MariaDB [(none)]> create user 'lcs'@'172.16.%.%' identified by 'linux';
Query OK, 0 rows affected (0.17 sec)
#创建lcs这个用户,并允许其在172.16这个网段中的主机上都可以远程登录,其登录密码为linux。

MariaDB [(none)]> grant all on *.* to 'lcs'@'172.16.%.%';
Query OK, 0 rows affected (0.05 sec)
#为lcs这个用户授权,允许其操作数据库中的所有内容。




编译安装php:
    第一种:直接当作模块编译进httpd中。   
        首先解决依赖关系,安装bzip2-devel libmcrypt-devel libxml2-devel这三个包。注意,在配置yum源的时候,要配置系统安装源及epel源。
        1、解压php源码包,同时使用configure命令,进行配置。
1
2
3
[iyunv@localhost ~]# tar xf php-5.4.40.tar.bz2
[iyunv@localhost ~]# cd php-5.4.40
[iyunv@localhost php-5.4.40]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts



        configure命令中所使用的选项的意义为:
            --prefix=/usr/local/php  #指定其安装目录
            --with-openssl --with-mysql=/usr/local/mysql #支持ssl协议,其所依赖的mysql的安装目录为/usr/local/mysql
            --with-mysqli=/usr/local/mysql/bin/mysql_config
            --enable-mbstring --with-freetype-dir #支持mbstring模块
            --with-jpeg-dir --with-png-dir --with-zlib #支持jpeg、png格式,以及页面压缩传输
            --with-libxml-dir=/usr --enable-xml #其xml库目录为/usr,支持xml格式
            --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs #支持套接字
            --with-mcrypt  --with-config-file-path=/etc #其配置文件的在/etc目录下
            --with-config-file-scan-dir=/etc/php.d --with-bz2
            --enable-maintainer-zts #由于在编译httpd使用了event模式,所以在此处使用此选项使得php支持event模型。   
        注:为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。

    2、使用make和make install命令进行安装。
    3、编辑apache的配置文件。
1
[iyunv@localhost php-5.4.40]# vim /etc/httpd/httpd.conf



        进行如下的设置。
1
2
3
AddType application/x-httpd-php  .php #支持php结尾的文件
AddType application/x-httpd-php-source  .phps  #支持phps结尾的文件
DirectoryIndex index.php index.html



    4、通过以上配置,就将php作为模块编译进httpd了。使用命令httpd -M可查看已安装的模块。

    5、在服务器的根目录下,创建一个index.php,作为测试。127.0.0.1可用localhost代替。
1
2
3
4
5
6
7
8
9
<?php      
    phpinfo();      
    $link = mysql_connect('127.0.0.1','root','linux');      
    if ($link)      
        echo "Success...";      
    else      
        echo "Failure...";      
      mysql_close();   
?>




第二种:以fpm的方式编译php。

    首先解决依赖关系,安装bzip2-devel libmcrypt-devel libxml2-devel这三个包。注意,在配置yum源的时候,要配置系统安装源及epel源。
    1、解压php源码包,同时使用configure命令,进行配置以及安装。
1
2
3
[iyunv@localhost ~]# cd php-5.4.40
[iyunv@localhost php-5.4.40]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
[iyunv@localhost php-5.4.40]# make && make install



    由于要以fpm的模式运行,所以要加入--enable-fpm该选项。就是将php作为一个单独的服务运行。

     2、为php提供配置文件。

1
[iyunv@localhost php-5.4.40]# cp php.ini-production /etc/php.ini



    3、为php-fpm提供系统启动脚本。
1
2
3
4
[iyunv@localhost php-5.4.40]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[iyunv@localhost php-5.4.40]# chmod +x /etc/rc.d/init.d/php-fpm  #给该文件加执行权限
[iyunv@localhost php-5.4.40]# chkconfig --add php-fpm  #将其加入到服务列表中
[iyunv@localhost php-5.4.40]# chkconfig php-fpm on  #开启该服务



     4、为php-fpm提供配置文件,并编辑相关设置。
1
2
3
4
[iyunv@localhost ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[iyunv@localhost ~]# cd /usr/local/php/etc/
[iyunv@localhost etc]# vim php-fpm.conf   #编辑配置文件
[iyunv@localhost etc]# service php-fpm start #启动php服务



    编辑配置文件,修改如下内容:
1
2
3
4
5
pm.max_children = 50  #修改
pm.start_servers = 5  #修改
pm.min_spare_servers = 2  #修改
pm.max_spare_servers = 8  #修改
pid = /usr/local/php/var/run/php-fpm.pid  #添加



    启动测试:

        1、使用[iyunv@localhost etc]# ps aux | grep php-fpm进行查看,若有几个php-fpm进程就说明编译安装成功。
         wKiom1YlEE6zZr6MAAInqS5lzwI053.jpg
        2、使用[iyunv@localhost etc]# netstat -tnlp | grep php-fpm查看,默认情况下,fpm监听在127.0.0.1的9000端口。
         wKioL1YlEJaT4jUBAABHgeFd8cw193.jpg

    5、编辑/etc/http/httpd.conf,进行修改如下内容,使httpd支持php。
1
2
3
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps
DirectoryIndex index.php index.html



    6、编辑/etc/http/httpd.conf,进行修改如下内容,使httpd支持fastcgi协议。在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载。
1
2
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so



     7、配置中心主机支持FastCGI。同样的,在相对应的虚拟主机添加如下内容就可。其中,/PATH/TO/DOCUMENT_ROOT/指代的为DocumentRoot所在的目录。
1
2
ProxyRequests Off     #关闭正向代理
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1



     ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

编译安装httpd配置https服务:
    在配置文件中,要把ssl模块给加入进去。同时要把ssl的配置文件以及vhosts的配置文件include进入httpd.conf文件中。   
1
2
3
LoadModule ssl_module modules/mod_ssl.so
Include /etc/httpd/extra/httpd-ssl.conf
Include /etc/httpd/extra/httpd-vhosts.conf





运维网声明 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-128897-1-1.html 上篇帖子: LNMP环境的搭建 下篇帖子: LNMP的技术讲解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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