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

LAMP平台部署及应用二(编译安装)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-28 09:34:11 | 显示全部楼层 |阅读模式
1、实验环境:
Linux服务器操作系统版本:CentOS 7.2
http               IP: 172.16.251.138

httpd-2.4.6.tar      apr-util-1.5.2.tar  
wordpress-4.3.1-zh_CN    apr-1.5.0.tar
phpMyAdmin-4.4.14.1-all-languages
php-fpm            IP:172.16.251.222
xcache-3.1.0.tar        php-5.4.26.tar
mariadb            IP:172.16.251.188
mariadb-5.5.46-linux-x86_64.tar (二进制包)
客户端             IP:172.16.251.164

2、实验准备:
[iyunv@station138 ~]# iptables –F                   //关闭防火墙
[iyunv@station138 ~]#setenforce0                  //关闭SeLinux
[iyunv@station138 ~]# rpm –e httpd mod_ssl mod_perlsystem-config-httpd php php-cli php-ldap php-common php-mairadb  mariadb-server          //卸载相关软件,防止冲突

3、安装开发包组,安装支持软件解决依赖关系:
[iyunv@station138 ~]#yum -y groupinstall "DevelopmentTools" "Server Platform Development"

[iyunv@station138 ~]#tar xf apr-1.5.0.tar.bz2
[iyunv@station138 apr-1.5.0]# ./configure --prefix=/usr/local/apr
[iyunv@station138 apr-1.5.0]# make && make install
[iyunv@station138 ~]#tar xf apr-util-1.5.2.tar.bz2
[iyunv@station138 apr-util-1.5.2]#./configure --prefix=/usr/local/apr-util \
> --with-apr=/usr/local/apr                                 
[iyunv@station138 apr-util-1.5.2]#make && make install
[iyunv@station138 ~]# yum -y install pcre-devel  openssl-devel  libevent-devel

4、源代码安装Apache:
a.编译httpd

[iyunv@station138 ~]# tar xf httpd-2.4.6.tar.bz2
[iyunv@station138 ~]# cd httpd-2.4.6/
[iyunv@station138 httpd-2.4.6]# ./configure \
> --prefix=/usr/local/apache          //安装路径
> --sysconfdir=/etc/httpd24          //配置文件路径
> --enable-so   //支持动态装卸载DSO机制,DSO是动态共享对象,可实现模块动态生效
> --enable-ssl  //支持SSL/TLS 可实现https功能,需要安装openssl-devel开发工具
> --enable-cgi  //支持CGI脚本 默认对非线程的MPM(多路处理)模块开启
> --enable-rewrite          //支持URL重写
> --enable-defalte          //支持压缩功能
> --enable-modules=most     //支持动态启用的模块 {all|most}
> --enable-mpms-shared=all  //支持动态加载的MPM模块 {most|all}
> --with-mpm=prefork        //设置默认启用的mpm模式 {prefork|worker|event}
> --with-pcre               //使用指定的pcre库,需要安装pcre-devel工具
> --with-zlib               //使用指定的zlib库
> --with-apr=/usr/local/apr  //指定apr安装路径
> --with-apr-util=/usr/local/apr-util  //指定apr-util安装路径
[iyunv@station138 httpd-2.4.6]# make && make install

b.添加PATH环境变量:
[iyunv@station138 ~]# vim /etc/profile.d/httpd24.sh
export PATH=/usr/local/apache/bin:$PATH
[iyunv@station138 ~]# source /etc/profile.d/httpd24.sh

c.启动服务:
[iyunv@station138 ~]# ln -sv /usr/local/apache/include/ /usr/include/httpd24
[iyunv@station138 ~]# apachectl start
[iyunv@station138 ~]# ss -tnl
LISTEN     0      128                        :::80                                     :::*

5、二进制安装mariadb:
a.建立mysql用户和组
[iyunv@station188 ~]# useradd -r -M mysql
b.建立数据存放的目录
[iyunv@station188 ~]# mkdir -p /data/mydata
[iyunv@station188 ~]# chown -R mysql:mysql /data/mydata/
c.解压mariadb安装包
[iyunv@station188 ~]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local
[iyunv@station188 ~]# ln -sv /usr/local/mariadb-5.5.46-linux-x86_64/ mysql
[iyunv@station188 ~]# chown -R root.mysql /usr/local/mysql/*
c.使用scripts脚本文件mysql_install_db文件来安装数据库
[iyunv@station188 mysql]# scripts/mysql_install_db --user=mysql --datadir=/data/mydata
d.提供配置文件

[iyunv@station188 mysql]# cp support-files/my-large.cnf /etc/my.cnf
[iyunv@station188 mysql]# vim /etc/my.cnf

datadir=/data/mydata         //指明mysql的数据存放路径

innodb_file_per_table = ON   //成为独立表空间

skip_name_resolve = ON       //跳过名称解析
e.提供mysql服务启动脚本

[iyunv@station188 support-files]# cp mysql.server /etc/rc.d/init.d/mysqld  
[iyunv@station188 support-files]# chkconfig --add mysqld
f.添加环境变量
[iyunv@station188 ~]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
[iyunv@station188 ~]# source /etc/profile.d/mysql.sh
g.导出头文件
[iyunv@station188 ~]# ln -s /usr/local/include/ /usr/include/mysql
h.导出库文件:
[iyunv@station188 ~]# vim /etc/ld.so.conf.d/mysql.conf
i.启动服务

[iyunv@station188 ~]# systemctl start mysqld
[iyunv@station188 ~]# ss -tnl
LISTEN     0      50           *:3306     *:*   

6、源代码安装PHP
a.安装开发包组及依赖关系的包

[iyunv@station222 ~]# yum -y groupinstall "Development Tools" "Server Platform Development"

[iyunv@station222 ~]# yum -y install bzip2-devel libmcrypt-devel libxml2-devel openssl-devel
b.编译php
[iyunv@station222 ~]# tar xf php-5.4.26.tar.bz2
[iyunv@station222 ~]# cd php-5.4.26/
[iyunv@station222 php-5.4.26]# ./configure\
--prefix=/usr/local/php --with-openssl --with-mysql=mysqlnd
--with-pdo-mysql=mysqlnd --with-mysql=mysqlnd --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@station222 php-5.4.26]# make && make install
c.php提供配置文件
[iyunv@station222 php-5.4.26]# cp php.ini-production /etc/php.ini
d.提供php-fpm脚本
[iyunv@station222 php-5.4.26]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[iyunv@station222 php-5.4.26]# chmod +x /etc/rc.d/init.d/php-fpm
[iyunv@station222 php-5.4.26]# chkconfig --add php-fpm
e.提供php-fpm配置文件
[iyunv@station222 php-5.4.26]# cd /usr/local/php
[iyunv@station222 php-5.4.26]# cp etc/php-fpm.conf.default etc/php-fpm.conf
f.启动服务
[iyunv@station222 php-5.4.26]# systemctl start php-fpm
[iyunv@station222 php-5.4.26]# ss -tnl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128       127.0.0.1:9000                          *:*

7、httpd配置

a.支持fastFCGI的模块
[iyunv@station138 ~]# vim /etc/httpd24/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

Include /etc/httpd24/extra/httpd-vhosts.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
b.配置虚拟主机
[iyunv@station138 ~]# vim /etc/httpd24/extra/httpd-vhosts.conf
Directory Index index.php
<VirtualHost 172.16.251.138:80>
    DocumentRoot "/data/vhost1/www1"
    ServerName  www1.b.com
    ProxyRequests off
        Directoryindex index.php
    ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.251.222:9000/data/vhost1/www1/$1
   <Directory "/data/vhost1/www1">
        Options None
        AllowOverride None
        Require all granted
   </Directory>
</VirtualHost>

<VirtualHost 172.16.251.138:80>
    DocumentRoot "/data/vhost2/www2"
    ServerName www2.b.com
    ProxyRequests off
          Directoryindexindex.php
    ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.251.222:9000/data/vhost2/www2/$1
     <Directory "/data/vhost2/www2">
         Options None
         AllowOverride None
         Require all granted
     </Directory>
</VirtualHost>
c.测试重启服务
[iyunv@station138 ~]# mkdir -p /data/vhost1/www1
[iyunv@station138 ~]# mkdir -p /data/vhost2/www2
[iyunv@station138 ~]# apachectl -t
[iyunv@station138 ~]# apachectl restart

8、配置php-fpm
[iyunv@station222 ~]# vim /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid  
listen.allowed_clients = 172.16.251.138
listen = 172.16.251.222:9000
[iyunv@station222 ~]# systemctl restart php-fpm.service
[iyunv@station222 ~]# ss -tnl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128    172.16.251.222:9000                          *:*
测试php和http之间是否正常
[iyunv@station222 ~]# mkdir -p /data/vhost1/www1
[iyunv@station222 ~]# mkdir -p /data/vhost2/www2
[iyunv@station222 ~]# vim /data/vhost1/www1/index.php
<?php
phpinfo();
?>
客户端测试httpd是否连接php-fpm:
http://www1.b.com

9、配置mariadb
a.创建授权用户
[iyunv@station188 ~]#mysql -uroot -p
MariaDB [(none)]> create database wpdb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on wpdb.* to 'wpuser'[url=]@[/url][url=]'172.16.%.%'[/url] identified by 'wp123';
Query OK, 0 rows affected (0.03 sec)
MariaDB [(none)]> create database pma;  
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> grant all on pma.* to 'pmauser'[url=]@[/url][url=]'172.16.%.%'[/url] identified by 'pma123';
Query OK, 0 rows affected (0.00 sec)
b.Php和mysql的链接测试
[iyunv@station222 ~]# vim /data/vhost1/www1/index.php
<?php
$conn = mysql_connect('172.16.251.188','wpuser','wp123');
        if ($conn)
                echo "ok";
        else
                echo "no";
?>

客户端测试php是否连接mysql:

http://www1.b.com

10、部署WordPress:
[iyunv@station222 ~]# unzip wordpress-4.3.1-zh_CN.zip
[iyunv@station222 ~]# mv wordpress /data/vhost1/www1/
[iyunv@station222 ~]# cd /data/vhost1/www1/wordpress/
[iyunv@station222 wordpress]# mv wp-config-sample.php wp-config.php
[iyunv@station222 wordpress]# vim wp-config.php
/** WordPress数据库的名称 */
define('DB_NAME', 'wpdb');
/** MySQL数据库用户名 */
define('DB_USER', 'wpuser');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'wp123');
/** MySQL主机 */
define('DB_HOST', '172.16.251.188');
[iyunv@station222 www1]#scp -r wordpress/ root@172.16.251.138:/data/vhost1/www1/

11、部署phpmyadmin:
[iyunv@station222 ~]# unzip phpMyAdmin-4.4.14.1-all-languages.zip
[iyunv@station222 ~]# mv phpMyAdmin-4.4.14.1-all-languages /data/vhost2/www2/
[iyunv@station222 www2]# ln -sv phpMyAdmin-4.4.14.1-all-languages/ phpmyadmin
[iyunv@station222 www2]# vim phpmyadmin/libraries/config.default.php
$cfg['blowfish_secret'] = 'tSQRO02T+grA6rvJHCXr';
$cfg['Servers'][$i]['host'] = '172.16.251.188';
$cfg['Servers'][$i]['user'] = 'pmauser';
$cfg['Servers'][$i]['password'] = 'pma123';
[iyunv@station222 www2]# scp -r phpmyadmin/ root@[url=]172.16.251.138[/url][url=]:/data/vhost2/www2/[/url]


12.压力测试
a.测试wordpress
[iyunv@station222 ~]# ab -c 100 -n 1000 http://www1.b.com/wordpress
Concurrency Level:      100
Time taken for tests:   3.347 seconds
Completerequests:      1000                                                
Failed requests:        0
Write errors:           0
Total transferred:      174000 bytes
HTML transferred:       2000 bytes
Requests per second:    298.75 [#/sec] (mean)
Time per request:       334.730 [ms] (mean)
Time per request:       3.347 [ms] (mean, across all concurrentrequests)
Transfer rate:          50.76 [Kbytes/sec] received

b.编译安装xcache缓存加速
[iyunv@station222 ~]# tar xf xcache-3.2.0.tar.bz2
[iyunv@station222 ~]# cd xcache-3.2.0/
[iyunv@station222 xcache-3.2.0]# /usr/local/php/bin/phpize
[iyunv@station222 xcache-3.2.0]# ./configure \
> --enable-xcache --with-php-config=/usr/local/php/bin/php-config
[iyunv@station222 xcache-3.2.0]# make && make install
[iyunv@station222 ~]# cp /xcache-3.2.0/xcache.ini  /etc/php.d/
[iyunv@station222 ~]# vim /etc/php.d/xcache.ini
添加:
[xcache-common]
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
修改下缓存大小:
xcache.size  =               200M
[iyunv@station222 ~]# systemctl restart php-fpm.service

c.安装xcache后再测试
[iyunv@station222 ~]# ab -c 100 -n 1000 http://www1.b.com/wordpress
Concurrency Level:      100
Time taken for tests:   2.128 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Non-2xx responses:      1000
Total transferred:      4670000 bytes
HTML transferred:       2390000 bytes
Requests per second:    4700.07 [#/sec] (mean)
Time per request:       212.763 [ms] (mean)
Time per request:       0.213 [ms] (mean, across all concurrent requests)
Transfer rate:          2143.49 [Kbytes/sec] received


运维网声明 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-250485-1-1.html 上篇帖子: Samba+lamp完成指定任务 下篇帖子: Ubuntu14.04安装apt-get方法Lnmp环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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