美文网首页
centos6.9实现基于源码编译安装LAMP的wordpres

centos6.9实现基于源码编译安装LAMP的wordpres

作者: KingFighting | 来源:发表于2017-10-16 23:13 被阅读0次

    简介

    LAMP,Web应用软件组合,是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。LAMP有多种组合实现方式,本文采用的组合方式是:
    Linux + Apache + MariaDB + PHP
    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的上架设属于自己的网站和博客。


    实验实现简单LAMP

    环境准备

    准备三台虚拟机
    A:系统是centos6.9,IP地址是192.168.1.6,充当的角色是LAP;
    B:系统是centos6.9,IP地址是192.168.1.66,充当的角色是Mariadb数据库服务器;
    C:系统是centos7.3,IP地址是192.168.1.7,充当的角色是客户端,主要是测试使用的。
    准备源码包或二进制程序包
    A上需要准备的包

    [root@centos6 src]#ls
    apr-1.6.2.tar.gz       httpd-2.4.27.tar.bz2  wordpress-4.8.1-zh_CN.tar.gz
    apr-util-1.6.0.tar.gz  php-5.6.31.tar.xz     xcache-3.2.0.tar.bz2
    

    B上需要准备的包

    [root@centos6 src]# ls
    mariadb-5.5.57-linux-x86_64.tar.gz
    

    确保两台机器上面的防火墙以及selinux处于关闭状态

    实验过程

    一、 在B上二进制安装mariadb

    1. 卸载系统自带的数据库
    [root@centos6 src]# yum remove mysql-server
    # 删除原有的mysql用户
    [root@centos6 src]# userdel -r mysql
    
    1. 创建用户mysql,指定数据库文件存储路径
    [root@centos6 src]# useradd -r -m -d /app/mysqldb -s /sbin/nologin  mysql
    
    1. 解压二进制程序包,创建软链接
    [root@centos6 src] tar xvf mariadb-5.5.57-linux-x86_64.tar.gz  -C /usr/local/
    [root@centos6 src]# cd /usr/local
    [root@centos6 local]# ln -s mariadb-5.5.57-linux-x86_64/ mysql
    
    1. 创建数据库文件和指定数据库用户
    [root@centos6 local]# cd mysql
    [root@centos6 mysql]# scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql
    
    1. 准备数据库配置文件
    [root@centos6 mysql]# mkdir /etc/mysql
    [root@centos6 mysql]# cp support-files/my-large.cnf   /etc/mysql/my.cnf
    
    [root@centos6 mysql]# vim /etc/mysql/my.cnf
    # 在/etc/mysql/my.cnf文件的[mysqld]下面加几行设置
    
    # 指定数据库路径
    datadir = /app/mysqldb
    # 将每个表都存到一个独立文件中
    innodb_file_per_table = ON
    # 禁止主机名解析
    skip_name_resolve = ON
    
    1. 准备服务脚本和日志文件
    [root@centos6 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
    [root@centos6 mysql]# chkconfig --add mysqld
    # 服务可由chkconfig来管理
    [root@centos6 mysql]# chkconfig --list
    [root@centos6 mysql]# touch /var/log/mysqld.log
    [root@centos6 mysql]# chown mysql /var/log/mysqld.log
    [root@centos6 mysql]# service mysqld start
    # 3306端口打开
    [root@centos6 mysql]# ss -ntul 
    
    1. 修改PATH环境变量
    [root@centos6 mysql]# vim /etc/profile.d/mysql.sh 
    PATH=/usr/local/mysql/bin/:$PATH
    [root@centos6 mysql]# . /etc/profile.d/mysql.sh
    
    1. 数据库初始化工作,创建wordpress使用的数据库,并进行相关授权
    # 数据库安全初始化(设置数据库root用户口令是centos,删除匿名用户)
    [root@centos6 mysql]# mysql_secure_installation
    # 创建wpdb数据库,授权用户
    [root@centos6 mysql]# mysql -uroot -pcentos
    mysql> create database wpdb; 
    mysql> grant all on wpdb.* to wpuser@'localhost' identified by 'centos';
    mysql> grant all on wpdb.* to wpuser@'127.%' identified by 'centos';
    mysql> grant all on wpdb.* to wpuser@'192.168.1.%' identified by 'centos';
    # 在A测试连接B上的数据库,发现可以连接
    [root@centos6 src]#mysql -uwpuser -pcentos -h192.168.1.66
    

    二、 在A上源码编译安装httpd2.4

    1. 安装准备
    # 卸载系统自带的httpd
    [root@centos6 src]# yum remove httpd
    # 安装开发包组以及相关开发包
    [root@centos6 src]# yum groupinstall "development tools"
    [root@centos6 src]# yum install openssl-devel pcre-devel expat-devel
    
    1. 编译安装
    [root@centos6 src]# tar xvf apr-1.6.2.tar.gz 
    [root@centos6 src]# tar xvf apr-util-1.6.0.tar.gz 
    [root@centos6 src]# tar xvf httpd-2.4.27.tar.bz2 
    [root@centos6 src]# cp -r apr-1.6.2 httpd-2.4.27/srclib/apr
    [root@centos6 src]# cp -r apr-util-1.6.0 httpd-2.4.27/srclib/apr-util
    
    [root@centos6 src]# cd httpd-2.4.27/
    [root@centos6 httpd-2.4.27]# ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
    [root@centos6 httpd-2.4.27]# make -j 8 && make install
    
    1. 配置环境变量以及配置httpd相关设置,创建服务脚本,启动服务
    [root@centos6 httpd-2.4.27]#vim /etc/profile.d/lap.sh
    PATH=/app/httpd24/bin/:$PATH
    [root@centos6 httpd-2.4.27]#. /etc/profile.d/lap.sh
    # 修改httpd以apache身份运行(apache用户事先存在)
    vim /app/httpd24/conf/httpd.conf
    User apache
    Group apache
    # 把B机器上面的httpd服务脚本拷贝到A机器上
    [root@centos6 ~]# scp /etc/init.d/httpd  192.168.1.6:/etc/init.d/httpd24
    # 修改几项设置
    [root@centos6 httpd-2.4.27]#vim /etc/init.d/httpd24
    apachectl=/app/httpd24/bin/apachectl
    httpd=${HTTPD-/app/httpd24/bin/httpd}
    pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
    lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
    [root@centos6 httpd-2.4.27]#chkconfig --add httpd24
    [root@centos6 httpd-2.4.27]#chkconfig --list httpd24
    [root@centos6 httpd-2.4.27]#service httpd24 start
    

    三、 在A上源码编译安装php

    此处编译安装的php是作为独立的进程,而不是作为httpd的一个模块。

    1. 安装相关开发包
    [root@centos6 src]#yum install libxml2-devel bzip2-devel libmcrypt-devel
    
    1. 编译安装php
    [root@centos6 src]#tar xvf php-5.6.31.tar.xz
    [root@centos6 src]#cd php-5.6.31
    [root@centos6 php-5.6.31]#./configure \
    > --prefix=/app/php \
    > --enable-mysqlnd \
    > --with-mysqli=mysqlnd \
    > --with-openssl \
    > --with-pdo-mysql=mysqlnd \
    > --enable-mbstring \
    > --with-freetype-dir  \
    > --with-jpeg-dir \
    > --with-png-dir \
    > --with-zlib \
    > --with-libxml-dir=/usr \
    > --enable-xml \
    > --enable-sockets \
    > --with-apxs2=/app/httpd24/bin/apxs \
    > --enable-fpm \
    > --with-mcrypt \
    > --with-config-file-path=/etc/php \
    > --with-config-file-scan-dir=/etc/php.d \
    > --with-bz2
    [root@centos6 php-5.6.31]#make -j 8 && make install
    
    1. 配置环境变量,设置php配置文件,创建服务脚本,启动服务
    [root@centos6 php-5.6.31]#vim /etc/profile.d/lap.sh  
    PATH=/app/php/bin:/app/httpd24/bin/:$PATH
    [root@centos6 php-5.6.31]#. /etc/profile.d/lap.sh
    [root@centos6 php-5.6.31]#mkdir /etc/php/
    [root@centos6 php-5.6.31]#cp  php.ini-production  /etc/php/php.ini 
    [root@centos6 php-5.6.31]#cp   sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    [root@centos6 php-5.6.31]#chmod +x /etc/init.d/php-fpm
    [root@centos6 php-5.6.31]#chkconfig --add php-fpm
    [root@centos6 php-5.6.31]#chkconfig --list  php-fpm
    [root@centos6 php-5.6.31]#cd /app/php/etc
    [root@centos6 etc]#cp php-fpm.conf.default  php-fpm.conf
    [root@centos6 etc]#service php-fpm start
    
    1. 配置httpd
    [root@centos6 httpd24]#vim /app/httpd24/conf/httpd.conf
    # 取消下面两行的注释
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    # 在文件尾部加四行
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    ProxyRequests Off 
    ProxyPassMatch  ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
    # 修改下面行
    <IfModule dir_module>
        DirectoryIndex index.php index.html
    </IfModule>
    [root@centos6 httpd24]#service httpd24 restart
    

    四、 在A上配置连接数据库,在C上测试

    [root@centos6 htdocs]#vim /app/httpd24/htdocs/index.php
    <html><body><h1>It works!</h1></body></html>
    <?php
    $mysqli=new mysqli("192.168.1.66","wpuser","centos");
    if(mysqli_connect_errno()){
    echo "连接数据库失败!";
    $mysqli=null;
    exit;
    }
    echo "连接数据库成功!";
    $mysqli->close();
    phpinfo();
    ?>
    

    在C机器的浏览器地址栏输入192.168.1.6进行测试,效果图如下:

    五、 在A上配置wordpress

    [root@centos6 src]#tar xvf wordpress-4.8.1-zh_CN.tar.gz  -C /app/httpd24/htdocs
    [root@centos6 src]#cd /app/httpd24/htdocs
    [root@centos6 htdocs]#mv wordpress/ blog/
    [root@centos6 htdocs]#cd /app/httpd24/htdocs/blog/
    [root@centos6 blog]#cp wp-config-sample.php  wp-config.php
    [root@centos6 blog]#vim wp-config.php
    # 配置下面4项
    define('DB_NAME', 'wpdb');
    define('DB_USER', 'wpuser');
    define('DB_PASSWORD', 'centos');
    define('DB_HOST', '192.168.1.66');
    

    六、在C上访问博客平台以及进行性能测试

    在C机器的浏览器地址栏输入192.168.1.6/blog,将会弹出下图界面。


    设置站点标题,设置管理使用的用户名和密码,点击安装WordPress。安装完之后,点击登录,就可以设置自己喜爱的主题以及发布博客文章了。浏览器中输入192.168.1.6/blog可以查看自己的博客。
    在C上面用ab命令进行性能测试。
    [root@centos7 httpd]#ab -c 10 -n 100 http://192.168.1.6/blog/
    ...
    Requests per second:    18.02 [#/sec] (mean)
    ...
    

    七、 在A上编译xcache实现Php加速

    [root@centos6 src]#tar xvf xcache-3.2.0.tar.bz2 
    [root@centos6 src]#cd xcache-3.2.0
    # 生成configure文件
    [root@centos6 xcache-3.2.0]#phpize
    [root@centos6 xcache-3.2.0]#./configure --enable-xcache --with-php-config=/app/php/bin/php-config  
    [root@centos6 xcache-3.2.0]#make -j 8 && make install
    [root@centos6 xcache-3.2.0]#mkdir /etc/php.d/
    [root@centos6 xcache-3.2.0]#cp xcache.ini  /etc/php.d/ 
    [root@centos6 xcache-3.2.0]#vim /etc/php.d/xcache.ini
    extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so
    [root@centos6 xcache-3.2.0]#service php-fpm restart
    

    八、 在C上再次进行性能测试

    [root@centos7 httpd]#ab -c 10 -n 100 http://192.168.1.6/blog/
    ...
    Requests per second:    37.01 [#/sec] (mean)
    ...
    

    发现性能已经有了较大的提升。


    至此,LAMP的简单实现就介绍完了。这只是一个很基本的LAMP实现,主要是为了说明LAMP的大致实现方式,有很多不足之处,请多指点。

    相关文章

      网友评论

          本文标题:centos6.9实现基于源码编译安装LAMP的wordpres

          本文链接:https://www.haomeiwen.com/subject/ognkuxtx.html