=======================================================================
张贺,多年互联网行业工作经验,担任过网络工程师、系统集成工程师、LINUX系统运维工程师
笔者微信:zhanghe15069028807,现居济南历下区
=======================================================================
在192.168.80.11安装php和mariadb,启动之
//安装php和mariadb
[root@php-fpm ~]# yum -y install php-fpm php-mysql php-mbstring php-mcrypt mariadb-server
//修改php的配置文件
[root@php-fpm ~]# vim /etc/php-fpm.d/www.conf
listen = 0.0.0.0:9000
;listen.allowed_clients = 127.0.0.1 #注释掉
php_value[session.save_path] = /var/lib/php/session #会话保存路径
//创建会话路径,启动之
[root@php-fpm ~]# mkdir -p /var/lib/php/session
[root@php-fpm ~]# chown apache:apache /var/lib/php/session
[root@php-fpm ~]# systemctl start php-fpm.service ; ss -tnlp | grep 9000
LISTEN 0 128 *:9000 *:*
//初始化mariadb设置密码启动之
[root@php-fpm ~]# vim /etc/my.cnf
[mysqld]
skip_name_resolve=ON
innodb_file_per_table=ON
[root@php-fpm ~]# systemctl restart mariadb
[root@php-fpm ~]# mysql_secure_installation
Disallow root login remotely? [Y/n] n #这里不要添加成Y了
[root@php-fpm ~]# mysql -uroot -pcba-123
php-fpm上没有主目录,我们要将phpmyadmin程序放置在哪里呢?先随便找一个地方当主目录/data/apps
[root@php-fpm ~]# mkdir /data/apps -p
//先来一个测试页
[root@php-fpm ~]# vim /data/apps/index.php
<?php
phpinfo();
?>
//在主目录下放置好phpmyadmin,并做好软链接pma
[root@php-fpm apps]# ln -sv phpMyAdmin-4.0.5-all-languages pma
[root@php-fpm apps]# cd pma/
[root@php-fpm pma]# cp config.sample.inc.php config.inc.php
[root@php-fpm pma]# vim config.inc.php
server {
listen 80;
server_name www.zhanghehe.com.cn;
index index.html index.php;
location / {
root /data/nginx/html;
}
location ~* \.php$ {
fastcgi_pass 192.168.80.11:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /data/apps$fastcgi_script_name;
}
}
我们可以找一个客户端访问一下www.zhanghehe.com.cn/bma/index.php
,结果是这样的,如下所示:
登录界面倒是加载出来了,但是图片却没有加载出来,这是为什么呢?仔细看我们在nginx代理上的配置,动态请求都让192.168.80.11去处理了,动态请求都是php结尾的,但是图片文件可并不是php结尾的哟,所以对于图片文件的请求根本都没有发送到192.168.80.11这台主机,而是去nginx代理这台主机的主目录/data/nginx/html
去找了,但是这台主机的这个目录里面并没有phpmyadmin的图片文件,怎么办?很简单,从192.168.80.11这台主机上复制一台过来便是了,如下所示:
//注意,这里面的路径最好和php-fpm保持一致。
[root@n-proxy html]# ls
index.html phpMyAdmin-4.0.5-all-languages
[root@n-proxy html]# pwd
/data/nginx/html
[root@n-proxy html]# ln -sv phpMyAdmin-4.0.5-all-languages/ pma
‘pma’ -> ‘phpMyAdmin-4.0.5-all-languages/’
我们再次访问图片就会正常加载出来了,输入root,密码就是数据库的密码,就可以登录上数据库了。
server {
listen 80;
server_name www.zhanghehe.com.cn;
index index.html index.php;
location / {
proxy_pass http://192.168.80.12;
}
location ~* \.php$ {
fastcgi_pass 192.168.80.11:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /data/apps$fastcgi_script_name;
}
}
~
//注意,这里面的路径最好和php-fpm保持一致。
[root@n-jingtai html]# ls
index.html phpMyAdmin-4.0.5-all-languages
[root@n-jingtai html]# pwd
/data/nginx/html
[root@n-jingtai html]# ln -sv phpMyAdmin-4.0.5-all-languages/ pma
‘pma’ -> ‘phpMyAdmin-4.0.5-all-languages/’
//测试一下、
[root@client ~]# ab -c 100 -n 4000 http://192.168.90.10/index.php
Requests per second: 500 [#/sec] (mean)
//http段
fastcgi_cache_path /data/nginx/fcgicache levels=2:2:2 keys_zone=fcache:10m max_size=2g;
vim /etc/nginx/conf.d/nginx_proxy.conf
server {
listen 80;
server_name www.zhanghehe.com.cn;
index index.html index.php;
location / {
root /data/nginx/html;
proxy_pass http://192.168.80.12;
}
location ~* \.php$ {
fastcgi_pass 192.168.80.11:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /data/apps$fastcgi_script_name;
fastcgi_cache fcache;
fastcgi_cache_key $request_uri;
fastcgi_cache_valid 200 302 10m;
fastcgi_cache_valid 301 1h;
fastcgi_cache_valid any 1m;
}
}
//测试一下,加了缓存之后效果显著
[root@client ~]# ab -c 100 -n 4000 http://192.168.90.10/index.php
Requests per second: 1690 [#/sec] (mean)
[root@n-proxy fcgicache]# cat /etc/nginx/conf.d/nginx_proxy.conf
server {
listen 80;
server_name www.zhanghehe.com.cn;
index index.html index.php;
location / {
root /data/nginx/html;
proxy_pass http://192.168.80.12;
}
location ~* \.php$ {
fastcgi_pass 192.168.80.11:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /data/apps$fastcgi_script_name;
fastcgi_keep_conn on; #持久连接
fastcgi_cache fcache;
fastcgi_cache_key $request_uri;
fastcgi_cache_valid 200 302 10m;
fastcgi_cache_valid 301 1h;
fastcgi_cache_valid any 1m;
}
location ~* ^/(status|ping)$ { #状态页也要定向到后端的php-fpm
include fastcgi_params;
fastcgi_pass 192.168.80.11:9000;
fastcgi_param ACRIPT_FILENAME $fastcgi_script_name;
}
}
//再测试,效果明显
[root@client ~]# ab -c 100 -n 4000 http://192.168.90.10/index.php
Requests per second: 2000 [#/sec] (mean)
原文:https://www.cnblogs.com/yizhangheka/p/12380312.html