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

[经验分享] centos7 lamp(moudle)

[复制链接]

尚未签到

发表于 2018-4-26 11:35:43 | 显示全部楼层 |阅读模式
CentOS 7, lamp (module)

  

  要求:(1) 三者分离于两台主机;
         (2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;
         (3) xcache
         (4) 为phpMyAdmin提供https虚拟主机;
  

  

  规划: 172.18.105.110 上运行http服务器以及php后端脚本

             172.18.17.191 运行数据库
  

  准备工作
  我提前做好了DNS 两台A记录172.18.105.110 对应的FQDN 为www1.stu05.com  www2.stu05.com
  
  

  

  

  

  1.在172.18.105.110上yum install httpd php  php-mysql -y 注:此时php是作为httpd的模块
    在172.18.17.191 yum install mariadb.server -y  安装数据库
  

        systemctl start httpd      
        扩展:2.4的http支持fastcgi,如果要使用把php替换成php-fpm
  

  

  2.关闭中心主机的 #DocumentRoot "/var/www/html"
  

  

  3.配置虚拟主机的根目录
    mkdir -pv /web/vhosts/www1
    mkdir -pv /web/vhosts/www2
    
  4.配置基于FQDN的虚拟主机 vim /etc/httpd/conf.d/vhosts
  虚拟主机一
  
      <VirtualHost 172.18.105.110:443>
            ServerName www1.stu05.com
            DocumentRoot  "/web/vhosts/www1"
                
          <Directory "/web/vhosts/www1">
              AllowOverride None
              Options None
              Require all granted
          </Directory>
      </VirtualHost>
  

  虚拟主机二
    <VirtualHost 172.18.105.110:80>
                  ServerName www2.stu05.com
                  DocumentRoot  "/web/vhosts/www2"
    
                  <Directory "/web/vhosts/www2">
                          AllowOverride None
                          Options None
      </VirtualHost>
  

  
  检查语法httpd -t 时中间出现报错:
  httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
  

  原因:httpd:不能可靠地确定服务器的完全限定域名,使用localhost.localdomain。设置' ServerName指令在全球范围内抑制此消息
  

  解决办法:vim /etc/httpd/conf/httpd.conf   首先找到ServerName(约213行),将其设置为localhost:80
  

  5.测试http的虚拟站点是否正常
     vim /web/vhosts/www1 和 /web/vhosts/www1
     vim index.html
   www2站点 <b1>www2 meimei </b1>    www1站点 <b1>www1 meimei </b1>
  在浏览器里输入www1.stu05.com  www2.stu05.com  ---------------此时本地dns已经指向本地
  

  

  6.rpm -ql php 检查 libphp5.so 模块是否对应着httpd启用的mpm模块为prefork
    注意:测试前查看php的库是否和httpd的mpm的多道处理模块是否匹配
      rpm查看库 rpm -ql  php   httpd查看启用模块 vim /etc/httpd/conf.modules.d/00-mpm.conf
       php库:libphp5.so      模块:LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
       php库:libphp5-zts.so  模块:LoadModule mpm_worker_module modules/mod_mpm_worker.so
         LoadModule mpm_event_module modules/mod_mpm_event.so
  
  

  7.测试httpd与php连通是否正常 vim /web/vhosts/www1 和 /web/vhosts/www1
     vim index.php
     
       php测试代码
          <?php
              phpinfo();
          ?>
  
    浏览器  http://www1.stu05.com   http://www2.stu05.com
  

  7.测试php与mysql-server的连接是否正常
      以管理员登录mysql,并授权远程登录用户
  CREATE DATABASE wpdb1;   创建数据库
     (1) GRANT ALL ON wpdb1.* TO  wpuser1@'172.18.%.%' IDENTIFIED BY 'wpuser1';
       注:GRANT授权 在172.16.0.0/16网段的主机通过testuser远程访问testdb的所有表
     (2) FLUSH PRIVILEGES 刷新立即生效
       可查看用户:SELECT USER();
  测试下远程用户是否可以登录数据库:mysql -uwpuser1 -h172.18.17.191 -pwpuser1
  

     (3)关闭mysql登录时候用户名的反解
           vim /etc/my.cnf 配置文件中[mysqld]后面加入skip_name_resolve = ON
           然后重载service mysqld reload
       分别放在index.php中后,运行 http://172.18.105.110
        <?php
              $conn = mysql_connect('172.16.100.67','testuser','testpass');
      if ($conn)
              echo "OK";
      else
              echo "Failure";
          ?>
  

      lamp环境就成功了。
  

  总结:
  任何开源程序需要连接到数据库的,在测试lamp连接数据库ok的情况下,如果是远程连接,则需要创建一个得到授权的远程连接的用户,而workdpress不仅需要创建一个数据库,还需要一个得到授权的远程连接的用户。
  远程主机登录数据库 define('DB_HOST', '172.18.250.157');   本地主机登录数据库define('DB_HOST', '127.0.0.1');
  本地数据库root登录如果有密码  mysql -uroot  -pxwj4611
      如果本地数据库root没有密码mysql
  

  

  

  
  8.第一个虚拟主机运行wordpress
    cp  wordpress-4.3.1-zh_CN.zip /web/vhosts/www1/
    unzip wordpress-4.3.1-zh_CN.zip
    ln -sv wordpress-4.3.1-zh_CN  wordpress 然后cd /wordpress
   1、cp wp-config-sample.php   wp-config.php
   2、执行mysql或者如果本地root已经设定密码mysql -uroot -pxwj4611 ------CREATE DATABASE wpdb;创建数据库   大多数开源的程序会自动创建数据库
   3、GRANT ALL ON wpdb.* TO wpuser@'172.18.%.%' IDENTIFIED BY 'wppress'   
     注:给这个软件授权一个用户可以远程连接数据库,如果是本地连接127.0.0.1
  4、vim vp-config.php 编辑配置文件
           /** WordPress数据库的名称 */
            define('DB_NAME', 'wpdb1');
  

           /** MySQL数据库用户名 */
             define('DB_USER', 'wpuser1');
  

           /** MySQL数据库密码 */
             define('DB_PASSWORD', 'wpuser1');
  

           /** MySQL主机 */
             define('DB_HOST', '172.18.17.191');    如果是本地连接loaclhost 或者127.0.0.1  
  测试:www1.stu05.com/wordpress   压力测试 ab -n 1000 -c 100 http://www2.stu05.com/wordpress/index.php  -c模拟的并发数 -n模拟的总请求数
  本地测试的没有考虑带宽,服务器可能没有跑满带宽跑满了。Requests per second:    8.85 [#/sec] (mean) 每秒钟处理的请求数
  

  
  
  9.第二个虚拟主机运行phpMyAdmin
    准备工作:  cp  phpMyAdmin-4.4.14.1-all-languages.zip /web/vhosts/www1/
   unzip phpMyAdmin-4.4.14.1-all-languages.zip
      ln -sv phpMyAdmin-4.4.14.1-all-languages pma   注:方便回滚
  我需要事先为其连接到数据库后准备一个授权的远程链接的用户:以遍可以登录
     (1)、执行mysql或者如果本地root已经设定密码mysql -uroot -pxwj4611
     (2)、GRANT ALL ON wpdb.* TO myuser@'172.18.%.%' IDENTIFIED BY 'myuser'
    
  为phpMyAdmin能够连接数据库修改配置文件
  (1)cp config.sample.inc.php  config.inc.php  
  (2)openssl ran -base64 15
  (3)vim   config.inc.php  
     $cfg['blowfish_secret'] = '46aJFLiLxmqO0qrdGqwx'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ -------随机数贴里面
     $cfg['Servers'][$i]['host'] = '172.18.17.191';     远程连接指向数据库的主机
    测试:www1.stu05.com/pma  
    压力测试 ab -n 1000 -c 100 http://www1.stu05.com/pma/index.php   -c模拟的并发数 -n模拟的总请求数
  

  

    
   10、编译安装xcache      
       # yum install php-devel
  # cd  xcache-3.2.0
  # phpize
  # ./configure --enable-xcache  --with-php-config=/usr/bin/php-config
  # make && make install
  # cp  xcache.ini  /etc/php.d/
  重新启动systemctl restart php-fpm
  

  

   11、 为phpMyAdmin提供https虚拟主机;
  

      <VirtualHost 172.18.105.110:443>
           ServerName www1.stu05.com
            DocumentRoot  "/web/vhosts/www1/myadmin"
             SSLEngine on
            SSLCertificateFile /etc/httpd/ssl/httpd.crt--------------指向证书的位置
            SSLCertificateKeyFile /etc/httpd/ssl/httpd.key------------指向公钥的位置
  

            <Directory "/web/vhosts/www1/myadmin">
                 AllowOverride None
               Options FollowSymLinks-----------------------------允许访问链接文件的源文件
                 Require all granted
              </Directory>
         </VirtualHost>
  

  

   测试:本地主机指向dns
  

  浏览器 https://www1.stu05.com      http://www2.stu05.com/wordpress
  

运维网声明 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-452246-1-1.html 上篇帖子: CentOS6.4+MySQL-5.6.12 安装详解 下篇帖子: CentOS IP设置问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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