#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();
?>

検証のスクリーンショット
タイトル

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は、ワードプレスを設定しました

环境:服务器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、設定清華

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

mariadbを達成するための1、

编译安装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は、高速のCommon Gateway Interface(FastCommonGatewayInterface)の略です。
CGIの永久(ロングライブ)タイプのようなFastCGIは、それは常に、常に、これが最も批判CGIフォークと実行モードである(一度フォークする時間を取る必要はありません、活性化する限り、使用して実行することができます)。また、他のサイトへのサーバーからの要求を受け入れることよりも、すなわち、FastCGIのプログラムは、ホストサーバや他のサイト上で実行することができ、分散コンピューティングをサポートしています。
FastCGIのは、言語に依存しない、スケーラブル、オープン拡張フレームワークのCGIで、メインの挙動は、メモリ内のCGIインタプリタのプロセスを維持するため、より高い性能を達成することです。我々はすべて知っているようにメモリに保持し、スケジューリングFastCGIプロセスマネージャを受け入れる場合は、CGIインタプリタ繰り返し荷重は、パフォーマンスの低下のCGI、CGIインタプリタの主な理由は、良好なパフォーマンス、スケーラビリティ、フェール特性オーバー、などを提供することができます

(1)原理

Webサーバー開始FastCGIプロセスマネージャ(IIS ISAPIモジュールまたはApache)ロード時に1、
2、FastCGIプロセスマネージャは、複数のCGIインタプリタ処理を開始するために、それ自体を初期化する(複数PHP-CGI示す)と、Webサーバからの接続を待ちます。
3、クライアントの要求を選択し、CGIインタプリタに接続するために、Webサーバー、のFastCGI Process Managerを到着したとき。Webサーバーは、子のFastCGI PHP-CGI CGI環境変数と標準入力に送信します。
図4は、同じ接続からの治療の標準出力とエラーメッセージが完了した後のFastCGI子プロセスは、Webサーバーを返します。子FastCGIプロセスが閉じると、接続要求は、プロセスを完了するために来ます。FastCGIの子プロセスを、その後のFastCGIプロセスマネージャ(Webサーバーに実行されている)の下から治療を待つ接続です。CGIモードでは、PHP-CGIこれが終了します。

(2)のFastCGIの設定

fcgiのサービスプロファイル:/etc/php-fpm.d/*.conf /etc/php-fpm.conf、
公式ドキュメントします。http://php.net/manual/zh/install.fpm.configuration.php
接続プール:PM =静的|動的な
静的:子プロセスの固定数は、pm.max_children
ダイナミック:ダイナミックモードで管理子プロセスの数、デフォルト値
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
PM要求の数を処理することができ、各プロセスの.max_requests = 500
プロセスは、PHP-FPMユーザーが実行されていることを確実にするためには、読み取りと書き込みの権限セッションディレクトリてい
ます。mkdirは/ var / libに/ PHP /セッション
のchown apache.apacheの/ var / libに/ PHP /セッション

(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>

おすすめ

転載: www.cnblogs.com/pansn/p/11256904.html
おすすめ