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

[经验分享] LAMP架构之httpd+php(module)+mariadb

[复制链接]

尚未签到

发表于 2018-12-17 12:02:20 | 显示全部楼层 |阅读模式
  CentOS 7, lamp(module);
  实现:
  (1) 三者分离于两台主机;
  (2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;
  (3) 为php提供xcache;
  (4) 为phpMyAdmin网站提供https虚拟主机

  

  ON http(172.16.17.7):
  

  1)安装httpd及php程序包
[root@node1 ~]# yum -y install httpd php php-mysql php-mbstring  2)httpd虚拟主机www.pma.com以及www.wordpress.com,新建/etc/httpd/conf.d/vhosts.conf

    ServerName www.pma.com
    DocumentRoot "/web/pma/htdocs"
   
        Options None
        AllowOverride None
        Require all granted
   


    ServerName www.wordpress.com
    DocumentRoot "/web/wordpress/htdocs"
   
        Options None
        AllowOverride None
        Require all granted
   
  3)安装配置PHPmyadmin程序
[root@node1 ~]# mkdir -pv /web/{pma,wordpress}
[root@node1 ~]# unzip phpMyAdmin-4.4.14.1-all-languages.zip -d /web/pma/
[root@node1 ~]# mv /web/pma/phpMyAdmin-4.4.14.1-all-languages/ /web/pma/htdocs   
[root@node1 ~]# cd /web/pma/htdocs
[root@node1 htdocs]# cp config.sample.inc.php config.inc.php
[root@node1 htdocs]# openssl rand -base64 20
5Cfn69rDk+6I3Twd4KtgLfT/v5k=
编辑config.inc.php文件,将生成的随机数复制到里面,然后更改数据库连接主机:
$cfg['blowfish_secret'] = '5Cfn69rDk+6I3Twd4KtgLfT/v5k';
$cfg['Servers'][$i]['host'] = '172.16.17.8';  4)安装配置wordpress程序
[root@node1 ~]# unzip wordpress-4.3.1-zh_CN.zip -d /web/wordpress/
[root@node1 ~]# mv /web/wordpress/wordpress/ /web/wordpress/htdocs
[root@node1 ~]# cd /web/wordpress/htdocs
[root@node1 htdocs]# cp wp-config-sample.php wp-config.php
编辑wp-config.php文件,配置数据库连接信息:
define('DB_NAME', 'wpdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wppasswd');
define('DB_HOST', '172.16.17.8');  5)启动httpd服务
[root@node1 ~]# httpd -t                     
Syntax OK
[root@node1 ~]# systemctl start httpd.service  

  

  

  

  ON mariadb(172.16.17.8):
  

  1)创建运行mariadb的用户
[root@node2 ~]# groupadd -r mysql
[root@node2 ~]# useradd -r -g mysql mysql  2)创建数据库存放目录

[root@node2 ~]# mkdir -pv /data/mysql
[root@node2 ~]# chown -R mysql.mysql /data/mysql/  3)解压mariadb程序包至/usr/local,并创建mysql软链接

[root@node2 ~]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local/
[root@node2 ~]# cd /usr/local/
[root@node2 local]# ln -sv mariadb-5.5.46-linux-x86_64/ mysql  4)初始化数据库
[root@node2 local]# chown -R root.mysql mysql/
[root@node2 mysql]# scripts/mysql_install_db --user=mysql --datadir=/data/mysql  5)提供mysql主配置文件并编辑之

[root@node2 mysql]# mkdir /etc/mysql
[root@node2 mysql]# cp support-files/my-medium.cnf /etc/mysql/my.cnf
在my.cnf配置文件中的[mysqld]端添加以下内容:
datadir = /data/mysql         //设置mysql的数据存储目录
innodb_file_per_table = ON    //设置innodb存储引擎独立存储数据库
skip_name_resolve = ON        //禁止mysql进行反解主机名  6)提供mysql服务脚本

[root@node2 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@node2 mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@node2 mysql]# chkconfig --add mysqld
[root@node2 mysql]# chkconfig mysqld on  7)启动mysqld服务
[root@node2 ~]# service mysqld start  8)创建wpdb库,授权wpuser用户连接
MariaDB [(none)]> CREATE SCHEMA wpdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'172.16.%.%' IDENTIFIED BY 'wppasswd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY '123qwe!@#';
MariaDB [(none)]> FLUSH PRIVILEGES;  

  打开浏览器,添加hosts文件解析,访问网站:

  
  




  

  

  



  

  客户端使用ab命令对服务器进行压力测试:

[root@localhost ~]# ab -c 50 -n 500 http://www.pma.com/index.php  
  

  

  ON http(172.16.17.7):为web服务器编译安装xcache
  1)安装php-devel包及开发工具包组
[root@node1 ~]# yum -y install php-devel
[root@node1 ~]# yum -y groupinstall "Development Tools" "Server Platform Development"  2)解压xcache源码包至/usr/local下
[root@node1 ~]# tar xf xcache-3.2.0.tar.bz2 -C /usr/local/
[root@node1 ~]# mv /usr/local/xcache-3.2.0/ /usr/local/xcache  3)生成configure脚本
[root@node1 xcache]# phpize  4)执行编译安装
[root@node1 xcache]# ./configure --enable-xcache --with-php-config=/usr/bin/php-config
[root@node1 xcache]# make -j 4 && make install  5)复制xcache的ini文件至/etc/php.d目录下

[root@node1 xcache]# cp xcache.ini /etc/php.d/  6)重启httpd服务

[root@node1 ~]# systemctl restart httpd.service  

再次在客户端使用ab命令对服务器进行压力测试:

[root@localhost ~]# ab -c 50 -n 500 http://www.pma.com/index.php

  

  

  为PHPMyAdmin网站提供https虚拟主机:

  
  ON mariadb(172.16.17.8):模拟私有CA,生成CA私钥及自签证书
[root@node2 ~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
[root@node2 ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:MageEdu
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:ca.stu17.com
Email Address []:caadmin@stu17.com
[root@node2 ~]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
[root@node2 ~]# touch /etc/pki/CA/{serial,index.txt}
[root@node2 ~]# echo 02 > /etc/pki/CA/serial
[root@node2 ~]# ls /etc/pki/CA/
cacert.pem  certs  crl  index.txt  newcerts  private  serial  

  ON http(172.16.17.7):创建证书签署请求
[root@node1 ~]# mkdir /etc/httpd/ssl
[root@node1 ~]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
[root@node1 ~]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 3650
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:MageEdu
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:www.pma.com
Email Address []:admin@pma.com
[root@node1 ~]# scp /etc/httpd/ssl/httpd.csr root@172.16.17.8:/etc/pki/CA/  

  ON mariadb(172.16.17.8):CA签证
[root@node2 ~]# openssl ca -in /etc/pki/CA/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 3650
Certificate Details:
        Serial Number: 2 (0x2)
        Validity
            Not Before: Jan 23 00:21:51 2016 GMT
            Not After : Jan 20 00:21:51 2026 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = Beijing
            organizationName          = MageEdu
            organizationalUnitName    = Ops
            commonName                = www.pma.com
            emailAddress              = admin@pma.com
[root@node2 ~]# scp /etc/pki/CA/certs/httpd.crt root@172.16.17.7:/etc/httpd/ssl/  

  ON http(172.16.17.7):配置httpd支持使用ssl,及使用的证书
[root@node1 ~]# yum -y install mod_ssl
[root@node1 ~]# vim /etc/httpd/conf.d/ssl.conf
DocumentRoot "/web/pma/htdocs"
ServerName www.pma.com:443

Options None
AllowOverride None
Require all granted

......
SSLCertificateFile /etc/httpd/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
[root@node1 ~]# httpd -t
Syntax OK
[root@node1 ~]# systemctl restart httpd.service  

  将CA主机上的CA证书改名为cacert.crt导入到本地网站信任证书列表中,测试访问


  




运维网声明 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-652419-1-1.html 上篇帖子: PHP编译configure时常见错误总结 下篇帖子: 简单php文件编写语法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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