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>