httpd + mysql + php安装测试

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
本篇文章以两道题的形式道出:

建立httpd服务器(基于编译的方式进行),要求:
1)提供两个基于名称的虚拟主机:
(a)www1.magedu.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access;
(b)www2.magedu.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;
(c)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;
(d)通过www1.magedu.com/server-status输出httpd工作状态相关信息,且只允许提供帐号密码才能访问(status:status);
2)www1主机仅允许172.16.0.0/16网络中的客户机访问;www2主机可以被所有主机访问;

解决依赖关系:
 
 
  1. yum groupinstall -y "Development Libraries" "Development Tools" "X Software Development" 
编译安装httpd服务器:
 
  1. lftp 172.16.0.1/pub/Sources/new_lamp              只限此实验环境内,可去官网下载哦 
  2. mget apr-1.4.6.tar.bz2 apr-util-1.4.1.tar.bz2      

(1) 编译安装apr
 
 
  1. # tar xf apr-1.4.6.tar.bz2 
  2.  
  3. # cd apr-1.4.6 
  4.  
  5. # ./configure --prefix=/usr/local/apr 
  6.  
  7. # make && make install 

(2) 编译安装apr-util
 
 
  1. # tar xf apr-util-1.4.1.tar.bz2 
  2.  
  3. # cd apr-util-1.4.1 
  4.  
  5. #./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr 
  6.  
  7. # make && make install 
(3)httpd编译过程也要依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带:
 
 
  1. #yum install pcre-devel -y 
为防止以下由于openssl版本过老而导致编译报错,安装openssl-devel解决问题:
 
 
  1. #yum install openssl-devel -y 

2.编译httpd
 
 
  1. #tar xf httpd-2.4.3.tar.bz2 
  2.  
  3. #cd httpd-2.4.3 
  4.  
  5. # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --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-mpm:s-shared=all --with-mpm=event 
  6.  
  7. # make && make install 
 
3、修改httpd的主配置文件,设置其Pid文件的路径
 
 
  1. vim /etc/httpd/httpd.conf,添加如下行即可: 
  2. PidFile  "/var/run/httpd.pid" 

4、提供SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:

 
 
  1. #!/bin/bash 
  2. # httpd        Startup script for the Apache HTTP Server 
  3. # chkconfig: - 85 15 
  4. # description: Apache is a World Wide Web server.  It is used to serve \ 
  5. #          HTML files and CGI. 
  6. # processname: httpd 
  7. # config: /etc/httpd/conf/httpd.conf 
  8. # config: /etc/sysconfig/httpd 
  9. # pidfile: /var/run/httpd.pid 
  10.  
  11. # Source function library. 
  12. . /etc/rc.d/init.d/functions 
  13.  
  14. if [ -f /etc/sysconfig/httpd ]; then 
  15.         . /etc/sysconfig/httpd 
  16. fi 
  17.  
  18. # Start httpd in the C locale by default. 
  19. HTTPD_LANG=${HTTPD_LANG-"C"} 
  20.  
  21. # This will prevent initlog from swallowing up a pass-phrase prompt if 
  22. # mod_ssl needs a pass-phrase from the user. 
  23. INITLOG_ARGS="" 
  24.  
  25. # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server 
  26. # with the thread-based "worker" MPM; BE WARNED that some modules may not 
  27. # work correctly with a thread-based MPM; notably PHP will refuse to start. 
  28.  
  29. # Path to the apachectl script, server binary, and short-form for messages. 
  30. apachectl=/usr/local/apache/bin/apachectl 
  31. httpd=${HTTPD-/usr/local/apache/bin/httpd} 
  32. prog=httpd 
  33. pidfile=${PIDFILE-/var/run/httpd.pid} 
  34. lockfile=${LOCKFILE-/var/lock/subsys/httpd} 
  35. RETVAL=0 
  36.  
  37. start() { 
  38.         echo -n $"Starting $prog: " 
  39.         LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS 
  40.         RETVAL=$? 
  41.         echo 
  42.         [ $RETVAL = 0 ] && touch ${lockfile} 
  43.         return $RETVAL 
  44.  
  45. stop() { 
  46.     echo -n $"Stopping $prog: " 
  47.     killproc -p ${pidfile} -d 10 $httpd 
  48.     RETVAL=$? 
  49.     echo 
  50.     [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} 
  51. reload() { 
  52.     echo -n $"Reloading $prog: " 
  53.     if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then 
  54.         RETVAL=$? 
  55.         echo $"not reloading due to configuration syntax error" 
  56.         failure $"not reloading $httpd due to configuration syntax error" 
  57.     else 
  58.         killproc -p ${pidfile} $httpd -HUP 
  59.         RETVAL=$? 
  60.     fi 
  61.     echo 
  62.  
  63. # See how we were called. 
  64. case "$1" in 
  65.   start) 
  66.     start 
  67.     ;; 
  68.   stop) 
  69.     stop 
  70.     ;; 
  71.   status) 
  72.         status -p ${pidfile} $httpd 
  73.     RETVAL=$? 
  74.     ;; 
  75.   restart) 
  76.     stop 
  77.     start 
  78.     ;; 
  79.   condrestart) 
  80.     if [ -f ${pidfile} ] ; then 
  81.         stop 
  82.         start 
  83.     fi 
  84.     ;; 
  85.   reload) 
  86.         reload 
  87.     ;; 
  88.   graceful|help|configtest|fullstatus) 
  89.     $apachectl $@ 
  90.     RETVAL=$? 
  91.     ;; 
  92.   *) 
  93.     echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" 
  94.     exit 1 
  95. esac 
  96.  
  97. exit $RETVAL 

而后为此脚本赋予执行权限:
 
 
  1. # chmod +x /etc/rc.d/init.d/httpd 

加入服务列表:
 
 
  1. # chkconfig --add httpd 

5.配置httpd.conf文件

 
 
  1. # vim /etc/httpd/httpd.conf 
  2. 注释下列信息(默认设置为所有拒绝访问,这里需要注释掉) 
  3. #<Directory /> 
  4. #    AllowOverride none 
  5. #    Require all denied 
  6. #</Directory> 
  7. 启用: 
  8. Include /etc/httpd/extra/httpd-vhosts.conf 
  9.  
  10. 编辑: 
  11. # vim /etc/httpd/extra/httpd-vhosts.conf 
  12. 注释原来信息添加新信息 
  13. <VirtualHost *:80> 
  14.     ServerAdmin admin.magedu.com 
  15.     DocumentRoot "/web/vhosts/www1" 
  16.     ServerName www1.magedu.com 
  17.     ErrorLog "/var/log/httpd/www1.err" 
  18.     CustomLog "/var/log/httpd/www1.access" common 
  19.      <Location /server-status>             此处为server-status输出的信息   
  20.        SetHandler server-status 
  21.                  AllowOverride Authconfig 
  22.                  AuthType Basic 
  23.                  AuthName "Limit..."                          
  24.                  AuthUserFile "/web/users"       
  25.                  Require valid-user 
  26.      </Location> 
  27.     
  28.    <Directory /web/vhosts/www1> 
  29.               Order Deny,Allow 
  30.               Deny from all 
  31.               Allow from 172.16.0.0/16  
  32.    </Directory> 
  33.    
  34. </VirtualHost> 
  35.  
  36.  
  37. <VirtualHost 172.16.8.1:80> 
  38.     ServerAdmin admin.magedu.com 
  39.     DocumentRoot "/web/vhosts/www2" 
  40.     ServerName www2.magedu.com 
  41.     ErrorLog "/var/log/httpd/www2.err" 
  42.     CustomLog "/var/log/httpd/www2.access" common 
  43.      <Directory "/var/www/html/www2"> 
  44.          Allow from all 
  45.      </Directory> 
  46. </VirtualHost> 

6.新建日志文件夹及其主页面文件夹与文件
 
 
  1. # mkdir -pv /var/log/httpd 
  2.  
  3. #mkdir -pv /web/vhosts/www2 
  4.  
  5. #mkdir -pv /web/vhosts/www1 
  6.  
  7. #echo "www1.magedu.com" > /web/vhosts/www1/index.html 
  8.  
  9. #echo "www2.magedu.com" > /web/vhosts/www2/index.html 
 
7.添加访问的用户
 
 
  1. 首先定义环境变量: 
  2. #echo "export PATH=$PATH:/usr/local/apache/bin" > /etc/profile.d/httpd.sh 
  3.  
  4. #. /etc/profile 
  5.  
  6. htpasswd -c -m /web/users status 
  7. htpasswd : -c 第一次创建的时候使用,以后再用表示覆盖源文件 
  8. 账号密码为status:status 

为上题中的第1个虚拟主机提供php+mysql的功能,要求:
(1)通过在原有主页中添加phpinfo()测试页表明启用php成功;
(2)将mysql的root用户密码设置为"123456"(引号中的内容);
(3)通过http://www1.magedu.com/pma提供本机mysql服务的web管理接口phpMyAdmin;
(4)本机上的mysql服务仅允许来自本地的请求通过;

1,首先为MySQL创建数据目录:
 
 
  1. # mkdir -p /mydata/data 
  2.   
  3. # groupadd -r mysql 
  4.   
  5. # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql 
  6.   
  7. # chown -R mysql:mysql /mydata/data 
 
2,编译安装MySQL,查看更改配置文件
 
 
  1. # tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local/ 
  2.   
  3. # cd /usr/local/ 
  4.   
  5. # ln -sv mysql-5.5.28-linux2.6-i686/ /usr/local/mysql 
  6.   
  7. # cd mysql 
  8.   
  9. # chown -R mysql:mysql  . 
  10.   
  11. # scripts/mysql_install_db --user=mysql --datadir=/mydata/data 
  12.   
  13. # chown -R root  . 
  14.   
  15. # cd /usr/local/mysql 
  16.  
  17. # cp support-files/my-large.cnf  /etc/my.cnf 
  18.  
  19. 查看更改配置文件: 
  20.   
  21. # vim /etc/my.cnf 
  22. 更改 
  23. thread_concurrency = 2  //第39行 
  24.  
  25. datadir = /mydata/data  //新加一行 
 
 
为mysql提供sysv服务脚本:
 
 
  1. # cd /usr/local/mysql 
  2.   
  3. # cp support-files/mysql.server  /etc/rc.d/init.d/mysqld 
  4.   
  5. # chmod +x /etc/rc.d/init.d/mysqld 
添加到服务列表中: 
 
 
  1. # chkconfig --add mysqld 
  2. # chkconfig mysqld on 
而后就可以启动服务测试使用了。
 
 
  1. # service mysqld start 
 输出mysql的man手册至man命令的查找路径:
 
 
 
  1. # vim /etc/man.config  
  2. MANPATH  /usr/local/mysql/man   //新加一行 
输出mysql的头文件至系统头文件路径:
 
 
 
  1. # ln -sv /usr/local/mysql/include  /usr/include/mysql 
输出mysql的库文件给系统库查找路径: 
 
 
 
  1. # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf 
而后让系统重新载入系统库: 
 
 
 
  1. # ldconfig 
设置环境变量: 
 
 
  1. # vim /etc/profile.d/mysql.sh  添加如下
  2. export PATH=$PATH:/usr/local/apache/bin:/usr/local/mysql/bin 
  3. # . /etc/profile 
  4.   
  5. # service mysqld start  重新启动
  6.   
  7. # mysql          确认mysql正常运行(quit退出) 
 
将mysql的root用户密码设置为"123456"
 
 
  1. # mysqladmin -uroot -p password  
  2. 123456  
 
php的安装配置: 
解决依赖关系:
下载lftp 172.16.0.1/pub/Sources/ngnix目录中的如下几个rpm包并安装之:
 
 
  1. libmcrypt-2.5.7-5.el5.centos.i386.rpm 
  2. libmcrypt-devel-2.5.5-5.el5.centos.i386.rpm 
  3. mhash-0.9.2-6.el5.centos.i386.rpm 
  4. mhash-devel-0.9.2-6.el5.centos.i386.rpm 
  5. mcrypt-2.6.8-1.el5.i386.rpm 
最好使用升级的方式安装上面的rpm包,命令格式如下:
 
  1. # rpm -Uvh  
另外,也可以根据需要安装libevent,系统一般会自带libevent,但版本有些低。因此可以升级安装之,它包含如下两个rpm包
 
 
  1. 下载路径:ftp://172.16.0.1/pub/Sources/memcached。 
  2. libevent-2.0.17-2.i386.rpm 
  3. libevent-devel-2.0.17-2.i386.rpm 
安装这两个包时,它可能会依赖于其他包的,所以可以用yum -y install 命令来安装

编译安装: 
 
 
  1. # tar xf php-5.4.8.tar.bz2 
  2.   
  3. # cd php-5.4.8 
  4.   
  5. # ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts 
  6.   
  7. # make 
  8.   
  9. # make install 
  10.   
  11. # cp php.ini-production /etc/php.ini 
  12.   
配置测试:
 
 
  1. # vim /etc/httpd/httpd.conf 
  2.   
  3.  添加如下二行 
  4.   
  5.    AddType application/x-httpd-php  .php               //378行 
  6.   
  7.    AddType application/x-httpd-php-source  .phps 
  8.   
  9.   
  10.   
  11.  将DirectoryIndex index.html修改为: 
  12. DirectoryIndex  index.php  index.html 
  13.   
  14. # cd /web/vhosts/www1 
  15.   
  16. # vim index.php  
  17.   
  18. <?php 
  19.   
  20. phpinfo(); 
  21.   
  22. ?> 
重新启动httpd服务器 
然后访问测试一下就OK了。

phpMyAdmin的安装配置:
 
 
  1. lftp 172.16.0.1:/pub/Sources/new_lamp>  
  2. phpMyAdmin-3.5.1-all-languages.tar.bz2 
  3.  
  4. tar xf /root/phpMyAdmin-3.5.1-all-languages.tar.bz2 
  5. mv phpMyAdmin-3.5.1-all-languages/* ./ 
  6.  
  7.   
  8. # tar xf phpMyAdmin-3.5.1-all-languages.tar.bz2 
  9.  
  10. # mkdir /web/vhosts/www1/pma 
  11.  
  12. # mv phpMyAdmin-3.5.1-all-languages/* /web/vhosts/www1/pma  
仅允许来自本地的请求通过:

 
 
  1. #mysql 
  2.  
  3. #create database mydb; 
  4.  
  5. #grant all on mydb.* to root@'localhost' identified by '123456'; 
  6.  
  7. #flush privileges; 
  8.  
  9. # service mysqld restart 
 
 
以上为实验过程步骤,没有附加效果图,如有疑问可留言,笔者将以最大的努力解决疑问。。。

本文转自 z永 51CTO博客,原文链接:http://blog.51cto.com/pangge/1063366
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
15天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
29天前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
20 1
|
29天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
24 1
|
1月前
|
关系型数据库 MySQL 数据库连接
关于MySQL-ODBC的zip包安装方法
关于MySQL-ODBC的zip包安装方法
|
1月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
84 1
|
4天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
27 4
|
28天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 中apt 安装MySQL数据库
Ubuntu 中apt 安装MySQL数据库
68 0
|
7天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
20 0
|
7天前
|
关系型数据库 MySQL Linux
centos7安装mysql-带网盘安装包
centos7安装mysql-带网盘安装包
44 2
|
8天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册