实验-----在centos6上编译lamp基于fpm模式的应用wordpress

实验:在centos6上编译lamp基于fpm模式的应用wordpress,并且实现xcache加速

 

软件版本:

      apr-1.6.2.tar.gz       mariadb-5.5.57-linux-x86_64.tar.gz    

      apr-util-1.6.0.tar.gz     xcache-3.2.0.tar.gz

      php-5.6.31.tar.xz        httpd-2.4.28.tar.bz2

      wordpress-4.8.1-zh_CN.tar.gz

必要的包:

      "development tools"                    开发环境包组

      openssl-devel expat-devel pcre-devel       httpd需要的包

      libxml2-devel bzip2-devel libmcrypt-devel     php需要的包

步骤:

1、源码编译安装Httpd2.4

具体含义请参考之前的博文:http://13150617.blog.51cto.com/13140617/1974733

  ①安装包组及包

   yum groupinstall "development tools"   安装开发包组

   yum install openssl-devel expat-devel pcre-devel   安装必要的包

 

  ②下载软件并解压

   tar xvf apr-1.6.2.tar.gz

   tar xvf apr-util-1.6.0.tar.gz

   tar xvf httpd-2.4.28.tar.bz2

   cp -r apr-1.6.2 httpd-2.4.28/srclib/apr

   cp -r apr-util-1.6.0 httpd-2.4.28/srclib/apr-util   将apr和apr-util放到同一指定目录下

  ③编译安装httpd

    cd httpd-2.4.28/

    ./configure --prefix=/app/httpd24 \

    --enable-so \

    --enable-ssl \

    --enable-cgi \

    --enable-rewrite \

    --with-zlib \

    --with-pcre \

    --with-included-apr \

    --enable-modules=most \

    --enable-mpms-shared=all \

    --with-mpm=prefork

    make -j 4 && make install       

  ④将httpd的命令路径加入PATH变量,方便使用(不需要每次都使用绝对路径)

    vim /etc/profile.d/lamp.sh             

    PATH=/app/httpd24/bin/:$PATH

   . /etc/profile.d/lamp.sh   执行脚本使其生效

  ⑤启动服务

    apachectl start

  ⑥配置成服务

   cp /etc/init.d/httpd /etc/init.d/httpd24   

    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}     

    chkconfig --add httpd24

    service http24 restart  重启服务

   查看已打开80端口:ss -ntl

实验-----在centos6上编译lamp基于fpm模式的应用wordpress

2、二进制安装mariadb

具体含义请参考之前的博文:http://13150617.blog.51cto.com/13140617/1971776

  ①下载二进制包并解压

tar xvf mariadb-10.2.9-linux-x86_64.tar.gz -C /usr/local/  路径必须在这里

  ②将解压后的包改名为mysql

cd /usr/local

ln -s mariadb-10.2.9-linux-x86_64/ mysql  创建软链接,名字必须为mysql,

   或者,mv mariadb-10.2.9-linux-x86_64 mysql 直接改名为mysql

  ③创建mysql用户

mkdir -p /app/mysqldb 

useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql  创建mysql用户,家目录为/app/mysqldb,可以自己指定


【附加,可以不做此操作:使用逻辑卷作为数据库的数据存放位置

   设置-->添加一块硬盘

   echo '- - -' > /sys/class/scsi_host/host2/scan  使硬盘生效

   创建逻辑卷:

   pvcreat /dev/sdb                                      vgcreate vg_mysqldb /dev/sdb

   lvcreate -n lv_mysqldb -l +100%FREE vg_mysqldb 

   mkfs.ext4 /dev/vg_mysqldb/lv_mysqldb -L /app/mysqldb(卷标名)   格式化

   vim /etc/fstab   配置开机挂载                                   /dev/vg_mysqldb/lv_mysqldb /app/mysqldb ext4 defaults,acl 0 0

   mount -a  重新挂载

   chown mysql /app/mysqldb 修改文件所属人为mysql

  ④生成数据库文件 

     cd /usr/local/mysql/

     scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql   运行脚本生成数据库文件

  ⑤生成mysql的配置文件

   mkdir /etc/mysql 

cp support-files/my-large.cnf   /etc/mysql/my.cnf  文件名必须叫这个 

vim /etc/mysql/my.cnf

    [mysqld]

    datadir = /app/mysqldb

    innodb_file_per_table = ON

    skip_name_resolve = ON 

  ⑥将mysqp配置成服务mysqld

cp support-files/mysql.server /etc/init.d/mysqld  

chkconfig --add mysqld

service mysqld start      启动不了因为没有日志文件,根据提示做如下操作

 

touch /var/log/mysqld.log           创建日志文件

chown mysql /var/log/mysqld.log          修改日志文件权限

service mysqld start                 启动mysqld服务

ss -ntl                    看到3306端口打开

实验-----在centos6上编译lamp基于fpm模式的应用wordpress 

  ⑦将mysqld的命令路径加入PATH变量,方便使用

 vim /etc/profile.d/lamp.sh                      

     PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH

 . /etc/profile.d/lamp.sh  

  ⑧运行安全脚本,设置root密码

   mysql_secure_installation    

  ⑨登陆数据库创建数据库及用户wordpress的实现做准备

   mysql -uroot -pcentos  

  >create datebase blogdb;  创建blogdb数据库

   创建用户[email protected]'192.168.199.%'并授权:

  >grant all on blogdb.* to [email protected]'192.168.199.%' identified by '123456';


3、源码编译安装Php

  ①安装必要的包,下载php源码并解压

yum install libxml2-devel bzip2-devel libmcrypt-devel  有的包需要epel源

tar xvf php-7.1.10.tar.xz

  ②编译安装php,基于fpm独立服务方式

    cd php-7.1.10/

    ./configure --prefix=/app/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/php \

    --with-config-file-scan-dir=/etc/php.d \

    --with-bz2 

     make -j 4 && make install

 ③将php的命令路径加入PATH变量,方便使用

   vim /etc/profile.d/lamp.sh      

    PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:/app/php/bin/:$PATH   

   . /etc/profile.d/lamp.sh

  ④准备php所需的文件 


    准备php的配置文件:

     mkdir /etc/php

     cp php-7.1.10/php.ini-production /etc/php/php.ini 


    复制脚本模板并配置成服务,方便使用:

     cp php-7.1.10/sapi/fpm/init.d.php-fpm.in /etc/init.d/php-fpm   

     chkconfig --add php-fpm

     chmod +x /etc/init.d/php-fpm


    准备自己服务的配置文件:

     cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf  

 

4、编辑httpd的主配置文件使其支持php

  vim /app/httpd24/conf/httpd.conf        

   在文件尾部加四行        

    ProxyRequests Off

    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/http24/htdocs/$1

    AddType application/x-httpd-php .php

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

   取消两行注释

     LoadModule proxy_module modules/mod_proxy.so

     LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

   修改主页面顺序

     <IfModule dir_module>

       DirectoryIndex index.php index.html    

     </IfModule>

 启动php服务:

          service php-fpm start  

如果启动不起来,报错如下:

实验-----在centos6上编译lamp基于fpm模式的应用wordpress

那么vim /etc/init.d/php-fpm

    修改如下三行,都修改为绝对路径

    php_fpm_BIN=/app/php/sbin/php-fpm

    php_fpm_CONF=/app/php/etc/php-fpm.conf

    php_fpm_PID=/app/php/var/run/php-fpm.pid

再启动即可service php-fpm start

可以使用ss -ntl 查看9000端口打开了

实验-----在centos6上编译lamp基于fpm模式的应用wordpress 

5、测试php和mariadb连接

vim /app/httpd24/htdocs/index.php

    <html><body><h1> LAMP</h1></body></html>

    <?php

    $mysqli=new mysqli("mysqlserver","root","123456");

    if(mysqli_connect_errno()){

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

    $mysqli=null;

    exit;

    }

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

    $mysqli->close();

    phpinfo();

    ?>

网页访问:http://192.168.199.137/,效果如下则测试成功。至此lamp架构就实现了

实验-----在centos6上编译lamp基于fpm模式的应用wordpress 

6、配置wordpress

 ①下载wordpress并解压

    tar xvf wordpress-4.8.1-zh_CN.tar.gz

 ②将wordpress下所有文件放到主站点下,并且配置使其连接数据库

    mv wordpress/* /app/httpd24/htdocs 

   cd /app/httpd24/htdocs/

   cp wp-config-sample.php  wp-config.php  准备配置文件

    vim wp-config.php              编辑配置文件

    define('DB_NAME', 'blogdb');        数据库名

    define('DB_USER', 'wpuser');        用户名

    define('DB_PASSWORD', '123456');      密码

    define('DB_HOST', 'localhost');      数据库所在服务器地址

 

7、性能测试: ab -c 20 -n 1000 http://192.168.199.137

  windows测试:http://192.168.199.137 出现如下欢迎界面

实验-----在centos6上编译lamp基于fpm模式的应用wordpress 

8、xcache加速

 ①下载工具并解压

  tar xvf xcache-3.2.0.tar.gz

 ②编译安装xcache

  cd xcache-3.2.0

  phpize  生成编译环境             

  ./configure --enable-xcache --with-php-config=/app/php/bin/php-config   

  make && make install  编译安装

 ③配置xcache

  mkdir /etc/php.d

  cp xcache-3.2.0/xcache.ini /etc/php.d/  将xcache复制到php.d下就可以使php和xcache结合在一起

     修改库的路径(可以使用ls看一下路径):

     vim /etc/php.d/xcache.ini   

      extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so

  ④重启php-fpm服务

   service php-fpm restart  

 

性能测试:ab -c 20 -n 1000 http://192.168.199.137 比较之前会发现处理速度明显提升


感谢浏览,如有疑问,欢迎留言

实验-----在centos6上编译lamp基于fpm模式的应用wordpress





















本文转自lc0108131451CTO博客,原文链接:http://blog.51cto.com/13150617/1976271 ,如需转载请自行联系原作者