• LAMP架构实现-单机module形式


    LAMP简介:             

    本章实现的时单机LAMP且通过php以httpd模块的形式实现。
    L:linux
    A:apache (httpd)
    M:mysql, mariadb        
    P:php, perl, python

    WEB资源类型:

    静态资源:原始形式与响应内容一致,在客户端浏览器执行
    动态资源:原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端

    Web相关语言

    客户端技术: html,javascript,css,jpg
    服务器端技术:php, jsp,python,asp。
    php: 脚本编程语言、嵌入到html中的嵌入式web程序语言,基于zend编译成opcode(二进制格式的字节码,重复运行,可省略编译环境)

    CGI

    CGI:Common Gateway Interface
    描述了client和server之间传输数据的一种标准。可以让一个客户端,从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据;CGI描述了客户端和服务器程序之间传输的一种标准
    请求流程:
    Client -- (http协议) --> httpd -- (cgi) --> application server (program file)--(mysql协议) --> mysql

    LAMP工作原理

    php与apache结合的方式

    ①CGI:client访问动态资源时,httpd会fork一个子进程来运行PHP引擎,来加载并运行PHP文件

    ②Fast CGI:php-fpm程序,监听一个套接字提供服务。

    ③modules:默认方式,把php编译为httpd的一个模块。

      MPM:

        prefork: libphp5.so
        event, worker: libphp5-zts.so

    php与mysql结合的方式

    php_mysql驱动

    php配置

    php:脚本语言解释器

    配置文件:/etc/php.ini, /etc/php.d/*.ini
      php.ini的核心配置选项文档: http://php.net/manual/zh/ini.core.php
      php.ini配置选项列表:http://php.net/manual/zh/ini.list.php

    对配置文件的修改生效方法

      Modules:重启httpd服务
      FastCGI:重启php-fpm服务

    /etc/php.ini配置文件格式:

      [foo]:Section Header
      directive = value

    注释符

      较新的版本中,已经完全使用;进行注释
      #纯粹的注释信息
      ;用于注释可启用的directive
     

    php常见设置:

    max_execution_time= 30 最长执行时间30s
    memory_limit=128M 生产不够,可调大
    display_errors=off 调试使用,不要打开,否则可能暴露重要信息
    display_startup_errors=off 建议关闭
    post_max_size=8M 最大上传数据大小,生产可能调大,比下面项大
    upload_max_filesize =2M 最大上传文件,生产可能要调大
    max_file_uploads = 20 同时上传最多文件数
    date.timezone =Asia/Shanghai 指定时区
    short_open_tag=on 开启短标签,如<? phpinfo();?>

    实现LAMP方式

    CentOS 7:

      Modules:httpd, php, php-mysql, mariadb-server
      FastCGI:httpd, php-fpm, php-mysql, mariadb-server

    CentOS 6:

      Modules:httpd, php, php-mysql, mysql-server
      FastCGI:默认不支持

    实验一:单机基于php模块方式,实现LAMP

    基于php模块方式安装LAMP

    CentOS 6:

    yum install httpd, php, mysql-server, php-mysql
    service httpd start
    service mysqld start

    CentOS 7:实验环境

    第一步安装软件包

      yum install httpd php php-mysql mariadb-server
    注意:httpd要使用prefork模型,prefork模型是默认模型所以不需要修改。

    说明

    ①安装php包时,默认已经安装到了httpd的目录下。
    ②php的配置文件是由依赖的包php-common提供。

    第二步配置php测试页面

    echo "static resources" > /var/www/html/index.html
    
    /var/www/html/index.php
    
    <?php
      echo date("Y/m/d H:i:s");
     $conn = mysql_connect('192.168.206.15','lamp','123456'); ###php连接mysql测试代码
     if ($conn) 
      echo "OK";
     else
      echo "Failure";
     mysql_close();
     ?>

    第三步数据库配置

    数据库授权

    mysql -uroot -p123456
    grant all privileges on test.* to 'lamp'@'localhost' identified by '123456';
    grant all privileges on test.* to 'lamp'@'%' identified by '123456';
    flush privileges;

    第四步验证

    常见LAMP应用

    PhpMyAdmin
      是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库
    WordPress
      是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可把 WordPress当作一个内容管理系统(CMS)来使用
    PHPWind:
      2003年发布了PHPWind的前身版本ofstar,并发展成为包含BBS、CMS、博客、SNS等一系列程序的通用型建站软件, 于2008年加入阿里巴巴集团
    Crossday Discuz! Board(简称 Discuz!)
      是一套通用的社区论坛软件系统。自2001年6月面世以来,是全球成熟度最高、覆盖率最大的论坛软件系统之一。2010年8月23日,与腾讯达成收购协议
    ECShop
      是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。2006年6月,ECShop推出第一个版本1.0

    实验二布署phpMyadmin

    实现思路,将phpMyadmin放到httpd服务的documentroot路径下。

    第一步环境搭建

    yum -y install httpd mariadb-server php php-mysql  
    systemctl start httpd
    systemctl start mariadb
    mysql_secure_installation
    下载:https://www.phpmyadmin.net/downloads/
    tar xvf phpMyAdmin-4.0.10.20-all-languages.tar.xz
    mkdir /var/www/html/phpadmin
    cp -r /app/phpMyAdmin-4.0.10.20-all-languages/* /var/www/html/phpadmin/
    cd /var/www/html cd phpadmin/ cp config.sample.inc.php config.inc.php yum -y install php-mbstring systemctl reload httpd

    注意要安装php-mbstring否则会报错。

     第二部界面配置phpMyAdmin

    账号密码为第一步执行mysql_secure_installation时设置的root密码

    登陆后配置如下

  • 相关阅读:
    简单的三级联动练习
    JavaScript中定时器的暂停和继续
    关于ajax网络请求的封装
    关于JS历史
    KVC中setValuesForKeysWithDictionary:
    collectionView 中cell间距设置建议
    iOS中你必须了解的多线程
    iOS中关于动态Tableview中的cell数据传输的多线程问题解决之拙见
    Touch
    Filemanager 的使用
  • 原文地址:https://www.cnblogs.com/wxxjianchi/p/13548313.html
Copyright © 2020-2023  润新知