LAMMP架构的企业级应用教程

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
|
[root@jie1 ~] # ls anaconda-ks.cfg apr-util-1.5.2. tar .bz2 install .log apr-1.4.6. tar .bz2 httpd-2.4.6. tar .bz2 install .log.syslog ##1、解压下载的软件包###### [root@jie1 ~] # tar xf apr-1.4.6.tar.bz2 [root@jie1 ~] # tar xf apr-util-1.5.2.tar.bz2 [root@jie1 ~] # tar xf httpd-2.4.6.tar.bz2 ###2、安装开发库,和依赖性包###### [root@jie1 ~] # yum -y groupinstall "Development tools" "Server Platform Development" [root@jie1 ~] # yum -y install pcre-devel #安装依赖性包 [root@jie1 ~] # rpm -qa | grep httpd #检查系统是否安装httpd的rpm包 httpd-tools-2.2.15-26.el6.centos.x86_64 ####3、编译安装apr软件####### [root@jie1 ~] # cd apr-1.4.6 [root@jie1 apr-1.4.6] # ./configure --prefix=/usr/local/apr && make && make install ###4、编译安装apr-util软件包###### [root@jie1 ~] # cd apr-util-1.5.2 [root@jie1 apr-util-1.5.2] # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install ####5、编译安装httpd的软件包##### [root@jie1 ~] # cd httpd-2.4.6 [root@jie1 httpd-2.4.6] # ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event && make && make install [root@jie1 ~] # cp httpd-2.4.6/build/rpm/httpd.init /etc/rc.d/init.d/httpd #复制源码包里面提供的httpd的SystemV脚本 [root@jie1 ~] # vim /etc/rc.d/init.d/httpd ###6、需要改动httpd的SystemV脚本的一些内容##### ##############vim /etc/rc.d/init.d/httpd ######################## prog=httpd httpd=${HTTPD- /usr/local/apache/bin/httpd } pidfile=${PIDFILE- /usr/local/apache/logs/ ${prog}.pid} lockfile=${LOCKFILE- /var/lock/subsys/ ${prog}} RETVAL=0 # check for 1.3 configuration check13 () {
CONFFILE= /usr/local/apache/conf/httpd .conf ################################################################### [root@jie1 ~] # vim /usr/local/apache/conf/httpd.conf ServerName 172.16.22.1:80 #在配置文件中找到ServerName改成服务器的IP:端口 #这样启动的时候就不会报错 [root@jie1 ~] # service httpd start #启动服务 Starting httpd: [ OK ] ###7、使系统能识别源码包安装的软件############ [root@jie1 apache] # echo "PATH=/usr/local/apache/bin/:$PATH" >/etc/profile.d/httpd.sh [root@jie1 apache] # source /etc/profile.d/httpd.sh [root@jie1 apache] # ln -sv /usr/local/apache/include/ /usr/include/httpd [root@jie1 apache] # chkconfig --add httpd #把服务加到开机自动启动的列表 [root@jie1 apache] # chkconfig --level 35 httpd on |
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@jie2 ~] # ls anaconda-ks.cfg xcache-3.0.3. tar .bz2 install .log memcache-2.2.7.tgz php-5.4.19. tar .bz2 install .log.syslog ###1、解压下载的源码包 [root@jie2 ~] #tar xf php-5.4.19.tar.bz2 [root@jie2 ~] #tar xf memcache-2.2.7.tgz [root@jie2 ~] #tar xf xcache-3.0.3.tar.bz2 ###2、安装开发包和安装依赖性包,由于我的编译参数只指定了这些,所以只需这些依赖性包,如果指定的参数不一样,则需要的依赖性包也不尽相同 [root@jie2 ~] #yum -y groupinstall "Server Platform Development" "Development tools" [root@jie2 ~] #yum -y install libxml2-devel bzip2-devel libmcrypt-devel #libmcrypt-devel在光盘里面是没有提供相应的包,mirrors.sohu.com镜像站点的#epel源里面有此包,各位可以搭建一个epel的yum源,直接安装此包,我就是直接 #搭建的sohu的光盘yum源和epel yum源 [root@jie2 ~] # cd php-5.4.19 ###编译参数--enable-fpm,支持FastCGI PHP模块,此参数决定是否能把PHP安装成#FastCGI服务器 [root@jie2 php-5.4.19] #./configure --prefix=/usr/local/php --enable-fpm --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-mcrypt --with-bz2 --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd && make && make install ###3、建立php的配置文件,此配置文件在php的解压包中 [root@jie2 php-5.4.19] # cp php.ini-production /etc/php.ini [root@jie2 php] #cd /usr/local/php/ ###4、使系统能够识别源码包安装的软件 [root@jie2 php] # echo "PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH" >/etc/profile.d/php-fpm.sh [root@jie2 php] # source /etc/profile.d/php-fpm.sh [root@jie2 php] #cd /usr/local/php/etc ###5、建立php-fpm服务的配置文件,此配置文件的路径 /usr/local/php/etc [root@jie2 etc] # mv php-fpm.conf.default php-fpm.conf ##修改php-fpm服务配置文件的监听的IP地址改为本地IP地址
### vim /usr/local/php/etc/php-fpm.conf####
Listen 172.16.22.2:9000
############################################ [root@jie2 fpm] # pwd /root/php-5 .4.19 /sapi/fpm ###6、建立php-fpm的systemV脚本,此脚本的路径是在php解压包的php-5.4.19/sapi/fpm路径下 [root@jie2 fpm] # cp init.d.php-fpm /etc/rc.d/init.d/php-fpm ###7、把服务脚本加执行权限,开启服务,把服务加到开机自启动列表中 [root@jie2 fpm] # chmod +x /etc/rc.d/init.d/php-fpm [root@jie2 fpm] # service php-fpm start [root@jie2 fpm] # chkconfig --add php-fpm [root@jie2 fpm] # chkconfig --level 35 php-fpm on ###8、安装FastCGI与memcached服务连接的接口的一个软件 [root@jie2 ~] # cd /root/memcache-2.2.7 [root@jie2 memcache-2.2.7] # /usr/local/php/bin/phpize [root@jie2 memcache-2.2.7] # ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache && make && make install ####==============================================================###### Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ #编译安装完成后最后为提示这样一句 ###=================================================================#### ###9、在php的配置文件里面装载memcache.so的模块路径 ###vim /etc/php.ini########## extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/memcache .so ########################################## [root@jie2 ~] # cd xcache-3.0.3 ###10、安装FastCGI加速opcode代码的软件 [root@jie2 xcache-3.0.3] # /usr/local/php/bin/phpize [root@jie2 xcache-3.0.3] # ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config && make && make install ####==============================================================###### Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ #编译安装完成后最后为会提示这样一句 ###=================================================================#### ###11、建立xcache的配置文件,在xcache的解压的源码包里面 [root@jie2 xcache-3.0.3] # mkdir /etc/php.d [root@jie2 xcache-3.0.3] # cp xcache.ini /etc/php.d/ ##建立这个xcache的配置文件,则可以把xcache.so的模块装载进去,不建立xcache的配置文件,则也可以把xcache.so的模块装载到php.ini的配置文件中,装载方法和装载memcache.so模块的方法一样 [root@jie2 xcache-3.0.3] # service php-fpm restart #重启php-fpm服务 Gracefully shutting down php-fpm . done Starting php-fpm done |
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
[root@jie3 ~] #yum -y groupinstall "Server Platform Development" "Development tools" #安装开发包 [root@jie3 ~] # ls anaconda-ks.cfg install .log.syslog memcached-1.4.15. tar .gz install .log libevent-2.0.21-stable. tar .gz ###1、解压下载的软件 [root@jie3 ~] # tar xf libevent-2.0.21-stable.tar.gz [root@jie3 ~] # tar xf memcached-1.4.15.tar.gz ###2、编译安装libevent软件 [root@jie3 ~] # cd libevent-2.0.21-stable [root@jie3 libevent-2.0.21-stable] # ./configure --prefix=/usr/local/libevent && make && make install [root@jie3 ~] # cd /usr/local/libevent/ ###3、使系统识别libevent的库文件和头文件 [root@jie3 libevent] # echo "/usr/local/libevent/lib" >/etc/ld.so.conf.d/libevent.conf [root@jie3 libevent] # ldconfig -v | grep libevent /usr/local/libevent/lib :
libevent_core-2.0.so.5 -> libevent_core.so
libevent_openssl-2.0.so.5 -> libevent_openssl.so
libevent_pthreads-2.0.so.5 -> libevent_pthreads.so
libevent-2.0.so.5 -> libevent.so
libevent_extra-2.0.so.5 -> libevent_extra.so
libevent-1.4.so.2 -> libevent-1.4.so.2.1.3
libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3
libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3 [root@jie3 libevent] # ln -sv /usr/local/libevent/ /usr/include/libevent ` /usr/include/libevent ' -> `/usr/local/libevent/' ###4、编译安装memcached软件包 [root@jie3 ~] #cd memcached-1.4.15 [root@jie3 ~] #./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/ && make && make install ###5、建立memcached的systemV脚本,copy下面的脚本为服务脚本 #############vim /etc/init.d/memcached####################### #!/bin/bash # # Init file for memcached # # chkconfig: - 86 14 # description: Distributed memory caching daemon # # processname: memcached # config: /etc/sysconfig/memcached . /etc/rc .d /init .d /functions ## Default variables PORT= "11211" USER= "nobody" MAXCONN= "1024" CACHESIZE= "64" IP= "172.16.22.3" RETVAL=0 prog= "/usr/local/memcached/bin/memcached" desc= "Distributed memory caching" lockfile= "/var/lock/subsys/memcached" start() {
echo -n $ "Starting $desc (memcached): "
daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE -l $IP
RETVAL=$?
[ $RETVAL - eq 0 ] && success && touch $lockfile || failure
echo
return $RETVAL } stop() {
echo -n $ "Shutting down $desc (memcached): "
killproc $prog
RETVAL=$?
[ $RETVAL - eq 0 ] && success && rm -f $lockfile || failure
echo
return $RETVAL } restart() {
stop
start } reload() {
echo -n $ "Reloading $desc ($prog): "
killproc $prog -HUP
RETVAL=$?
[ $RETVAL - eq 0 ] && success || failure
echo
return $RETVAL } case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -e $lockfile ] && restart
RETVAL=$?
;;
reload)
reload
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $ "Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1 esac exit $RETVAL #################################################################### ###6、把服务脚本给予执行权限,然后把服务加到开机启动列表中 [root@jie3 memcached] # chmod +x /etc/init.d/memcached [root@jie3 memcached] # chkconfig --add memcached [root@jie3 memcached] # chkconfig --level 35 memcached on [root@jie3 /] # service memcached start Starting Distributed memory caching (memcached): [ OK ] [root@jie3 /] # netstat -pant | grep memcached tcp 0 0 172.16.22.3:11211 0.0.0.0:* LISTEN 9802 /memcached |
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
[root@jie4 ~] # ls anaconda-ks.cfg install .log.syslog install .log mysql-5.5.33-linux2.6-x86_64. tar .gz ###1、解压下载的mysql的通用二进制软件包 [root@jie4 ~] #tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local/ [root@jie4 ~] # cd /usr/local/ [root@jie4 local ] # mv mysql-5.5.33-linux2.6-x86_64/ mysql ###2、创建存放数据库的文件,生产环境数据库存放在独立的建LVM的硬盘上面 [root@jie4 local ] # mkdir -pv /mysql/data mkdir : created directory ` /mysql ' mkdir : created directory ` /mysql/data ' ###3、创建用户,和设置文件的属主和权限 [root@jie4 local ] # useradd -r mysql [root@jie4 local ] # chown -R mysql:mysql /mysql/data [root@jie4 local ] # chmod -R 755 /mysql/data/ [root@jie4 local ] # cd /usr/local/mysql/ [root@jie4 mysql] # cd support-files/ ###4、建立mysql的配置文件 [root@jie4 support-files] # cp my-large.cnf /etc/my.cnf cp : overwrite ` /etc/my .cnf'? y ###5、建立mysql的systemV服务脚本 [root@jie4 support-files] # cp mysql.server /etc/rc.d/init.d/mysqld [root@jie4 ~] # vim /etc/my.cnf ###6、修改mysql的配置文件,修改或添加这两行 #############vim /etc/my.cnf############### thread_concurrency = 4 datadir = /mysql/data ########################################### ###7、初始化mysql的脚本 [root@jie4 support-files] # cd /usr/local/mysql/scripts/ [root@jie4 scripts] # ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data ###8、开启mysql服务和把mysql的服务加入到开机自启的列表中 [root@jie4 scripts] # service mysqld start Starting MySQL........... [ OK ] [root@jie4 local ] # chkconfig --add mysqld [root@jie4 local ] # chkconfig --level 35 mysqld on [root@jie4 scripts] # cd /usr/local/mysql/ ###9、使系统能识别源码包安装的软件############ ####1)修改环境变量PATH的路径 ####2)链接头文件的路径 ####3)连接库文件 ####4)提供man帮助文档 [root@jie4 mysql] # echo "PATH=/usr/local/mysql/bin:$PATH" >/etc/profile.d/mysqld.sh [root@jie4 mysql] # source /etc/profile.d/mysqld.sh [root@jie4 mysql] # ln -sv /usr/local/mysql/include/ /usr/include/mysqld ` /usr/include/mysqld ' -> `/usr/local/mysql/include/' [root@jie4 mysql] # echo "/usr/local/mysql/lib/" >/etc/ld.so.conf.d/mysqld.conf [root@jie4 mysql] # ldconfig -v | grep mysql ####10、创建登录数据库的用户的密码 [root@jie4 local ] # mysqladmin -u root password redhat [root@jie4 local ] # mysql -u root -p mysql> select user,password,host from mysql.user; #查询mysql数据库中user表的用户,密码和host +------+-------------------------------------------+-----------+ | user | password | host | +------+-------------------------------------------+-----------+ | root | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 | localhost | | root | | jie4.com | | root | | 127.0.0.1 | | root | | ::1 | | | | localhost | | | | jie4.com | +------+-------------------------------------------+-----------+ 6 rows in set (0.00 sec) #删除数据库的安全隐患的用户 mysql> drop user root@ '::1' ; Query OK, 0 rows affected (0.00 sec) mysql> drop user root@ 'jie4.com' ; Query OK, 0 rows affected (0.00 sec) mysql> drop user '' @ 'jie4.com' ; Query OK, 0 rows affected (0.00 sec) mysql> drop user '' @ 'localhost' ; Query OK, 0 rows affected (0.00 sec) #创建指定网段能访问数据库的用户名和密码 mysql> create user root@ '172.16.%.%' identified by 'mypass' ; Query OK, 0 rows affected (0.00 sec) mysql> select user,password,host from mysql.user; +------+-------------------------------------------+------------+ | user | password | host | +------+-------------------------------------------+------------+ | root | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 | localhost | | root | | 127.0.0.1 | | root | *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 | 172.16.%.% | +------+-------------------------------------------+------------+ 3 rows in set (0.01 sec) mysql> flush privileges; #重读授权表,及时生效 Query OK, 0 rows affected (0.00 sec) mysql> \q |
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
|
[root@jie1 ~] # vim /usr/local/apache/conf/httpd.conf ###########vim /usr/local/apache/conf/httpd.conf ########### #DocumentRoot "/usr/local/apache/htdocs" #注释这行 LoadModule proxy_module modules /mod_proxy .so #开启代理的模块 LoadModule proxy_fcgi_module modules /mod_proxy_fcgi .so #开启连接fastcgi的模块 Include conf /extra/httpd-vhosts .conf #开启让主配置文件载入虚拟主机的配置文件 ############################################################ [root@jie1 ~] # vim /usr/local/apache/conf/extra/httpd-vhosts.conf #####vim /usr/local/apache/conf/extra/httpd-vhosts.conf############ #开启一个虚拟主机即可 <VirtualHost *:80>
DocumentRoot "/web/htdocs/" #Apache服务器存放网页的目录
ServerName www.jie.com
<Directory "/web/htdocs" >
AllowOverride None
Options None
Require all granted
< /Directory >
ProxyRequests Off #关闭代理请求
ProxyPassMatch ^/(.*\.php)$ fcgi: //172 .16.22.2:9000 /website/ $1
#把接收客户端来着php的请求,转到FastCGI服务器上面去执行,website是指 #FastCGI服务存放php网页的目录 < /VirtualHost > ##################################################################### [root@jie1 ~] # mkdir -pv /web/htdocs mkdir : created directory ` /web ' mkdir : created directory ` /web/htdocs ' [root@jie1 ~] # vim /web/htdocs/test.php ####vim /web/htdocs/test.php#### #测试php网页的页面 <?php
phpinfo(); ?> ##################################### [root@jie1 htdocs] # service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [root@jie1 htdocs] # |
1
2
3
4
5
|
[root@jie2 ~] # mkdir /website #建立存放网页的目录 [root@jie2 website] # scp 172.16.22.1:/web/htdocs/test.php ./ #把Apache服务器上面的网页文件copy到FastCGI服务器上面,且存放在website目录下 [root@jie2 website] # service php-fpm restart #重启FastCGI服务器 Gracefully shutting down php-fpm . done Starting php-fpm done |
本文由 CentOS中文站 - 专注Linux技术 作者:centos 发表,其版权均为 CentOS中文站 - 专注Linux技术 所有,文章内容系作者个人观点,不代表 CentOS中文站 - 专注Linux技术 对观点赞同或支持。如需转载,请注明文章来源。