php 安装
解压压缩包,与nginx相似,预编译,编译,安装
yum install -y bzip2
yum install -y systemd-devel libxml2-devel sqlite-devel libpng-devel libcurl-devel
rpm -ivh oniguruma-devel-6.8.2-1.el7.x86_64.rpm
rpm -ivh oniguruma-6.8.2-1.el7.x86_64.rpm
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-curl --with-iconv --with-mhash --with-zlib --with-openssl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-debug --enable-sockets --enable-soap --enable-inline-optimization --enable-xml --enable-ftp --enable-gd --enable-exif --enable-mbstring --enable-bcmath --with-fpm-systemd
make &>/dev/null
make install &>/dev/null
cd /usr/local/lnmp/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf
cd ~/php-7.4.12/
cp php.ini-production /usr/local/lnmp/php/etc/php.ini
vim /usr/local/lnmp/php/etc/php.ini
date.timezone = Asia/Shanghai
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
在nginx主配置文件中添加php支持
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
添加php网页
vim /usr/local/nginx/html/index.php
<?php
phpinfo()
?>
启动
systemctl daemon-reload
systemctl start php-fpm
添加环境变量:
vim ~/.bash_profile
source ~/.bash_profile
访问测试:
php + memcache
安装依赖项,解压memcache
yum install -y autoconf &> /dev/null
phpize
./configure &> /dev/null
make &> /dev/null && make install &> /dev/null
vim /usr/local/lnmp/php/etc/php.ini
systemctl reload php-fpm
php -m |grep memcache
将测试页面以及memcache复制至nginx html目录
cp memcache.php /usr/local/nginx/html/
cp example.php /usr/local/nginx/html/
vim /usr/local/nginx/html/memcache.php
安装启用memcached
yum install memcached -y
systemctl start memcached
访问:
多次访问后,绿色占比变大,表示命中缓存多次。
openresty
nginx -s stop
tar zxf openresty-1.19.3.1.tar.gz
cd openresty-1.19.3.1
./configure --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
make && make install
cd /usr/local/openresty/nginx/conf
会话保持
vim /usr/local/tomcat/conf/context.xml
/usr/local/tomcat/bin/shutdown.sh
模块,删掉tc6
rm -fr ../lib/memcached-session-manager-tc6-1.6.3.jar
安装启用memcached
yum install -y memcached
systemctl start memcached
yum install -y telnet
telnet server3 11211
键入stats看到memcache的工作状态
此时,若server2上的tomcat无法提供服务,则会话将被server3接管,仍然使用server3上工作的memcache,之前的记录仍在
而当server3的memcache关闭时,tomcat会从缓存中读取数据,重新server2上的memcache建立新的会话,此时数据都在,但session的ID发生变更。
cat /usr/local/tomcat/logs/catalina.out
数据库
yum install ncurses-devel bison gcc-c++ cmake -y
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci -DWITH_BOOST=/root/mysql-5.7.31/boost/boost_1_59_0
useradd -M -d /data/mysql -s /sbin/nologin mysql
mkdir -p /data/mysql
chown mysql.mysql -R /data/mysql/
mysqld --initialize --user=mysql
cd /usr/local/mysql/support-files/
cp mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
mysql_secure_installation
输入密码后:enter*2 剩下的全选yes
mysqli.default_socket = /data/mysql/mysql.sock
pdo_mysql.default_socket=/data/mysql/mysql.sock
systemctl reload php-fpm
###
mysql -pwestos
show variables like 'server_id';
创建用户,授权远程访问,查看master状态,mysql-bin中记录了数据库的操作等,position为当前的语句结束位置
CREATE USER 'repl'@'%' IDENTIFIED BY 'westos';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
show master status;
server2
server1,备份同步前的数据
mysqldump -p westos > dump.sql
scp dump.sql server2:/root/
因为导出的备份中没有建立数据库的语句,所以手动在server2中建立westos数据库,导入。
CREATE westos;
mysql -p westos < /root/dump.sql
切换工作模式,开启slave,查看slave工作状态:
CHANGE MASTER TO MASTER_HOST='172.25.52.1', MASTER_USER='repl', MASTER_PASSWORD='westos', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=595;
start slave;
show slave status\G;
在从端可以查看更新
gtid
套娃模式
[root@server3 lib]# mkdir /data/mysql -p
[root@server3 lib]# useradd -M -d /data/mysql/ -s /sbin/nologin mysql
[root@server3 lib]# chown mysql.mysql /data/mysql
[root@server3 lib]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@server3 lib]# vim ~/.bash_profile
[root@server3 lib]# source ~/.bash_profile
[root@server3 lib]# mysqld --initialize --user=mysql
/etc/init.d/mysqld start
mysql_secure_installation
enter*2 (y+enter)*4
mysqladmin -pwestos create westos
在server1上备份,在server3导入
mysqldump -pwestos westos > dump.sql
mysql -pwestos westos < /root/dump.sql
查看是否成功导入
在server2上设置用户授权,停止slave,更改为gtid模式
grant replication slave on *.* to repl@'%' identified by 'westos';
stop slave
CHANGE MASTER TO MASTER_HOST='172.25.52.1',MASTER_USER='repl', MASTER_PASSWORD='westos',MASTER_AUTO_POSITION= 1;
start slave;
show slave status\G;
在3上 指定2为master,开启slave
CHANGE MASTER TO MASTER_HOST='172.25.52.2',MASTER_USER='repl', MASTER_PASSWORD='westos',MASTER_AUTO_POSITION= 1;
start slave;
show slave status\G;
测试:在server1上新建数据。在2 3上查看
select * from mysql.gtid_executed;