LAMP环境搭建实现网站动静分离[转]

news/2024/5/20 2:48:09/文章来源:https://blog.csdn.net/weixin_34043301/article/details/86235069

目录:

1、环境概述

2、动静分离拓扑图

3、各服务器功能规划

4、各服务器基础环境配置

5、httpd安装配置

6、php安装配置及启用opcache加速功能

7、mysql安装配置

8、wordpress论坛程序安装测试

9、CA证书服务器及ssl配置

10、phpmyadmin安装测试

11、php的opcache加速功能测试

12、总结

1、环境概述:

    前几篇博客已把httpd、mysql及php以模块的方式与http进行了整合,这些服务都在一台Linux主机上部署,这种简单的架构在网站初期还能胜任,但随着网站访问量的增大,业务逻辑越来越复杂,这种架构已不能满足现实的需求,现急需优化架构。我们需要一个可扩展的网站架构,所以这次来一个大手术,httpd、mysql、以及以FastCGI方式工作的php服务各自部署在单独的服务器,三个服务各施其职,独占自己的硬件资源,这种架构随着业务量增加后扩展方便,而这种架构还实现了网站的动静分离。

    所有软件包这里获取:LAMP环境所涉及软件包获取地址

2、动静分离拓扑图:

wKioL1TKPmLxS4joAADqCqeXQOk388.jpg

3、各服务器功能规划:

 

主机名    IP地址        安装服务              说明

  

  http

 

192.168.0.200

httpd、NFS服务端通过nfs把php服务器的网站程序挂载到本地,避免上传网站程序时在http和php服务器都要上传
  php

192.168.0.201

php、NFS客户端、phpmyadmin、论坛程序php以php-fpm方式工作,通过nfs服务把网站程序共享
  mysql192.168.0.202mysql、配置成CA服务器数据目录存放在LVM卷上,兼任CA证书服务,为实现安全的访问phpmyadmin

4、各服务器基础环境配置:

4.1、http服务器基础配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@http ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
[root@http ~]# hostname 
http
[root@http ~]# ifconfig | grep Bcast:
          inet addr:192.168.0.200  Bcast:192.168.0.255  Mask:255.255.255.0
[root@http ~]# echo "192.168.0.200   www" >> /etc/hosts
[root@http ~]# echo "192.168.0.201   php" >> /etc/hosts
[root@http ~]# echo "192.168.0.202   mysql" >> /etc/hosts
[root@http ~]# chkconfig iptables off
[root@http ~]# service iptables stop
[root@http ~]# vim /etc/sysconfig/selinux 
SELINUX=disabled
[root@http ~]# shutdown -r now

4.2、php服务器基础配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@php ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
[root@php ~]# hostname 
php
[root@php ~]# ifconfig | grep Bcast:
          inet addr:192.168.0.201  Bcast:192.168.0.255  Mask:255.255.255.0
[root@php ~]# echo "192.168.0.201   php" >> /etc/hosts
[root@php ~]# echo "192.168.0.200   http" >> /etc/hosts
[root@php ~]# echo "192.168.0.202   mysql" >> /etc/hosts
[root@php ~]# chkconfig iptables off
[root@php ~]# service iptables stop
[root@php ~]# vim /etc/sysconfig/selinux 
SELINUX=disabled
[root@php ~]# shutdown -r now

4.3、mysql服务器基础配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@mysql ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
[root@php ~]# hostname 
mysql
[root@mysql ~]# ifconfig | grep Bcast:
          inet addr:192.168.0.202  Bcast:192.168.0.255  Mask:255.255.255.0
[root@mysql ~]# echo "192.168.0.202   mysql" >> /etc/hosts
[root@mysql ~]# echo "192.168.0.200   http" >> /etc/hosts
[root@mysql ~]# echo "192.168.0.201   php" >> /etc/hosts
[root@mysql ~]# chkconfig iptables off
[root@mysql ~]# service iptables stop
[root@mysql ~]# vim /etc/sysconfig/selinux 
SELINUX=disabled
[root@mysql ~]# shutdown -r now

4.4、配置各服务器间免密码登陆:

4.4.1、配置http无密码访问php和mysql主机:

1
2
3
4
5
6
7
8
9
10
11
12
[root@http ~]# ssh-keygen -t rsa   #连续回车
[root@http ~]# ls /root/.ssh/
id_rsa  id_rsa.pub
[root@http ~]# ssh-copy-id root@php  #在有提示处输入“yes”,l并输入php主机的密码
[root@http ~]# ls /root/.ssh/  #生成了know_hosts文件
id_rsa  id_rsa.pub  known_hosts
[root@http ~]# ssh-copy-id root@mysql
测试http无密码访问php及mysql主机:
[root@http ~]# ssh root@php
Last login: Sat Jan 31 16:41:46 2015 from http
[root@http ~]# ssh root@mysql
Last login: Sat Jan 31 16:38:12 2015 from http

说明:在“[root@http ~]# ssh-copy-id root@php”时,若不是指定php主机的主机名,而是指定ip地址,就像这样“[root@http ~]# ssh-copy-id root@192.168.0.201”那http登陆php时只能用指定ip的地址进行无密码登陆,如果是这样“[root@http ~]# ssh root@php”是不能无密码登陆的,通过观察“/root/.ssh/know_hosts”文件就可知道其中的道理。

4.4.2、配置php无密码访问http和mysql主机:

1
2
3
[root@php ~]# ssh-keygen -t rsa
[root@php ~]# ssh-copy-id root@http
[root@php ~]# ssh-copy-id root@mysql

4.4.3、配置mysql无密码访问http和php主机:

1
2
3
[root@mysql ~]# ssh-keygen -t rsa
[root@mysql ~]# ssh-copy-id root@http
[root@mysql ~]# ssh-copy-id root@php

4.5、基于NFS准备网站目录结构:

1
2
3
4
5
6
7
[root@php ~]# yum -y install nfs-utils
[root@php ~]# vim /etc/exports
/web/vhosts   192.168.0.200(rw,sync,no_root_squash)
[root@php ~]# mkdir -pv /web/vhosts/{bbs.linux.com,phpmyadmin.com}
[root@php ~]# service rpcbind start
[root@php ~]# service nfs start
[root@php ~]# chkconfig nfs on
1
2
3
4
5
6
[root@http httpd-2.4.12]# mkdir -pv /web/vhosts
[root@http httpd-2.4.12]# vim /etc/fstab
192.168.0.201:/web/vhosts       /web/vhosts     nfs     defaults        0 0  #新增加此行
[root@http httpd-2.4.12]# mount -a
[root@http httpd-2.4.12]# ls /web/vhosts/
bbs.linux.com  phpmyadmin.com

5、httpd安装配置:

5.1、软件包版本信息:

1
2
3
4
[root@http software]# pwd
/root/software
[root@http software]# ls
apr-1.5.1.tar.gz  apr-util-1.5.2.tar.bz2  httpd-2.4.12.tar.bz2

5.2、处理httpd的依赖关系:

1
2
3
4
5
6
[root@http software]# yum -y install pcre-devel
[root@http software]# tar xf apr-1.5.1.tar.gz
[root@http software]# cd apr-1.5.1
[root@http apr-1.5.1]# ./configure --prefix=/usr/local/apr-1.5
[root@http apr-1.5.1]# make && make install

说明:在编译apr-1.5.1前请看这里“安装apr报错rm: cannot remove `libtoolT': No such file or directory”

1
2
3
4
[root@http software]# tar xf apr-util-1.5.2.tar.bz2 
[root@http software]# cd apr-util-1.5.2
[root@http apr-util-1.5.2]# ./configure --prefix=/usr/local/apr-util-1.5 --with-apr=/usr/local/apr-1.5
[root@http apr-util-1.5.2]# make && make install

5.3、httpd编译安装配置及配置:

5.3.1、编译、配置、安装http:

1
2
3
4
[root@http software]# tar xf httpd-2.4.12.tar.bz2 
[root@http software]# cd httpd-2.4.12
[root@http httpd-2.4.12]# ./configure --prefix=/usr/local/apache24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-zlib --with-pcre --with-mpm=event --with-apr=/usr/local/apr-1.5 --with-apr-util=/usr/local/apr-util-1.5
[root@http httpd-2.4.12]#  make && make install

5.3.2、源码编译安装后的收尾工作:

导出二进制文件:

1
2
3
[root@http httpd-2.4.12]# vim /etc/profile.d/http24.sh
export PATH=/usr/local/apache24/bin:$PATH
[root@http httpd-2.4.12]# source /etc/profile.d/http24.sh

导出头文件:

1
[root@http httpd-2.4.12]# ln -sv /usr/local/apache24/include /usr/include/http24

导出man文档:

1
2
3
4
5
6
7
[root@http httpd-2.4.12]# vim /etc/man.config
MANPATH /usr/man
MANPATH /usr/share/man
MANPATH /usr/local/man
MANPATH /usr/local/share/man
MANPATH /usr/X11R6/man
MANPATH /usr/local/apache24/man    #新增

配置http开机自动启动(可参照前边的博客为http提供sysv风格的脚本):

1
[root@http httpd-2.4.12]# echo "/usr/local/apache24/bin/apachectl -k start" >> /etc/rc.loacl

5.3.3、配置http、增加对php支持、启用虚拟主机:

1
2
3
4
5
6
7
8
9
10
11
12
[root@http httpd-2.4.12]# cp /etc/httpd24/httpd.conf /etc/httpd24/httpd.conf.back
[root@http httpd-2.4.12]# vim /etc/httpd24/httpd.conf
ServerName 192.168.0.200:80  #启用ServerName
#DocumentRoot "/usr/local/apache24/htdocs"  #注释中心主机
<IfModule dir_module>
    DirectoryIndex index.php index.html  #增加php的主页文件
</IfModule>
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php       #增加对php的支持
    AddType application/x-httpd-php-source .phps   #增加对php的支持
Include /etc/httpd24/extra/httpd-vhosts.conf    #启用虚拟主机配置文件

配置虚拟主机:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@http httpd-2.4.12]# vim /etc/httpd24/extra/httpd-vhosts.conf
#注释掉最后的VirtualHost容器,并新增以下两个虚拟主机
<VirtualHost *:80>
    DocumentRoot "/web/vhosts/bbs.linux.com"
    ServerName bbs.linux.com
    ErrorLog "logs/bbs.linux.com-error_log"
    CustomLog "logs/bbs.linux.com-access_log" common
    <Directory "/web/vhosts/bbs.linux.com">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/web/vhosts/phpmyadmin.com"
    ServerName phpmyadmin.com
    ErrorLog "logs/phpmyadmin.com-error_log"
    CustomLog "logs/phpmyadmin.com-access_log" common
    <Directory "/web/vhosts/phpmyadmin.com">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>

测试两个虚拟主机:

1
2
3
4
5
[root@http httpd-2.4.12]# vim /web/vhosts/bbs.linux.com/index.html
This is bbs.linux.com
[root@http httpd-2.4.12]# vim /web/vhosts/phpmyadmin.com/index.html
This is phpmyadmin.com
[root@http httpd-2.4.12]# /usr/local/apache24/bin/apachectl -k start

最后配置windows主机的hosts文件,增加http服务器的两个域名解析,用浏览器进行测试两个域名是否能正常工作。

6、php安装配置及启用opcache加速功能:

6.1、软件版本信息:

1
2
3
4
[root@php software]# pwd
/root/software
[root@php software]# ls
php-5.6.5.tar.xz

6.2、处理php的依赖关系:

1
2
[root@php software]# yum -y install libxml2-devel bzip2-devel libmcrypt-devel mhash-devel
#若默认的yum源中没有这些依赖包请增加epel源后再安装

6.3、php编译安装及相应配置:

6.3.1、编译安装php:

1
2
3
4
[root@php software]# tar xf php-5.6.5.tar.xz 
[root@php software]# cd php-5.6.5
[root@php php-5.6.5]# ./configure --prefix=/usr/local/php5.6 --enable-mbstring --enable-xml  --enable-fpm --enable-sockets --with-mysql=mysqlnd  --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
[root@php php-5.6.5]# make && make install

6.3.2、提供php.ini、php-fpm.conf、启动脚本文件及一些收尾工作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@php php-5.6.5]# cp php.ini-production /etc/php.ini
[root@php php-5.6.5]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@php php-5.6.5]# vim /usr/local/php5.6/etc/php-fpm.conf #合理调整下边的参数
listen = 192.168.0.201:9000
pm.max_children = 5    #允许的并发连接数,线上服务器肯定大于5
pm.start_servers = 2   #php-fpm启动时启动的进程个数
pm.min_spare_servers = 1  #最小空闲进程数
pm.max_spare_servers = 3  #最大空闲进程数
[root@php php-5.6.5]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@php php-5.6.5]# chmod +x /etc/rc.d/init.d/php-fpm
[root@php php-5.6.5]# chkconfig --add php-fpm
[root@php php-5.6.5]# chkconfig php-fpm on
#启动php-fpm及测试:
[root@php php-5.6.5]# service php-fpm start
[root@php php-5.6.5]# netstat -tnulp | grep 9000
#导出二进制文件:
[root@php php-5.6.5]# echo 'export PATH=/usr/local/php5.6/bin:$PATH' > /etc/profile.d/php.sh
[root@php php-5.6.5]# source /etc/profile.d/php.sh
[root@php php-5.6.5]# php -v
PHP 5.6.5 (cli) (built: Feb  1 2015 09:41:40) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
#导出头文件:
[root@php php-5.6.5]# ln -sv /usr/local/php5.6/include /usr/include/php5.6
#导出库文件:
[root@php php-5.6.5]# echo "/usr/local/php5.6/lib" > /etc/ld.so.conf.d/php56.conf
[root@php php-5.6.5]# ldconfig

6.3.3、启用opcache,加速php代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@php ~]# vim /etc/php.ini  #启用[opcache]里的参数
[opcache]
zend_extension = /usr/local/php5.6/lib/php/extensions/no-debug-non-zts-20131226/opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=64
opcache.interned_strings_buffer=4
opcache.max_accelerated_files=2000
opcache.revalidate_freq=2
opcache.fast_shutdown=1
[root@php ~]# service php-fpm restart
[root@php ~]# php -m   #查看opcache模块是否加载

 

6.4、配置http虚拟主机成为fastcgi的客户端,实现用户请求php文件时能转交给php服务器:

6.4.1、启用两个模块,使用http成为fastcgi客户:

1
2
3
4
5
6
7
8
9
10
11
[root@http ~]# vim /etc/httpd24/httpd.conf
……
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
……
[root@http ~]# /usr/local/apache24/bin/apachectl -k stop
[root@http ~]# /usr/local/apache24/bin/apachectl -k start
[root@http ~]# /usr/local/apache24/bin/apachectl -t -D DUMP_MODULES | grep proxy
 proxy_module (shared)
 proxy_fcgi_module (shared)

6.4.2、修改虚拟主机配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@http ~]# vim /etc/httpd24/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/web/vhosts/bbs.linux.com"
    ServerName bbs.linux.com
    ErrorLog "logs/bbs.linux.com-error_log"
    CustomLog "logs/bbs.linux.com-access_log" common
    ProxyRequests Off    #新增
    ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.0.201:9000/web/vhosts/bbs.linux.com/$1 #新增
    <Directory "/web/vhosts/bbs.linux.com">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/web/vhosts/phpmyadmin.com"
    ServerName phpmyadmin.com
    ErrorLog "logs/phpmyadmin.com-error_log"
    CustomLog "logs/phpmyadmin.com-access_log" common
    ProxyRequests Off  #新增
    ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.0.201:9000/web/vhosts/phpmyadmin.com/$1 #新增
    <Directory "/web/vhosts/phpmyadmin.com">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
[root@http ~]# /usr/local/apache24/bin/apachectl -t
Syntax OK
[root@http ~]# /usr/local/apache24/bin/apachectl -k stop
[root@http ~]# /usr/local/apache24/bin/apachectl -k start

6.4.3、测试http与fastcgi整合是否工作正常:

1
2
3
4
5
6
[root@http ~]# vim /web/vhosts/bbs.linux.com/index.php
<?php
     phpinfo();
?>
[root@http ~]# cp /web/vhosts/bbs.linux.com/index.php /web/vhosts/phpmyadmin.com/

 

wKioL1TNljDhuscMAAFV1mtoTqQ517.jpg

wKiom1TNlUuBvRsLAAGA8-B7rFI924.jpg

7、mysql安装配置:

7.1、基于LVM(逻辑卷管理器)准备分区,mysql的数据目录放在此设备上:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@mysql ~]# fdisk -l | grep Disk
Disk /dev/sdb: 1073 MB, 1073741824 bytes
Disk identifier: 0x00000000
Disk /dev/sda: 53.7 GB, 53687091200 bytes
Disk identifier: 0x000bf287
Disk /dev/sdc: 1073 MB, 1073741824 bytes
Disk identifier: 0x00000000
#用fdisk分区工具把sdb与sdc两个块设备进行分区,并把分区类型修改成“8e  Linux LVM ”类型
[root@mysql ~]# fdisk -l | grep "Device Boot" -A 1
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         130     1044193+  8e  Linux LVM
--
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      102400   83  Linux
--
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         130     1044193+  8e  Linux LVM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@mysql ~]# yum -y install lvm2  #安装lvm管理器
[root@mysql ~]# pvcreate /dev/sdb1 /dev/sdc1 #把两设备转化成pv设备
[root@mysql ~]# vgcreate MysqlData /dev/sdb1 /dev/sdc1 #创建vg
[root@mysql ~]# vgs
  VG        #PV #LV #SN Attr   VSize VFree
  MysqlData   2   0   0 wz--n- 1.98g 1.98g
[root@mysql ~]# lvcreate -L 500M -n DB_Data MysqlData
  Logical volume "DB_Data" created
[root@mysql ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/MysqlData/DB_Data
  LV Name                DB_Data
  VG Name                MysqlData
  LV UUID                SrY3K8-TtB6-KARr-gkNc-IZjb-B21M-UZsmQB
  LV Write Access        read/write
  LV Creation host, time mysql, 2015-02-01 11:36:35 +0800
  LV Status              available
  # open                 0
  LV Size                500.00 MiB
  Current LE             125
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
[root@mysql ~]# mkfs.ext4 /dev/MysqlData/DB_Data   #格式化
[root@mysql ~]# mkdir /mydata  #创建挂载目录
[root@mysql ~]# vim /etc/fstab
/dev/MysqlData/DB_Data  /mydata                 ext4    defaults        0 0   #新增
[root@mysql ~]# mount -a
[root@mysql ~]# ls /mydata/
lost+found

7.2、mysql二进制包安装及相应库的准备工作:

7.2.1、mysql安装配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
[root@mysql software]# pwd
/root/software
[root@mysql software]# ls
mysql-advanced-5.6.22-linux-glibc2.5-x86_64.tar.gz
[root@mysql software]# yum -y install libaio-devel   #处理依赖关系
[root@mysql software]# useradd -r -s /sbin/nologin mysql -M  #创建mysql运行时的用户
[root@mysql software]# mkdir /mydata/data
[root@mysql software]# chown -R mysql.mysql /mydata/data  #修改数据目录的属性
[root@mysql software]# ls -ld /mydata/data
drwxr-xr-x 2 mysql mysql 1024 Feb  1 12:46 /mydata/data
[root@mysql software]# mv /etc/my.cnf /etc/my.cnf.back  #备份原有的配置文件
[root@mysql software]# tar xf mysql-advanced-5.6.22-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@mysql software]# ln -sv /usr/local/mysql-advanced-5.6.22-linux-glibc2.5-x86_64 /usr/local/mysql
[root@mysql software]# chown -R root.mysql /usr/local/mysql/*
[root@mysql software]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
[root@mysql software]# vim /etc/my.cnf  #保留下边的参数mysql就可启动,详细参数请查看其他文档
basedir = /usr/local/mysql
datadir = /mydata/data
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
user = mysql
innodb_file_per_table = 1
innodb_thread_concurrency = 0  #不限制并发数
[root@mysql software]# cd /usr/local/mysql
[root@mysql mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@mysql mysql]# chkconfig --add mysqld
[root@mysql mysql]# chkconfig mysqld on
[root@mysql mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
[root@mysql mysql]# service mysqld start
Starting MySQL.. SUCCESS! 
#导出二进制文件:
[root@mysql mysql]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@mysql mysql]# source /etc/profile.d/mysql.sh
#导出头文件:
[root@mysql mysql]# ln -sv /usr/local/mysql/include /usr/include/mysql
#导出库文件:
[root@mysql mysql]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
[root@mysql mysql]# ldconfig -v | grep mysql
#测试:
[root@mysql mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.22-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
[root@mysql mysql]# mysqladmin -u root password   #为root用户设置密码
New password: 
Confirm new password:

7.2.2、创建论坛程序wordpress所使用数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@mysql mysql]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.22-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database wpdb;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
test               |
| wpdb               |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all on wpdb.* to 'wpadmin'@'192.168.%.%' identified by '111111';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
mysql> \q
Bye

8、wordpress论坛程序安装测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@php software]# pwd
/root/software
[root@php software]# ls
php-5.6.5  php-5.6.5.tar.xz  wordpress-4.1-zh_CN.tar.gz
[root@php software]# tar xf wordpress-4.1-zh_CN.tar.gz 
[root@php software]# mv wordpress/* /web/vhosts/bbs.linux.com/
[root@php software]# cd /web/vhosts/bbs.linux.com/
[root@php bbs.linux.com]# cp wp-config-sample.php wp-config.php
[root@php bbs.linux.com]# vim wp-config.php
/** WordPress数据库的名称 */
define('DB_NAME''wpdb');
/** MySQL数据库用户名 */
define('DB_USER''wpadmin');
/** MySQL数据库密码 */
define('DB_PASSWORD''111111');
/** MySQL主机 */
define('DB_HOST''192.168.0.202');

在windows主机上用IE浏览器直接访问“http://bbs.linux.com”就可打开wordpress的安装界面,

wKioL1TNxfCDzWSaAAE3_xkOvoE231.jpg

wKiom1TNxYiyMzfeAAB6EQy1Ao8939.jpg

wKioL1TNyOPw9yiUAAGKA4aqK5s778.jpg

经测试,workpress运行正常。

9、CA证书服务器及ssl配置

9.1、在mysql服务器中生成密钥文件:

1
2
3
4
5
6
7
8
[root@mysql ~]# cd /etc/pki/CA
[root@mysql CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
..+++
....................+++
e is 65537 (0x10001)
[root@mysql CA]# ls private/
cakey.pem

9.2、生成自签证书:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@mysql CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:ChongQing
Locality Name (eg, city) [Default City]:YuBei
Organization Name (eg, company) [Default Company Ltd]:Learing
Organizational Unit Name (eg, section) []:Tech
Common Name (eg, your name or your server's hostname) []:ca.mysql.com
Email Address []:admin@mysql.com
[root@mysql CA]# ls
cacert.pem  certs  crl  newcerts  private
[root@mysql CA]# touch index.txt
[root@mysql CA]# echo 01 > serial

CA建立完成,接下来要为phpmyadmin.com这个虚拟主机提交证书申请,并为其配置成https。

9.3、回到http服务器为phpmyadmin.com虚拟主机生成私钥,生成证书签署请求,并把证书请求发给CA,:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@http httpd24]# pwd
/etc/httpd24
[root@http httpd24]# mkdir ssl
[root@http httpd24]# cd ssl
[root@http ssl]# (umask 077;openssl genrsa -out httpd.key 1024) #生成私钥
Generating RSA private key, 1024 bit long modulus
.................++++++
..................++++++
e is 65537 (0x10001)
[root@http ssl]# openssl req -new -key httpd.key -out httpd.csr  #生成证书签署请求
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:ChongQing
Locality Name (eg, city) [Default City]:YuBei
Organization Name (eg, company) [Default Company Ltd]:Learing
Organizational Unit Name (eg, section) []:Tech
Common Name (eg, your name or your server's hostname) []:phpmyadmin.com
Email Address []:admin@phpmyadmin.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@http ssl]# scp httpd.csr mysql:/tmp #把证书签署请求发送到CA
httpd.csr                                                    100%  708     0.7KB/s   00:00

9.4、回到CA服务器签署http发送过来的证书签署请求,处理后得到一证书文件,把它回传给http服务器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[root@mysql ~]# openssl ca -in /tmp/httpd.csr -out httpd.crt -days 365 #处理http的证书签署请求
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Feb  1 07:05:52 2015 GMT
            Not After : Feb  1 07:05:52 2016 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = ChongQing
            organizationName          = Learing
            organizationalUnitName    = Tech
            commonName                = phpmyadmin.com
            emailAddress              = admin@phpmyadmin.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                B3:3B:7C:FC:A2:4B:35:C1:20:23:3E:FD:47:DA:13:61:38:45:8C:E6
            X509v3 Authority Key Identifier: 
                keyid:45:B3:8D:A7:16:89:C6:50:D4:87:02:82:7B:80:4B:C8:25:23:2C:50
Certificate is to be certified until Feb  1 07:05:52 2016 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@mysql ~]# ls
anaconda-ks.cfg  httpd.crt  install.log  install.log.syslog  software
[root@mysql ~]# scp httpd.crt http:/etc/httpd24/ssl  #把证书回传给http服务器
httpd.crt                                                    100% 3861     3.8KB/s   00:00

9.5、回到http服务器,配置虚拟主机对ssl的支持:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@http httpd24]# pwd
/etc/httpd24
[root@http httpd24]# vim httpd.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so #此模块在httpd-ssl.conf所需要
LoadModule ssl_module modules/mod_ssl.so   #启用ssl模块
Include /etc/httpd24/extra/httpd-ssl.conf  #启用ssl配置文件包含
[root@http httpd24]# vim extra/httpd-ssl.conf 
<VirtualHost _default_:443>
#   General setup for the virtual host
DocumentRoot "/web/vhosts/phpmyadmin.com"
ServerName phpmyadmin.com:443
ServerAdmin admin@phpmyadmin.com
ErrorLog "/web/vhosts/phpmyadmin.com/logs/error_log"
TransferLog "/web/vhosts/phpmyadmin.com/logs/access_log"
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.0.201:9000/web/vhosts/phpmyadmin.com/$1
    <Directory "/web/vhosts/phpmyadmin.com">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
SSLCertificateFile "/etc/httpd24/ssl/httpd.crt"
SSLCertificateKeyFile "/etc/httpd24/ssl/httpd.key"
[root@http httpd24]# mkdir /web/vhosts/phpmyadmin.com/logs  #创建日志目录
[root@http httpd24]# /usr/local/apache24/bin/apachectl -t
Syntax OK
[root@http httpd24]# /usr/local/apache24/bin/apachectl -k graceful

9.6、下载CA服务器需要对外公开的证书文件(cacert.pem),导入系统后进行测试。在windows系统下需要把cacert.pem证书文件重新命令为以“crt”为后缀的文件,即改名后为“cacert.crt”,导入证书后就可以访问“https://phpmyadmin.com”进行测试。

wKiom1TN2D_RPJ2eAAGt6ijoSfg369.jpg

wKioL1TN2XKw81fkAAHAX3nJc-E973.jpg

wKioL1TN2a6TpAECAAFeJm0mJ8g465.jpg

 

wKioL1TN21qzhGXhAAEAepKNiSo116.jpg

上图是之前建的测试文件,现在用https来访问也是正常的。

10、phpmyadmin安装测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@php software]# pwd
/root/software
[root@php software]# ls | grep phpMyAdmin
phpMyAdmin-4.3.8-all-languages.zip
[root@php software]# unzip phpMyAdmin-4.3.8-all-languages.zip
[root@php software]# rm -rf /web/vhosts/phpmyadmin.com/index*    #删除之前建立的测试文件
[root@php software]# mv phpMyAdmin-4.3.8-all-languages/* /web/vhosts/phpmyadmin.com/
[root@php phpmyadmin.com]# cd /web/vhosts/phpmyadmin.com/
[root@php phpmyadmin.com]# cp config.sample.inc.php config.inc.php 
[root@php phpmyadmin.com]# openssl rand -hex 8 #生成随机数
949b17bdabd31977
[root@php phpmyadmin.com]# vim config.inc.php
$cfg['blowfish_secret'] = '949b17bdabd31977';   /*把上边的随机数填入*/
$cfg['Servers'][$i]['host'] = '192.168.0.202';  /*填入mysql的IP地址*/

现在只能用wpammin用户测试,因为root用户默认拒绝远程登陆:

wKiom1TN7g_B1nTYAACLOabPw1Y909.jpg

wKioL1TN74bBPSUMAAHyK3AcSto157.jpg

回到mysql服务去设置让root用户也可以远程登陆:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
[root@mysql ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 63
Server version: 5.6.22-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host,user,password from user; #只有wpadmin可以在192.168.0.0网络中远程登陆
+-------------+---------+-------------------------------------------+
| host        | user    | password                                  |
+-------------+---------+-------------------------------------------+
| localhost   | root    | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| mysql       | root    |                                           |
| 127.0.0.1   | root    |                                           |
| ::1         | root    |                                           |
| localhost   |         |                                           |
| mysql       |         |                                           |
| 192.168.%.% | wpadmin | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
+-------------+---------+-------------------------------------------+
7 rows in set (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'192.168.0.201' identified by '111111' with grant option;
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select host,user,password from user;
+---------------+---------+-------------------------------------------+
| host          | user    | password                                  |
+---------------+---------+-------------------------------------------+
| localhost     | root    | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| mysql         | root    |                                           |
| 127.0.0.1     | root    |                                           |
| ::1           | root    |                                           |
| localhost     |         |                                           |
| mysql         |         |                                           |
| 192.168.%.%   | wpadmin | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| 192.168.0.201 | root    | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
+---------------+---------+-------------------------------------------+
8 rows in set (0.00 sec)

用root用户来登陆phpmyadmin测试:

wKiom1TN8R6wAwxoAAHWnmBMxwU885.jpg

11、php的opcache加速功能测试:

先关闭php的opcache功能:

1
2
3
4
5
6
[root@php ~]# vim /etc/php.ini
;zend_extension = /usr/local/php5.6/lib/php/extensions/no-debug-non-zts-20131226/opcache.so  
;注释掉上边一行
[root@php ~]# service php-fpm restart
[root@php ~]# php -m

在mysql服务器上用ab命令进行测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@mysql ~]# yum -y install httpd-tools  #安装ab测试工具,是在httpd-tools这个包里的
[root@mysql ~]# vim /etc/hosts   #增加bbs.linux.com的本地解析
192.168.0.202   mysql
192.168.0.200   http bbs.linux.com
192.168.0.201   php
[root@mysql ~]# ab -c 100 -n 1000 http://bbs.linux.com/index.php
……省略
Non-2xx responses:      1000
Total transferred:      301205 bytes
HTML transferred:       299 bytes
Requests per second:    8.40 [#/sec] (mean)   #每秒请求个数
Time per request:       11902.085 [ms] (mean)
Time per request:       119.021 [ms] (mean, across all concurrent requests)
Transfer rate:          2.47 [Kbytes/sec] received 
……省略
启用opcache功能后再做测试:
[root@php ~]# vim /etc/php.ini
zend_extension = /usr/local/php5.6/lib/php/extensions/no-debug-non-zts-20131226/opcache.so
[root@php ~]# service php-fpm restart
[root@php ~]# php -m
[root@mysql ~]# ab -c 100 -n 1000 http://bbs.linux.com/index.php
……省略
Write errors:           0
Non-2xx responses:      1000
Total transferred:      301000 bytes
HTML transferred:       0 bytes
Requests per second:    31.26 [#/sec] (mean) #每秒请求个数
Time per request:       3199.462 [ms] (mean)
Time per request:       31.995 [ms] (mean, across all concurrent requests)
Transfer rate:          9.19 [Kbytes/sec] received 
……省略
通过两次对比,可以看出启用opcache功能后网站的访问速度有明显提升。

12、总结:

    这次环境搭建比较顺利,当出现错误时都能通过程序所给出的错误提示和日志文件快速的定位到故障处在,但还是有一些地址值得注意或优化:

1、在类linux环境下对编译安装的软件包约定俗成是安装在“/usr/local/”下,这里的usr是“uinx software resource”这个目录在系统安装好后本身就会有许多文件存在,如果把我们自定义编译安装的软件都放在这个目录中,对软件的管理上还是有一些不便,这个目录有点像windows下的“Program Files”这个目录。所以建议在安装系统之初,在进行分区时可单独划出一个分区专门成为编译软件的安装目录;

2、httpd的虚拟主机的日志文件应该集中在一个地方进行集中存储管理,这次环境搭建是分散的放在各个虚拟主机主目录下,这样也不便于日志的管理;

3、因http主机上的“/web/vhosts”目录是从php主机通过nfs发布后挂载过来的,所以简化了两次上传网站程序的动作,但也在管理上带了一定的影响,当要重新启动http、php主机时要注意开关机的顺序,开机时先开php主机,再开http主机,关机时先关http主机,后关php主机。

4、这样一个LAMP环境中涉及到了“http.conf、http-ssl.conf、http-vhost.conf、my.cnf、php.ini、my-fpm.conf”等配置文件,这些配置中各个参数的具体意义得好好总结;

5、最后就是mysql这个软件,已被oracle收购,在下载mysql5.6版本包时粗略看了一下许可协议,好像不像原生的mysql了,如果是公司线上产品,用其他数据库来替代吧,mariadb是一个不错的选择(没看过它的许可)。

本文出自 “专注Linx,与Linux共舞” 博客,请务必保留此出处http://zhaochj.blog.51cto.com/368705/1609777

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_732545.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Slog34_支配vue框架初阶项目之博客网站-注册页面-前后端的数据交互

ArthurSlogSLog-34Year1GuangzhouChinaAug 10th 2018GitHub掘金主页简书主页segmentfault沉睡的狮子 即将醒来 而世界将为之震撼 开发环境MacOS(High Sierra 10.13.5) 需要的信息和信息源&#xff1a; HTTP概述HTTP互联网是如何工作的万维网是如何工作的统一资源定位符(URL)什么…

浅谈web网站架构演变过程

原文:浅谈web网站架构演变过程前言 我们以javaweb为例&#xff0c;来搭建一个简单的电商系统&#xff0c;看看这个系统可以如何一步步演变。 该系统具备的功能&#xff1a;用户模块&#xff1a;用户注册和管理商品模块&#xff1a;商品展示和管理交易模块&#xff1a;创建交易和…

网站备案知多少

网站备案知多少 DBAplus社群 2016-09-13 21:00:13 首先谈谈为什么要备案据工信部规定&#xff0c;使用大陆境内服务器的组织或个人&#xff0c;若要使用独立域名开办网站 &#xff0c;就需要履行备案手续。就像开公司要去工商局申请执照一样&#xff0c;在国内&#xff0c;没有…

GoTxt网页内容提取器,可提取小说网,360doc网站的文字

为什么80%的码农都做不了架构师&#xff1f;>>> 以前写的一个网站文本提取器&#xff0c;很粗的&#xff0c;最近没时间改&#xff0c;把源码和jar文件分享出来 程序运行截图&#xff1a; 代码地址&#xff1a;https://github.com/doobo/GoTxt 转载于:https://my.o…

大型分布式网站架构技术总结:高性能+高可用+可扩展+可伸缩架构

本文是大型分布式网站架构的技术总结&#xff0c;文末有分布式架构设计33精讲资料~ 一、大型网站架构特点 用户多&#xff0c;分布广泛 大流量&#xff0c;高并发 海量数据&#xff0c;服务高可用 安全环境恶劣&#xff0c;易受网络攻击 功能多&#xff0c;变更快&#xff0c;频…

邪恶花网站邪恶花_相关的子查询是“邪恶的”和“缓慢的”。 还是他们?

邪恶花网站邪恶花SQL中一个常见的神话是&#xff0c;相关子查询是邪恶且缓慢的。 例如&#xff0c;此查询在这里&#xff1a; SELECT first_name, last_name,(SELECT count(*) FROM film_actor fa WHERE fa.actor_id a.actor_id) FROM actor a它“强制”数据库引擎运行以下形…

如何把自己的wordpress网站移到本地修改

有时候wordpress更换模板时&#xff0c;需要修改的地方很多&#xff0c;而且在线修改不是很好。只能把它移动到电脑本地进行修改了。这样修改好就可以直接套用到网站上了。 1、通过服务器控制面板或FTP整站打包&#xff0c;发送到你已经在电脑本地搭建ApachePHPMySQL环境的网站…

网站pv uv 停留时间 等统计

为什么80%的码农都做不了架构师&#xff1f;>>> 日志中心收集网站访问数据内容 基于nginx记录用户cookie的行为&#xff0c;进行分析 一、用户cookie。 需要创建3个cookie文件_gtra、_gtrb、_gtrc&#xff0c;其中_gtra用来追踪用户&#xff0c;_gtrb和_gtrc联合来…

手机网站的注意事项

2019独角兽企业重金招聘Python工程师标准>>> 一.web app 手机网站的注意事项: 1.安卓浏览器看背景图片,有些设备会模糊--> devicePixeRatio手机分辨率过小造成,解决方法使用2倍背景图代替img标签. 2.图片加载很慢--> 手机开发一般用canvas方法加载 3.手机端不…

《流量的秘密 Google Analytics网站分析与商业实战》一1.3 Google Analytics的地位

本节书摘来自异步社区《流量的秘密 Google Analytics网站分析与商业实战》一书中的第1章&#xff0c;第1.3节&#xff0c;作者 【英】Brian Clifton&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 1.3 Google Analytics的地位 你的网站对你来说是极其重要的…

一个止传SWF的好网站

SwfCabin 是一個免費swf空間&#xff0c;最初建立的構想在於「如何在網路上將swf檔分享給別人」。使用者可以將swf檔上傳到 SwfCabin 然後獲得一個連結&#xff0c;其他人便可以在該頁面看到您所上傳的swf檔案。上傳檔案時 SwfCabin 會自動辨識該檔案最適當的顯示尺寸。除此之外…

大型网站架构之分布式缓存

缓存是优化网站性能的第一手段。在大型网站中&#xff0c;缓存通常用来保存热点数据&#xff0c;或者保存应用上下文相关信息。比如之前提到的session服务器集群就可以用分布式缓存来搭建。当然&#xff0c;分布式缓存还可用于缓存数据库中的热点数据以减轻数据库的压力。 分布…

决议要素_2020年每个网站测试人员的新年决议

决议要素您能够根据2019年的决议进行工作吗&#xff1f; 我在这里听起来可能很可笑&#xff0c;但是作为Web开发人员&#xff0c;我在2019年的决心是在业余时间跳入Web测试。 为什么&#xff1f; 因此&#xff0c;我可以从测试人员的角度了解发布周期。 我想穿他们的鞋子&#…

Thinking——nodejs实现的SEO相关的库

SEO SEO是为了网站在搜索引擎中的自然排名更靠前&#xff0c;引入更多的用户流量。SEO有很多技巧&#xff0c;譬如官网多发优质文章&#xff0c;文章的url做成静态化&#xff0c;文章多出现一些搜索相关的关键字&#xff0c;自建站群等等。 百度收录 百度定期会对优质文章进行收…

下拉框系统甄选火星推荐_seo关键词下拉框优化技术

“seo关键词下拉框优化技术,百度下拉框的算法,一个关键词每天有多少搜索量,和它相关的词有多少搜索量,这些数据百度都记录在案的,在百度搜索一个较短关键词的时候,下拉框中可能会出现一些和它相关的一些长尾词.”百度下拉框关键词指的是就是在百度搜索某一个关键词的时候&#…

大型网站架构演化历程

http://www.hollischuang.com/archives/728 本文内容大部分来自《大型网站技术架构》,这本书很值得一看&#xff0c;强烈推荐。 大型网站系统的特点 高并发&#xff0c;大流量 需要面对高并发用户&#xff0c;大流量访问。Google 日均 PV 35 亿&#xff0c;日 IP 访问数 3 亿&a…

SEO优化手工外链为什么更好?

开发十年&#xff0c;就只剩下这套Java开发体系了 >>> 手工发布的外链&#xff0c;是这个完结百度的网站权重与关键词排行优化的&#xff1a;咱 们通过手工在论坛/博客上回复主题帖子&#xff0c;并带有锚文体链接&#xff0c;这样的单向链接直接指 向你的网站&…

SEO核心技术纯白帽快速排名方法

我相信很多朋友都知道SEO快速排名&#xff0c;现在流行的快速排名都是众人皆知的黑帽SEO技术&#xff0c;但是却唯独不知道纯白帽也可以快速排名。但是我估计大家都看到过很多新站在短短数月内就上了首页&#xff0c;权重从0升到3&#xff0c;这难道是黑帽吗&#xff0c;不是的…

实验----实现基于LNMP的电子商务网站

实现基于LNMP的电子商务网站一、准备LNMP环境所需的包&#xff1a;yum install mariadb-server php-fpm php-mysql nginx二、准备网站&#xff1a;mkdir -p /data/web 建站点unzip -d /data/web xiaomi.zip 导入小米网站的源码包并解压到/data/webcd /data/web &…

pageSpeed Insights 图片对网站优化方案

2019独角兽企业重金招聘Python工程师标准>>> 一 规则 如下归纳几点 可供参考。<br> 避免使用着陆页面重定向 启用压缩功能 缩短服务器相应应用时间 使用浏览器缓存机智 缩短资源大小 优化图片 优化css发送过程 优化加载可见内容 移除会阻止呈现内容的javaScri…