+++++++LAMP布署Wordpress、phpMyadmin

常见动态资源服务模型

  • LAMP Linux Apache Mariadb|Mysql|Mongdb Php|Perl|Python
  • LAMMP Linux Apache Mariadb|Mysql|Mongdb Memocache Php|Perl|Python
  • LNMP Linux Nginx Mariadb|Mysql|Mongodb Php|Perl|Python
  • LNMMP Linux Nginx Mariadb|Mysql|Mongodb Memocache Php|Perl|Python
  • LAMT Linux Apache Mariadb|Mysql|Mongdb Tomcat
  • LNMT Linux Nginx Mariadb|Mysql|Mongdb Tomcat

httpd静态资源的响应模型

客户端通过http协议连接静态资源服务器

httpd动态态资源的响应模型

程序文件需要在虚拟机(PHP, Perl, Tomcat, Python)中运行后响应。

如果虚拟中的程序运行过程中需要数据库时,就通过连接数据库的驱动,驱动内提供的函数库完成封装报文、解封装报文和与mysql服务器交互。

  • CGI 

    • 静态资源: fork自身用子进程响应。
    • 动态资源:CGI调用对应程序,fork自身,程序作为子进程运行
    • 在同一个主机上通信IPC:
        消息队列、共享内存、旗语、套接字
        message queue, shared memor, semaphores, unix socket
    • 缺陷: **httpd处理的请求过多**
  • FastCGI 

    • 跨主机通信IPC:

        套接字、远程过程调用
        socket, rpc
  • 动态网站特性
    • 静态资源>动态资源(一个PV内1/10个为动态)
    • 1/100个需要mysql的数据[在应用程序服务器中]
    • 加强后端服务器的性能
  • httpd与php结合的方式
    • CGI: 作为HTTPD子进程<与tomcat, perl, python整合>
    • Modules: php作为httpd的模块, httpd调用模块不用生成子进程
    • FastCGI: 独立的服务器

文件查询和数据库查询的区别

  • 操作文件时都需要将数据载入内存中

    • 将文件中的所有数据块加载至内存进行查找
  • 数据库管理系统:[可以将数据存储为较小的数据集],查询时只用装载较小的数据集

    • 将部分字段抽取<复制>出来,做为一个较小的数据集,存储的位置有指向原位置的指针
    • 将抽取出的字段按特定的逻辑,再抽取一份,做为一个小的数据集
    • 查找到的key对应的指针会指向原位置所在的行[每行或多行为一个数据块] 

php解释器与mysql交互

php解释器中运行的php代码/程序,需要用到mariadb时,用驱动,连接mariadb

php

服务器端脚本编程语言,动态网站开发语言:php, asp, ruby, c, bash<解释器,提供程序功能>

  • 代码执行过程

    扫描(词法分析) --> parsing(语义分析-->表达式) --> compilation(表达式-->opcode) --> exec(opcode-->机器指令)

php加速方式

请求相同的动态资源时,之前缓存在内存中的opcode相同代码可以重复利用

即使是prefork,进程间也可以共用opcode

注意:prefork每个进程独立的,进程有自己的内存空间,不能使用其他进程内资源

存储系统

  • 文件系统: 文件 操作文件时,需要内核的系统调用
  • SQL数据库: mariadb, mysql, oracle, ms_sql 交互时,用驱动[函数库]连接
  • no_sql: redis, mongodb, hbase
  • new_sql: <存储,基于分布式模式,管理的存储的系统>

rpm提供LAMP组合布署开源程序

wordpress, phpMyadmin, discuss

CentOS 6rpm安装LAMP

  • 配置yum源

      # install -d /media/cdrom
      # mount -r /dev/cdrom /media/cdrom
      # mv -v /etc/yum.repos.d/CentOS-Base.repo{,.bak}
      # vim /etc/yum.repos.d/CentOS-Base.repo
          [C6CentOS]
          name=CentOS 6
          failovermethod=priority
          baseurl=file:///media/cdrom
                  http://mirrors.aliyun.com/centos/6/os/i386/
          gpgcheck=0
          enabled=1
          [EPEL]
          name=Fedora EPEL
          failovermethod=priority
          baseurl=http://mirrors.aliyun.com/epel/6/i386/
                  http://mirrors.sohu.com/fedora-epel/6/i386/
          gpgcheck=1
          gpgkey=http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-6
          enabled=1
  • 安装
      # yum -y install httpd php php-mysql mysql-server
  • 配置
      # rpm -ql php    
      /etc/httpd/conf.d/php.conf              //提供httpd的配置文件
      /usr/lib/httpd/modules/libphp5.so       //提供给httpd的模块
      PS:此模块仅能运行prefork模型, worker|event模型:libphp5-zts.so模块
      # httpd -M
       php5_module (shared)                   //模块已经被装载
  • 启用httpd, mysql
      # service httpd start
      # service mysqld start
    • 测试httpd

        # ss -tnl
        在Windows浏览器中键入IP地址测试
        http://
    • 测试mysql
        # ss -tnl
        # mysql
        mysql>
  • 测试
    • php程序执行环境

        # vim /var/www/html/index.php
        <?php 
            phpinfo();
        ?>

    • 测试php程序通过驱动连接mysql服务器

      php-mysql驱动所提供的调用: mysql_connect, mysql_close php代码以‘;‘结尾

         # vim /var/www/html/index.php
         <?php
         $link=mysql_connect(‘localhost‘,‘root‘,‘‘);
         if($link)
            echo "Success";
        else
            echo "Failure";
        mysql_close();
        ?>

        停止服务
        # service mysqld stop

  • 布署wordpress[个人博客站点]
    • 服务器环境要求

      PHP 5.2.4或更新版本

      MySQL 5.0或更新版本

      Apache mod_rewrite模块(可选,用于支持“固定链接”和“站点网络”功能)

    • 下载链接: wordpress-4.8.1-zh_CN.zip
    • 获取wordpress wordpress中文站点
    • 展开并配置
        # unzip wordpress-4.8.1-zh_CN.zip
        # cp -a wordpress /var/www/html/
        # cd /var/www/html/
        # ln -sv wordpress wp            //便于升级
        # cd wp
        # cp wp-config-sample.php wp-config.php
        # vim  wp-config.php 
            define(‘DB_NAME‘, ‘wpdb‘);
            define(‘DB_USER‘, ‘wpuser‘);
            define(‘DB_PASSWORD‘, ‘wppass‘);
    • mysql中添加用户
        # mysql
        mysql> GRANT ALL ON *.* TO ‘wpuser‘@‘localhost‘ IDENTIFIED BY ‘wppass‘;
        mysql> GRANT ALL ON *.* TO ‘wpuser‘@‘127.0.0.1‘ IDENTIFIED BY ‘wppass‘;
        mysql> FLUSH PRIVILEGES;
        mysql> CREATE DATABASE wpdb;
        mysql> \q
    • 在Windows主机中,输入CentOS虚拟主机的IP测试

      http://172.16.100.1/wp

  • 布署phpMyadmin[mysql Web GUI]

    • 安装php扩展: php-mbstring

        # yum install php-mbstring   //A module for PHP applications which need multi-byte string handling
        [[email protected] pma]# rpm -ql php-mbstring
        /etc/php.d/mbstring.ini
        /usr/lib/php/modules/mbstring.so   //提供了php的扩展模块或库
    • 重载httpd,因为php是httpd的模块
        # rpm -ql php
        /etc/httpd/conf.d/php.conf
        /usr/lib/httpd/modules/libphp5.so  //php是httpd的模块
      
        # service httpd reload
    • 再次测试 
    • 下载链接: phpMyAdmin-4.7.4-all-languages.zip

      当前版本与PHP 5.5至7.1和MySQL 5.5及更高版本兼容。

    • 下载链接: phpMyAdmin-4.0.10.20-all-languages.zip

      旧版本与PHP 5.2和MySQL 5兼容。不支持PHP 5.5或更新版本。至2017年4月1日为止。

    • 获取版本
        # rpm -q php
        # rpm -q mysql
        # rpm -q httpd
    • 获取phpMyadminphpMyadmin官网
    • 展开并配置
        # unzip phpMyAdmin-4.0.10.20-all-languages.zip
        # cp -a phpMyAdmin-4.0.10.20-all-languages.zip /var/www/html
        # cd /var/www/html/
        # ln -sv phpMyAdmin-4.0.10.20-all-languages pma
        # cd pma
        # cp config.sample.inc.php config.inc.php
        # openssl rand -hex 16
        e870cf5bb5e30295ca0389f77b469919
        # vim config.inc.php 
        $cfg[‘blowfish_secret‘] = ‘ e870cf5bb5e30295ca0389f77b469919‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
        [‘AllowNoPassword‘] = false; //拒绝空密码登陆
    • mysql中给root用户添加密码
        # mysql
        mysql> SET PASSWORD FOR ‘root‘@‘localhost‘=PASSWORD(‘magedu‘);
        mysql> SET PASSWORD FOR ‘root‘@‘127.0.0.1‘=PASSWORD(‘magedu‘); 
        mysql> FLUSH PRIVILEGES;
        mysql> \q
    • 在Windows主机中,输入CentOS虚拟主机的IP测试

      http://172.16.100.3/pma

CentOS 7rpm安装LAMP

  • 安装

      # yum -y install httpd php php-mysql mariadb-server
  • 启动
     # systemctl start httpd.service
     # systemctl start mariadb.service

给php添加xcache模块,实现缓存加速

  • 安装前测试

      # ulimit -n 65535
      # php -m
      [Zend Modules]
      [[email protected] pma]# ab -c 1000 -n 4000 172.16.100.3/pma
      Server Software:        Apache/2.2.15
      Server Hostname:        172.16.100.3
      Server Port:            80
    
      Document Path:          /pma
      Document Length:        310 bytes
    
      Concurrency Level:      1000                   //并发数  
      Time taken for tests:   5.968 seconds
      Complete requests:      4000                   //请求数
      Failed requests:        0
      Write errors:           0
      Non-2xx responses:      4003
      Total transferred:      2137602 bytes
      HTML transferred:       1240930 bytes
      Requests per second:    670.23 [#/sec] (mean)  //每秒请求数
      Time per request:       1492.033 [ms] (mean)   //每批请求所需要的时间
      Time per request:       1.492 [ms] (mean,      //每个请求所需要的时间
      Transfer rate:          349.77 [Kbytes/sec]    //3MiB带宽
    
      Connection Times (ms)
                    min  mean[+/-sd] median   max
      Connect:        0  338 613.4    157    3130   //客户端建立连接
      Processing:     1  379 771.3    168    4759   //服务器处理请求
      Waiting:        0  322 700.7    133    4505   //服务器响应
      Total:        187  716 1088.9    329    5798  //一次完整的事务
  • 安装xcache
      # yum -y install php-xcache // Fast, stable PHP opcode cacher
    
      查看安装所提供的模块:
      # rpm -ql php-xcache
      /etc/php.d/xcache.ini
      /usr/lib/php/modules/xcache.so      //为php提供的模块
  • 重载httpd
      # service httpd reload
      # php -m
      [Zend Modules]
      XCache
      XCache Cacher
      XCache Coverager
      XCache Optimizer
  • 测试
    • 预热

        # ab -c 10 -n 100 www.mykernel.cn/pma
        # ab -c 10 -n 100 www.mykernel.cn/pma
        # ab -c 10 -n 100 www.mykernel.cn/pma
    • 测试
        [[email protected] pma]# ab -c 1000 -n 4000 172.16.100.3/pma
        Server Software:        Apache/2.2.15
        Server Hostname:        172.16.100.3
        Server Port:            80
      
        Document Path:          /pma
        Document Length:        310 bytes
      
        Concurrency Level:      1000
        Time taken for tests:   6.510 seconds
        Complete requests:      4000
        Failed requests:        0
        Write errors:           0
        Non-2xx responses:      4006
        Total transferred:      2139204 bytes
        HTML transferred:       1241860 bytes
        Requests per second:    614.46 [#/sec] (mean)     //每秒请求
        Time per request:       1627.457 [ms] (mean)      
        Time per request:       1.627 [ms] (mean, across all concurrent requests)
        Transfer rate:          320.91 [Kbytes/sec] received
      
        Connection Times (ms)
                      min  mean[+/-sd] median   max
        Connect:        0  180 590.6      4    3014
        Processing:     0  531 1086.5    101    6376
        Waiting:        0  527 1086.1     97    6372
        Total:         75  711 1431.8    106    6477
      
        Percentage of the requests served within a certain time (ms)
          50%    106
          66%    114
          75%    145
          80%    542
          90%   3210
          95%   4408
          98%   5325
          99%   6081
         100%   6477 (longest request)
         ...

有问题反馈

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

  • 邮件:[email protected]
  • QQ: 2192383945

感激

关于作者

  1. nickName  : "nuni"
  2. site : "[email protected]"

Edit By MaHua

时间: 2024-08-29 15:10:37

+++++++LAMP布署Wordpress、phpMyadmin的相关文章

Ubuntu 16.04环境布署小记

本系列文章记录了升级Ubuntu 16.04的布署过程 回到目录 10. 安装Mono, Xsp 当前版本16.04.1的系统源的Mono版本为4.2.1,如需使用最新版本(本文书写时稳定版本为4.6.2),则需添加Mono官方源地址 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://dow

使用LAMP创建基于wordpress的个从博客网站

参考: http://blog.csdn.net/ck_boss/article/details/27866117 一.mysql配置 1.安装mysql yum install mysql-server CentOS中已经默认安装,此步骤忽略. 2.启动mysql service mysqld start 3.登录mysql [[email protected] share]# mysql -u -root -p Enter password: Welcome to the MySQL mon

solr5.5教程-tomcat布署

tomcat和solr在各自官网下载,版本如下: tomcat版本:8.0.24 solr版本:5.5.0 1.solr解压后,目录结构如下: 2.tomcat的webapps里新建solr目录, 把solr-5.5.0\server\solr-webapp\webapp目录下的文件全部复制进来 在WEB-INF文件下新建classes文件夹,把solr-5.5.0\server\resources\log4j.properties复制到classes文件夹里,这样才能看到solr的日志. 3.

中小企业openstack私有云布署实践【9.3 主从controller单向同步glance-image目录】

采用Rysnc单向同步,而不用双方实时同步,原因是在历史的运行过程中,我们发现,有些镜像包太大,当在主用的glance将镜像保存时,并不是一时半会就把镜像保存好,当主用在保存时,备用节点又在实时同步那个正常拷贝保存状态中的不完整主用文件,因此我们会看到在备节点上,它删了又拷的方式,非常损耗机器的硬盘. 所以我们采用Rysnc单向同步, 做这一步时,我已布署好了之前的集群.下面的示例是以办公网测试环境为例,科兴的雷同,只是IP和主机名不同而已 使用root用户运行源服务器controller2的进

Ubuntu 16.04系统布署小记

前段时间趁着双11打折,又将阿里云主机续费了3年.之前布署的系统是Ubuntu 12.04,从系统发布到现在也有四年半了,其官方支持的生命周期也将止于明年春,且这在几年里出现了很多新的事物,我也需要跟上时代的步伐,于是着手将整个环境更新至最新的Ubuntu 16.04,现将布署过程记录如下 系统布署 环境布署 应用布署 10. 停止服务器实例,选择更换系统盘,选择Ubuntu 16.04 64bit,重启实例 20. 挂载虚拟内存 mkdir /swap && cd /swap &

Dokuwiki布署小记

最近个人写作风格全面转向Markdown模式,但之前使用的Mediawiki并未原生支持,且本人在布署时为了实现其所见即所得的方案和别的一些个性化需求,添加了太多插件和自定义设置,两年多过去了,很多设置细节已不甚记得,所以想进行Wiki的重新布署与实施.经研究,最终选择Dokuwiki.其优点很多,如功能强大,更新及时,插件丰富,结构简单,布署方便等.现将布署过程记录如下,以示备忘. 10.从官网上下载程序包,如果本地没有PHP环境,注意在“Include Web-Server”处勾选“Micr

企业级中间件应用WebLogic11g/12c集群安装布署配置培训视频课程全套

企业级中间件应用WebLogic11g/12c集群安装布署配置培训视频课程全套 套餐介绍:高薪必学的企业级中间件应用WebLogic实施教程. 基础:中间件的概念,WebLogic概念,域,JDK,JVM,数据源,连接池,控制台,集群相关. 实战:1.企业级应用系统项目的实施流程,如调研,方案,规划等;2.Oracle WebLogic11g与WebLogic12c集群配置与实施维护;4.WebLogic在windows与Linux平台下的实施与维护;5.不同平台下JDK安装与JVM参数优化;6

考考你!布署上云最快需要几步?

考考你!布署上云最快需要几步?不包括打开阿里云网站,只需要1步——用基础环境镜像一键部署! 买了云服务器,不会用?运行云上业务,没有得力工具? 看图大猜想,答案猛戳这里:http://www.aliyun.com/act/aliyun/1218/service.html 工具.运维服务.镜像你值得拥有! 12.18工具运维镜像分会场[工具服务]全场低至0元:[运维服务]全场3折,0元限量抢购:[镜像服务]全场免费. 助你上云,so easy!#1218不止是低成本#

IIS6.0中布署MVC站点(转)

昨晚我写的API上线,API是vs2010 + MVC4开发的,需要布署到windows 2003 server + IIS6.0的环境中,之前一直是布在IIS7.0,比较熟悉, 换到IIS6.0,添加网站,修改配置后,发现网站无法访问. 在网上找了一些文章,综合了几个,才终于搞定了. 服务器环境要求: Windows 2003 server + IIS6.0 1.必须安装.net framework 4.0, MVC 2.最好能安装.net framework 的sp1, 我们服务器上装的是.