zoukankan      html  css  js  c++  java
  • 实现LAMP架构常用应用部署

    实现LAMP架构常用应用部署

    1、编译安装httpd2.4和php7.3环境

    环境:主服务器:192.168.37.10 php+httpd服务
          从服务器:192.168.37.20  mariadb服务器
    软件版本: httpd-2.4.39.tar.bz2 
              php-7.3.7.tar.xz
              apr-util-1.6.1.tar.bz2
              apr-1.7.0.tar.bz2
              mariadb-10.2.25-linux-x86_64.tar.gz
    从服务器:
    安装依赖包:
    yum install libaio -y
    1、解压mariadb指定文件夹
    [root@node1 ~]# tar -xvf mariadb-10.2.25-linux-x86_64.tar.gz -C /usr/local/
    2、建立软链接
    [root@node1 ~]# cd /usr/local/
    [root@node1 local]# ln -sv mariadb-10.2.25-linux-x86_64/ mysql
    3、建立mysql用户并设置文件属主权限
    [root@node1 local]# chown -R mysql.mysql mysql/
    4、准备配置文件
    # mkdir /etc/mysql/
    # cp support-files/my-large.cnf /etc/my.cnf  #support-files在mysql目录下
    # vim /etc/my.cnf
    [mysqld]中添加三个选项:
    28 datadir = /data/mysql
    29 innodb_file_per_table = on     #默认存储引擎innodb
    30 skip_name_resolve = on        # 禁止主机名解析,建议使用
    5、创建数据库文件
    # cd /usr/local/mysql/
    # ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
    
    6、准备服务脚本,并启动服务
    # cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    # chkconfig --add mysqld
    # chkconfig mysqld on
    # service mysqld start
    
    7、PATH路径
    # echo PATH=/usr/local/mysql/bin:$PATH> /etc/profile.d/mysql.sh 
    #  . /etc/profile.d/mysql.sh                # 环境变量加入到启动脚本中
    8、启动服务
    service mysql start
    8、安全初始化
    /user/local/mysql/bin/mysql_secure_installation    # mysql安全加固     设置数据库管理员root口令
                                                                           禁止root远程登录
                                                                           删除anonymous用户帐号
                                                                           删除test数
    
    主服务器
    编译安装httpd2.4
    事前:安装依赖包
    yum -y install gcc pcre-devel openssl-devel expat-devel cc
    8、解压软件
    [root@master data]# tar -xvf apr-util-1.6.1.tar.bz2 
    [root@master data]# tar -xvf apr-1.7.0.tar.bz2 
    [root@master data]# tar xvf httpd-2.4.39.tar.bz2 
    9、移动加压文件到http目录下
    [root@master data]# mv apr-1.7.0 httpd-2.4.39/srclib/apr
    [root@master data]# mv apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
    10、http目录下编译安装
    [root@master httpd-2.4.39]#./configure --prefix=/app/httpd24 
    --sysconfdir=/etc/httpd24  
    --enable-so 
    --enable-ssl 
    --enable-cgi 
    --enable-rewrite 
    --with-zlib 
    --with-pcre 
    --enable-modules=most 
    --enable-mpms-shared=all 
    --with-mpm=prefork 
    --with-included-apr 
    --with-included-apr-util
    [root@master data]# make -j 4 && make install
    
    11、设置环境环境变量
    [root@master data]# echo PATH=/app/httpd24/bin/:$PATH > /etc/profile.d/httpd.sh
    [root@master data]# . /etc/profile.d/httpd.sh 
    12、设置服务脚本
    [root@master data]# cp /app/httpd24/bin/apachectl /etc/init.d/httpd
    13、启动服务
    service httpd start
    安装php
    12、安装相关依赖包
    [root@master data]# yum install libxml2-devel bzip2-devel libmcrypt-devel -y
    13、解压文件
    [root@master data]# tar -xvf php-7.3.7.tar.xz
    
    14、编译安装
    [root@master data]# cd php-7.3.7
    [root@master php-7.3.7]# 
    ./configure --prefix=/app/php 
    --enable-mysqlnd 
    --with-mysqli=mysqlnd 
    --with-pdo-mysql=mysqlnd 
    --with-openssl 
    --with-freetype-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-zlib 
    --with-libxml-dir=/usr 
    --with-config-file-path=/etc 
    --with-config-file-scan-dir=/etc/php.d 
    --enable-mbstring 
    --enable-xml 
    --enable-sockets 
    --enable-fpm 
    --enable-maintainer-zts 
    --disable-fileinfo
    
    可能出现问题:
    Sorry, I cannot run apxs.  Possible reasons follow:
    
    1. Perl is not installed
    2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
    3. Apache was not built using --enable-so (the apxs usage page is displayed)
    
    The output of /usr/local/apache/bin/apxs follows:
    ./configure: line 6669: /usr/local/apache/bin/apxs: No such file or directory
    configure: error: Aborting
    
    解决方式:找到apxs存在路径,后修改apxs2编译路径即可
    [root@master php-7.3.7]# find / -name apxs
    /data/httpd-2.4.39/support/apxs
    /usr/bin/apxs
    /app/httpd24/bin/apxs
    
    15、安装
    make && make install
    
    二、配置fastcgi和httpd支持php
    
    
    1、复制fpm到配置文件
    cp php.ini-production /etc/php.ini
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
    chkconfig --add php-fpm
    chkconfig php-fpm on
    cd /app/php/etc
    cp php-fpm.conf.default php-fpm.conf
    cp php-fpm.d/www.conf.default php-fpm.d/www.conf
    service php-fpm start
    
    
    [root@master etc]# vim /etc/httpd24/httpd.conf 
    1、启动proxy_fcgi、proxy
    取消下面两行的注释
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    2、修改下面行
    <IfModule dir_module>
    DirectoryIndex index.php index.html
    </IfModule>
    3、修改下面行
    <IfModule dir_module>
    DirectoryIndex index.php index.html     >>>>>>>>>>普通支持php        (lamp普通模式添加下列三个即可)
    </IfModule>
    加下面四行
    AddType application/x-httpd-php .php   >>>>>>>>>>>普通支持php
    AddType application/x-httpd-php-source .phps>>>>>>>>>>>>>普通支持php
    ProxyRequests Off
    ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1     index.php存放目录
    4、验证、
    rm -rf /app/http24/htdocs/index.html
    cat /app/httpd24/htdocs/index.php
    <?php
    $mysqli=new mysqli("127.0.0.1", "root", "");
    if(mysqli_connect_errno()){
    echo "Failure";
    $mysqli=null;
    exit;
    }
    echo "OK";
    $mysqli->close();
    ?>
    
    
    <?php
      phpinfo();
    ?>
    

    验证截图
    title

    2、部署phpMyadmin

    实验环境:服务器:192.168.37.10
             httpd.x86_64 0:2.4.6-89.el7.centos
             mariadb-server.x86_64 1:5.5.60-1.el7_5 php.x86_64 0:5.4.16-46.el7
             php-mysql.x86_64 0:5.4.16-46.el7
             phpMyAdmin-4.4.15.10-all-languages.tar.xz
    
    1、部署LAMP系统并启动服务
       [root@localhost ~]# yum -y install httpd mariadb-server php php-mysql
       [root@localhost ~]# systemctl start httpd
        [root@localhost ~]# systemctl start mariadb
     2、初始化Mariadb数据库
       [root@localhost pma]# mysql_secure_installation 
     3、解压phpMyadmin并建立软链接
       [root@localhost pma]# tar -xvf phpMyAdmin-4.4.15.10-all-languages.tar.xz -C /var/www/html/
       [root@localhost pma]# cd /var/www/html/
       [root@localhost pma]# ln -sv phpMyAdmin-4.4.15.10-all-languages/ pma
       [root@localhost pma]# cp config.sample.inc.php config.inc.php
    
     4、此时登录会提示缺少mbstring软件
      [root@localhost pma]# yum -y install php-mbstring
      systemctl reload httpd
    
    5、测试
      192.168.37.10/pma 
       
    

    3、搭建WordPress

    环境:服务器1:apache+php     192.168.37.10 
         服务器2:mariadb-server   192.168.37.20 
    
    1、安装lamp架构
    yum install php php-mysql httpd -y
    
    2、测试php
    vim /var/www/html/index.php
    <?
    echo date("Y/m/d H:i:s");
    phpinfo();
    ?>
    3、修改错误时区
    vim /etc/php.ini
    date.tomezone=Asia/shanghai
    服务器2:
    4、启动服务
    systemctl start mariadb
    5设置建立库和建立账号
    crteate database wordpree
    grant all on wordpree.* to wrpuer@'192.168.37.%' identified by 'centos';
    flush grant
    
    客户端连接数据库
    6、mysql -uwruser -pcentos
    
    7、解压WordPress(建议放到var/www/html)
    tar wordpree-5.0.4-zh_CN.tar.gz -C /data/WordPress
    8、设置word配置文件
    ![title](.local/static/2019/6/4/1564017791824.1564017791912.png)
    或者
    也可复制
    cp /wordpress/config.simple.ico.conf   /var/www/html  (可直接在页面配置数据库)
    setfacl -m u:apache:rwx /var/wwww/html/wordpress 
    9、cp /data/wordpress /var/www/html
    10、测试
    192.168.37.10/wordress
    
    

    4、搭建DISCUZ

    lamp搭建同上WordPress步骤一张
    
    unzip discuz_x3.c.zip
    cd dicuz/upload
    cp upload /var/www/html/forum
    setfacl -mR u:apache:xrw /var/www/html/forum
    
    服务器2:
    greate database ultrax
    grant all on ultax.* to wrpuer@'192.168.37.%' identified by 'centos';
    
    

    5、PowerDNS搭建

    部署环境:服务器1:apache+php     192.168.37.10 
             服务器2:mariadb-server   192.168.37.20
    
    1、安装包:基于EPEL源
    yum install -y pdns pdns-backend-mysql
    2、查看相关信息
    rpm -ql pdsn pdns-
    3、数据建库、授权、建表
    CREATE DATABASE powerdns;
    GRANT ALL ON powerdns.* TO 'powerdns'@'192.168.37.%' IDENTIFIED BY 'magedu';
    
    
    CREATE TABLE domains (
      id                    INT AUTO_INCREMENT,
      name                  VARCHAR(255) NOT NULL,
      master                VARCHAR(128) DEFAULT NULL,
      last_check            INT DEFAULT NULL,
      type                  VARCHAR(6) NOT NULL,
      notified_serial       INT DEFAULT NULL,
      account               VARCHAR(40) DEFAULT NULL,
      PRIMARY KEY (id)
    ) Engine=InnoDB;
    
    CREATE UNIQUE INDEX name_index ON domains(name);
    
    
    CREATE TABLE records (
      id                    BIGINT AUTO_INCREMENT,
      domain_id             INT DEFAULT NULL,
      name                  VARCHAR(255) DEFAULT NULL,
      type                  VARCHAR(10) DEFAULT NULL,
      content               VARCHAR(64000) DEFAULT NULL,
      ttl                   INT DEFAULT NULL,
      prio                  INT DEFAULT NULL,
      change_date           INT DEFAULT NULL,
      disabled              TINYINT(1) DEFAULT 0,
      ordername             VARCHAR(255) BINARY DEFAULT NULL,
      auth                  TINYINT(1) DEFAULT 1,
      PRIMARY KEY (id)
    ) Engine=InnoDB;
    
    CREATE INDEX nametype_index ON records(name,type);
    CREATE INDEX domain_id ON records(domain_id);
    CREATE INDEX recordorder ON records (domain_id, ordername);
    
    
    CREATE TABLE supermasters (
      ip                    VARCHAR(64) NOT NULL,
      nameserver            VARCHAR(255) NOT NULL,
      account               VARCHAR(40) NOT NULL,
      PRIMARY KEY (ip, nameserver)
    ) Engine=InnoDB;
    
    
    CREATE TABLE comments (
      id                    INT AUTO_INCREMENT,
      domain_id             INT NOT NULL,
      name                  VARCHAR(255) NOT NULL,
      type                  VARCHAR(10) NOT NULL,
      modified_at           INT NOT NULL,
      account               VARCHAR(40) NOT NULL,
      comment               VARCHAR(64000) NOT NULL,
      PRIMARY KEY (id)
    ) Engine=InnoDB;
    
    CREATE INDEX comments_domain_id_idx ON comments (domain_id);
    CREATE INDEX comments_name_type_idx ON comments (name, type);
    CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
    
    
    CREATE TABLE domainmetadata (
      id                    INT AUTO_INCREMENT,
      domain_id             INT NOT NULL,
      kind                  VARCHAR(32),
      content               TEXT,
      PRIMARY KEY (id)
    ) Engine=InnoDB;
    
    CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
    
    
    CREATE TABLE cryptokeys (
      id                    INT AUTO_INCREMENT,
      domain_id             INT NOT NULL,
      flags                 INT NOT NULL,
      active                BOOL,
      content               TEXT,
      PRIMARY KEY(id)
    ) Engine=InnoDB;
    
    CREATE INDEX domainidindex ON cryptokeys(domain_id);
    
    
    CREATE TABLE tsigkeys (
      id                    INT AUTO_INCREMENT,
      name                  VARCHAR(255),
      algorithm             VARCHAR(50),
      secret                VARCHAR(255),
      PRIMARY KEY (id)
    ) Engine=InnoDB;
    
    CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
    
    4、配置Powersna主文件
    
    vim /etc/pdn/pdns.conf
    launch=gmysql
    gmysql-host=192.168.37.17
    gmysql-port=3306
    gmysql-dbname=powerdns
    gmysql-user=powerdns
    gmysql-password=magedu
    5、启动服务
    systemctl start pdns
    systemctl enable pdns
    
    6、安装服务
    安装httpd和php相关包
    yum -y install httpd php php-devel php-gd php-mcrypt php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext
    7、启动服务
    systemctl start httpd
    systemctl enable httpd
    
    8、下载poweradmin程序,并解压缩到相应目录
    cd /var/www/html
    wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
    
    9、解压到/var/www/html
    tar xvf poweradmin-2.1.7.tgz  -C /var/www/html/poweradmin
    
    

    1、实现mariadb

    编译安装mariadb
    chown -R rootroot mysql/
    
    craeate data base wordress
    grant all on wordpress.* to wordpress@'192.168.37.%' identifit by 'centos'
    
    

    6、部署xcache模块-加速访问

    1、安装方法:
    (1)yum源直接安装:来自epel源
    (2)编译安装
    实例:

    环境:主服务器:192.168.37.10  centos7.6
          客户端:192.168.37.20    centos7.6
    主服务节点:
    1、安装xcache依赖工具
    [root@master ~]# yum install php-devel gcc cc
    2、解压
    [root@master data]# tar -xvf xcache-3.2.0.tar.gz 
    3、生成编译环境
    [root@master data]# cd xcache-3.2.0
    [root@master xcache-3.2.0]# phpize --clean && phpize
    4、编译
    [root@master xcache-3.2.0]# ./configure --enable-xcache
    [root@master xcache-3.2.0]# make && make install
    5.复制配置文件到php配置目录下
    [root@master xcache-3.2.0]# cp xcache.ini /etc/php.d/
    [root@master xcache-3.2.0]# systemctl start httpd
    客户端节点:
    6、测试
    [root@localhost ~]# ab -c 120 -n 1000 192.168.37.10/messages
    [root@localhost ~]# ab -c 120 -n 1000 192.168.37.10/messages.php
    
    

    7、fastcgi

    FastCGI全称 快速通用网关接口(FastCommonGatewayInterface)。
    FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。
    FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等

    (1)原理

    1、Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)
    2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。
    3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
    4、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。

    (2)fastcgi配置

    fcgi服务配置文件:/etc/php-fpm.conf, /etc/php-fpm.d/*.conf
    官方文档:http://php.net/manual/zh/install.fpm.configuration.php
    连接池: pm = static|dynamic
    static:固定数量的子进程;pm.max_children
    dynamic:子进程数量以动态模式管理,默认值
    pm.max_children = 50
    pm.start_servers =5
    pm.min_spare_servers =5
    pm.max_spare_servers =35
    pm.max_requests = 500 每个进程可以处理的请求数
    确保运行php-fpm进程的用户对session目录有读写权限
    mkdir /var/lib/php/session
    chown apache.apache /var/lib/php/session

    (1) 配置httpd
    添加/etc/httpd/conf.d/fcgi.conf配置文件,内容类似

    DirectoryIndex index.php
    ProxyRequests Off
    ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
    UDS(unix domain socket)方式
    ProxyPassMatch ^/(.*.php)$ unix:/var/run/php.sock|fcgi://localhost/app/httpd24/htdocs/$1
    参看:http://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html
    注意:在HTTPD服务器上必须启用proxy_fcgi_module模块,充当PHP客户端
    httpd –M |grep fcgi
    cat /etc/httpd/conf.modules.d/00-proxy.conf
    

    2) 虚拟主机配置

    vim /etc/httpd/conf.d/vhosts.conf
    DirectoryIndex index.php
    <VirtualHost *:80>
    ServerName www.b.net
    DocumentRoot /apps/vhosts/b.net
    ProxyRequests Off
    ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/apps/vhosts/b.net/$1
    <Directory "/apps/vhosts/b.net">
    Options None
    AllowOverride None
    Require all granted
    </Directory>
    </VirtualHost>
    
  • 相关阅读:
    vc++6.0如何调试
    Visual C++单文档混合分割视图
    使用VC6.0实现窗口的任意分割张中庆
    用MFC创建通用窗体分割框架
    vc++6.0编译环境介绍(1、2)
    浅谈SDI单文档多视切换方法
    单文档多视图Formview切换源代码(此网还有许多其它多视图切换的源代码)
    VC单文档实现多视图的方法
    Visual C++(VC++6.0)编译器常用选项设置
    PowerTip of the DayRemoving Empty Things
  • 原文地址:https://www.cnblogs.com/pansn/p/11256904.html
Copyright © 2011-2022 走看看