搭建lamp平台

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 搭建lamp平台

apache安装步骤

  • 检查是否已经rpm安装httpd服务,已安装则卸载服务。
[root@localhost ~]# rpm -e `rpm -qa | grep httpd` --nodeps
  • 开发工具安装

如果编译安装无法执行,可能是开发工具没有安装,执行下面命令即可安装。(如已安装则跳过即可)。

[root@localhost ~]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
  • httpd安装

1. 挂载rpm包的iso镜像。

查看虚拟机使用ISO镜像,设备状态勾选已连接和启动时连接后确定即可。

2. 通过脚本解压tar包并编译安装。

1. [root@localhost ~]# mkdir /sh
2. 
3.  [root@localhost ~]#  cd /sh
4. 
5.  [root@localhost sh]# vim add.sh
6. 
7. #!/bin/bash
8. 
9. mount /dev/cdrom /media/
10. 
11. tar zxf /media/apr-1.5.2.tar.gz -C /usr/src
12. 
13. cd /usr/src/apr-1.5.2
14. 
15. ./configure --prefix=/usr/local/apr && make && make install
16. 
17. tar zxf /media/apr-util-1.5.4.tar.gz -C /usr/src
18. 
19. cd /usr/src/apr-util-1.5.4
20. 
21. ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
22. 
23. yum -y install zlib-*
24. 
25. tar zxf /media/pcre-8.39.tar.gz -C /usr/src
26. 
27. cd /usr/src/pcre-8.39
28. 
29. ./configure --prefix=/usr/local/pcre && make && make install
30. 
31. tar zxf /media/openssl-1.0.1u.tar.gz -C /usr/src
32. 
33. cd /usr/src/openssl-1.0.1u
34. 
35. ./config -fPIC --prefix=/usr/local/openssl enable-shared && make && make install

保存退出脚本并执行脚本文件,等待脚本执行完成并确认成功。

[root@localhost sh]# sh add.sh

2. 安装Apache主程序。

下面也通过脚本来安装主程序。

1. [root@localhost sh]# vim httpd.sh
2. 
3. #!/bin/bash
4. 
5. tar zxf /media/httpd-2.4.25.tar.gz -C /usr/src
6. 
7. cd /usr/src/httpd-2.4.25
8. 
9. ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate && make && make install

保存退出脚本并执行脚本文件,等待脚本执行完成并确认成功。

  1. 优化链接和添加系统服务。
1. [root@localhost sh]# ln -s /usr/local/httpd/bin/* /usr/local/bin //链接优化
2. 
3. [root@localhost sh]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //添加服务
4. 
5. [root@localhost sh]# vim /etc/init.d/httpd
6. 
7. 第二行添加下面两行命令
8. 
9. # chkconfig: 35 85 15     \\声明服务启动级别,开机启动顺序,关机关闭顺序
10. 
11. # description: apache 2.4.25 \\服务声明,简要信息
1. [root@localhost sh]# chkconfig --add httpd //添加到系统服务
2. 
3. [root@localhost sh]# chkconfig httpd on //设置开机自启
4. 
5. [root@localhost sh]# systemctl start httpd //开启服务
  1. 查看httpd模块

安装后可以通过下面三行命令查看各项模块。

httpd -V         \\查看版本和已装模块

httpd -l         \\只查看静态编译模块

httpd -M          \\查看所有模块  

  1. 查看mpm配置文件

vim /usr/local/httpd/conf/extra/httpd-mpm.conf

<IfModule mpm_event_module>

StartServers 3 #apache 启动时候默认开始的子进程数

MinSpareThreads 75 #最小空闲数量的工作线程

MaxSpareThreads 250 #最大空闲数量的工作线程

ThreadsPerChild 25 #每个子进程产生的线程数量

MaxRequestWorkers 400 #允许同时的最大接入请求数量

MaxConnectionsPerChild 0 #每个子进程可处理的请求数

</IfModule>

#企业推荐参数

<IfModule mpm_worker_module>

StartServers          2 #推荐设置:小=默认 中=3~5 大=5~10

MaxClients          150 #推荐设置:小=500 中=500~1500 大型=1500~3000

MinSpareThreads      25 #推荐设置:小=默认 中=50~100 大=100~200

MaxSpareThreads      75 #推荐设置:小=默认 中=80~160 大=200~400 ThreadsPerChild      25 #推荐设置:小=默认 中=50~100 大型=100~200

MaxRequestsPerChild   0 #推荐设置:小=10000 中或大=10000~50000(此外,如果MaxClients/ThreadsPerChild大于16,还需额外设置ServerLimit参数,ServerLimit必须大于等于 MaxClients/ThreadsPerChild 的值。)

</IfModule>

  1. 查看apache主页

通过访问http://192.168.1.2可以看到apache默认网站。

  1. 使用ab命令进行压力测试

通过上面命令已经启动httpd服务,通过ab工具测试httpd服务,如未安装通过下面命令安装ab命令工具(打开第二台服务器对第一台httpd服务器进行测试)。

1. [root@localhost ~]# yum -y install httpd-tools
2. 
3. 安装完毕后执行下面命令对服务器进行200人并发访问,发出10000个请求。
4. 
5. [root@localhost ~]# ab -c 200 -n 10000 http://192.168.1.2/index.html
6. 
7. This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
8. 
9. Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
10. 
11. Licensed to The Apache Software Foundation, http://www.apache.org/
12. 
13. 
14. 
15. Benchmarking 192.168.1.2 (be patient)
16. 
17. Completed 1000 requests
18. 
19. Completed 2000 requests
20. 
21. Completed 3000 requests
22. 
23. Completed 4000 requests
24. 
25. Completed 5000 requests
26. 
27. Completed 6000 requests
28. 
29. Completed 7000 requests
30. 
31. Completed 8000 requests
32. 
33. Completed 9000 requests
34. 
35. Completed 10000 requests
36. 
37. Finished 10000 requests
38. 
39. 
40. 
41. 
42. 
43. Server Software:        Apache/2.4.25
44. 
45. Server Hostname:        192.168.1.2
46. 
47. Server Port:            80
48. 
49. 
50. 
51. Document Path:          /index.html
52. 
53. Document Length:        45 bytes
54. 
55. 
56. 
57. Concurrency Level:      200
58. 
59. Time taken for tests:   3.803 seconds
60. 
61. Complete requests:      10000
62. 
63. Failed requests:        0
64. 
65. Write errors:           0
66. 
67. Total transferred:      2890000 bytes
68. 
69. HTML transferred:       450000 bytes
70. 
71. Requests per second:    2629.29 [#/sec] (mean)
72. 
73. Time per request:       76.066 [ms] (mean)
74. 
75. Time per request:       0.380 [ms] (mean, across all concurrent requests)
76. 
77. Transfer rate:          742.06 [Kbytes/sec] received
78. 
79. 
80. 
81. Connection Times (ms)
82. 
83.               min  mean[+/-sd] median   max
84. 
85. Connect:        0   22 153.7      2    3008
86. 
87. Processing:     8   47  34.1     44     451
88. 
89. Waiting:        4   44  33.0     43     435
90. 
91. Total:         28   69 157.9     46    3057
92. 
93. 
94. 
95. Percentage of the requests served within a certain time (ms)
96. 
97.   50%     46
98. 
99.   66%     49
100. 
101.   75%     51
102. 
103.   80%     54
104. 
105.   90%     62
106. 
107.   95%     80
108. 
109.   98%    267
110. 
111.   99%   1048
112. 
113.  100%   3057 (longest request)

mysql安装步骤

关于上述已经学会了Apache编译安装,下面将进行MySQL的本地安装。

1. [root@localhost ~]# mount /dev/cdrom /media
2. 
3. [root@localhost ~]# cd /media/mysql5.6-rpm/

检查确认所需rpm包。

通过执行下面命令进行本地安装rpm包。

1. [root@localhost ~]# cd /media/mysql5.6-rpm/
2. 
3. [root@localhost mysql5.6-rpm]# rpm -ivh --nodeps --force *.rpm
4. 
5. [root@localhost mysql5.6-rpm]# systemctl start mysqld
6. 
7. [root@localhost mysql5.6-rpm]# systemctl enable mysqld

PHP安装步骤

经过上面的操作lam就已经完成了,下面将进行php的安装。

  • 安装所需工具
  1. 下载epel源并下载所需工具。
1. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2. 
3. [root@localhost ~]#  yum -y install  libxml2-devel lzip2-devel libcurl-devel libmcrypt-devel openssl-devel bzip2-devel
  1. 安装libmcrypt加密工具
1. [root@localhost ~]# tar zxf /media/libmcrypt-2.5.7.tar.gz -C /usr/src
2. 
3. [root@localhost ~]# cd /usr/src/libmcrypt-2.5.7/
4. 
5. [root@localhost libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install
  1. 安装php
1. [root@localhost ~]# tar zxf /media/php-5.6.27.tar.gz -C /usr/src
2. 
3. [root@localhost ~]# cd /usr/src/php-5.6.27/
4. 
5. [root@localhost php-5.6.27]# ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install
  1. 提供php配置文件
1. [root@localhost ~]# cp /usr/src/php-5.6.27/php.ini-production /etc/php.ini
2. 
3. cp:是否覆盖"/etc/php.ini"? yes
  1. 为 php-fpm 提供脚本
1. [root@localhost ~]# cd /usr/src/php-5.6.27/
2. 
3. [root@localhost php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
4. 
5. [root@localhost php-5.6.27]# chmod +x /etc/init.d/php-fpm
6. 
7. [root@localhost php-5.6.27]# chkconfig --add php-fpm
8. 
9. [root@localhost php-5.6.27]# chkconfig php-fpm on
  1. 提供 php-fpm 配置文件并编辑
1. [root@localhost php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
2. 
3. [root@localhost php-5.6.27]# systemctl start php-fpm
  • 测试Apache与php的静/动分离
  1. 启用Apache服务的代理转发

通过执行脚本来实现对脚本的编辑。

1. [root@localhost ~]# cd /sh
2. 
3. [root@localhost sh]# vim add.sh
4. 
5. #!/bin/bash
6. 
7. conf=/usr/local/httpd/conf/httpd.conf
8. 
9. sed -i '116s/^#//' $conf
10. 
11. sed -i '120s/^#//' $conf
12. 
13. sed -i '484s/^#//' $conf
14. 
15. sed -i '397aAddType application/x-httpd-php .php\nAddType application/x-httpd-php-source .phps' $conf
16. 
17. sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html/' $conf
18. 
19. [root@localhost sh]# sh add.sh
20. 
21. [root@localhost sh]# systemctl restart httpd
  1. 配置虚拟主机文件
1. [root@localhost ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
2. 
3. 删除httpd-vhosts.conf文件中的内容复制下面内容保存并退出即可
4. 
5. <VirtualHost *:80>
6. 
7.  ServerAdmin webmaster@benet.com
8. 
9.  DocumentRoot "/var/www/benet"
10. 
11.  ServerName www.benet.com
12. 
13.  ServerAlias benet.com
14. 
15.  ErrorLog "logs/benet.com-error_log"
16. 
17.  CustomLog "logs/benet.com-access_log" common
18. 
19.  ProxyRequests Off
20. 
21.  ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/benet/$1
22. 
23. 
24. 
25. <Directory "/var/www/benet">
26. 
27.  Options FollowSymLinks
28. 
29.  AllowOverride None
30. 
31.  Require all granted
32. 
33. </Directory>
34. 
35. </VirtualHost>
  1. 测试

(1)创建mysql用户密码

1. [root@localhost ~]# mysqladmin -uroot password
2. 
3. New password:
4. 
5. Confirm new password:
6. 
7. [root@localhost ~]# mysql -uroot -p123
8. 
9. mysql> grant all on *.* to testuser@'%' identified by '123456';
10. 
11. Query OK, 0 rows affected (0.00 sec)
12. 
13. 
14. 
15. mysql> exit
16. 
17. Bye
  1. 创建php测试网页
1. [root@localhost ~]# mkdir /var/www/benet
2. 
3. [root@localhost ~]# vim /var/www/benet/index.php
4. 
5. <?php
6. 
7. phpinfo();
8. 
9. ?>
10. 
11. [root@localhost ~]# vim /var/www/benet/test1.php
12. 
13. <?php
14. 
15. $link=mysql_connect('192.168.1.3','testuser','123456');
16. 
17. if ($link)echo "connection success......";
18. 
19. mysql_close();
20. 
21. ?>

重启服务后,使用客户机访问mysql浏览器就可以看到PHP网页了。

[root@localhost ~]# systemctl restart httpd

部署Discuz论坛

  1. 解压Discuz包
1. [root@localhost ~]# mkdir /data
2. 
3. [root@localhost ~]# cd /data
4. 
5. [root@localhost data]# cp -rp /media/Discuz_X3.3_SC_UTF8.zip /data
6. 
7. [root@localhost data]# unzip Discuz_X3.3_SC_UTF8.zip 
8. 
9. [root@localhost data]# mv upload/ /var/www/benet/bbs/
10. 
11. [root@localhost data]# chmod -R 777 /var/www/benet/bbs
  1. 修改配置文件并重启服务
1. [root@localhost ~]# sed -i '202s/Off/On/' /etc/php.ini
2. 
3. [root@localhost ~]# service php-fpm restart
  1. 创建bbs库及用户名

下述命令中,bbsdb为库名,runbbs为用户名,192.168.1.3为服务器IP,用户密码为123456。

1. [root@localhost ~]# mysql -uroot -p123
2. 
3. mysql> create database bbsdb;
4. 
5. Query OK, 1 row affected (0.00 sec)
6. 
7. 
8. 
9. mysql> grant all on bbsdb.* to runbbs@'192.168.1.3' identified by '123456';
10. 
11. Query OK, 0 rows affected (0.00 sec)
  1. 安装

安装discuz论坛,访问http://192.168.1.3/bbs

通过安装向导单击我同意,第二页检查安装环境,如无误点击下方下一步,选择全新安装单击下一步。按照下图填写用户名密码,需要注意的是,如客户端为本机需要把localhost改为服务器IP。

访问http://192.168.1.3/bbs即可登录。

访问http://192.168.1.3/bbs/admin.php可以访问论坛后台。

输入管理员密码后就可以看到后台页面了,管理员可以根据自己的需求修改添加等一系列操作。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 关系型数据库 MySQL
LAMP平台部署及应用
LAMP平台部署及应用
122 0
|
关系型数据库 MySQL PHP
部署LAMP平台(二)
部署LAMP平台(二)
部署LAMP平台(二)
|
存储 关系型数据库 MySQL
|
安全 关系型数据库 MySQL
LAMP平台服务简介、部署及应用
LAMP平台服务简介、部署及应用
422 0
LAMP平台服务简介、部署及应用
|
弹性计算 关系型数据库 MySQL
快速搭建LAMP环境
CentOS 7.7的ECS实例(云服务器)。通过本教程的操作,您可以基于ECS实例快速搭建一套LAMP环境。
359 0
快速搭建LAMP环境
|
关系型数据库 MySQL Apache
学习快速搭建LAMP环境
学习快速搭建LAMP环境
145 0
|
弹性计算 关系型数据库 MySQL
Day6-快速搭建LAMP环境
阿里云云服务器ecs第6天打卡
Day6-快速搭建LAMP环境
|
关系型数据库 MySQL Apache
搭建LAMP环境
新手一起来学啊!!!
385 0
搭建LAMP环境
|
关系型数据库 MySQL 数据库
|
弹性计算 关系型数据库 MySQL
下一篇
无影云桌面