• 基于apache+php+mysql 编译安装详解(转载)


    准备工作(前提:在一个干净的平台上操作):
    1、 准备安装环境,确保安装组配置文件“Development Libraries”“Development Tools”;这里使用配置好的yum源安装,下载路径:ftp://172.16.0.1/pub/gls/server.repo
    2、 下载apache软件包,httpd-2.4.4版本,httpd-2.4.4编译过程也要依赖于pcre-devel软件包,需要事先安装。由于此版本需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包,这里选择使用编译源代码的方式进行,下载路径ftp://172.16.0.1/pub/Sources/new_lamp
    下载apr版本为:apr-1.4.6.tar.bz2
    下载apr-util版本为:apr-util-1.5.2.tar.bz2
    3、 下载mysql软件包,我这里使用mysql-5.5.28-linux2.6-i686.tar.gz,下载路径ftp://172.16.0.1/pub/Sources/mysql-5.5;
    4、 下载php软件包,php-5.4.13.tar.bz2,如果想让编辑的php支持mcrypt扩展,还需下载依赖于该库文件的软件包,mhash*.rpm libmcrypt-*.rpm,下载ftp://172.16.0.1/pub/Sources/nginx
    5、 下载xcache软件包,是为php加速的缓存工具,我使用的是xcache-2.0.0.tar.bz2;下载路径:ftp://172.16.0.1/pub/Sources/new_lamp
    注意下载这些软件包之前,要把自己主机的系统时间同步为硬件时间,假如时间是过去的时间点,而下载的软件包是现在时间,这样系统会出现凌乱。
    安装次序很重要:
    apr --> apr-util --> httpd --> MySQL -->php--->Xcache
    一、编译安装apache
    1 编译安装apr
    1. [root@localhost ~]#tar xf apr-1.4.6.tar.bz2  
    2. [root@localhost ~]#cd apr-1.4.6  
    3. [root@localhost apr-1.4.6]#./configure --prefix=/usr/local/apr  
    4. #####软件包安装的路径统一放在第三方软件位置:/usr/local/  
    5. [root@localhost apr-1.4.6]#make   
    6. [root@localhost apr-1.4.6]#make install  
    2 编译安装apr-util
    1. [root@localhost ~]#tar xf apr-util-1.5.2.tar.bz2  
    2. [root@localhost ~]#cd apr-util-1.5.2  
    3. [root@localhost apr-util-1.5.2]#./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr  
    4. ####指定apr-util和apr安装路径  
    3 安装pcre-devel软件包
    1. [root@localhost ~]# yum install pcre-devel 
    4 编译安装httpd-2.4.4
    1. [root@localhost ~]# tar xf httpd-2.4.4.tar.bz2  
    2. [root@localhost ~]# cd httpd-2.4.4  
    3. [root@localhost httpd-2.4.4]#./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-mpms-shared=all --with-mpm=event  
    4. 说明:--prefix=/usr/local/apache    ####httpd安装路径  
    5. --sysconfdir=/etc/httpd      ####系统配置文件目录路径  
    6. --enable-so       ######支持共享模块功能  
    7. --enable-ssl            #####支持ssl功能  
    8. --enable-cgi       ####支持cgi功能  
    9. --enable-rewrite    ####支持重写功能  
    10. --with-zlib         #####支持扩展库文件功能  
    11. --with-pcre       #####支持pcre功能  
    12. --with-apr=/usr/local/apr       ######指定apr安装路径  
    13. --with-apr-util=/usr/local/apr-util     #####指定apr-util安装路径  
    14. --enable-mpms-shared=all      #####表示此平台的mpm模块都会被安装  
    15. --with-mpm=event       #####特指定mpm模块为event,mpm模块可以在配置文件中修改  
    16. [root@localhost httpd-2.4.4]#make  
    17. [root@localhost httpd-2.4.4]#setenforce 0       #####由于web服务是受selinux控制会导致系统运行不起来,要把selinux的功能关掉  
    18. [root@localhost httpd-2.4.4]#make install  
    5 修改httpd的主配置文件,设置其pid文件的路径
    1. [root@localhost httpd-2.4.4]#vim /etc/httpd/httpd.conf  
    2. 添加内容:PidFile  “/var/run/httpd.pid”  
    3. 保存退出  
    6 为httpd提供服务脚本
    1. [root@localhost ~]#vim /etc/rc.d/init.d/httpd  
    2. #!/bin/bash  
    3. # httpd        Startup script for the Apache HTTP Server  
    4. #  
    5. # chkconfig: - 85 15  
    6. # description: Apache is a World Wide Web server.  It is used to serve   
    7. #          HTML files and CGI.  
    8. # processname: httpd  
    9. # config: /etc/httpd/conf/httpd.conf     ####指定主配置文件  
    10. # config: /etc/sysconfig/httpd      ####指定服务脚本的配置文件  
    11. # pidfile: /var/run/httpd.pid     #####指定pid的配置文件  
    12.  
    13. # Source function library.  
    14. . /etc/rc.d/init.d/functions     #####导入函数的配置文件  
    15.  
    16. if [ -f /etc/sysconfig/httpd ]; then     #####判断/etc/sysconfig/httpd是否为普通文件,如果是,就导入执行该配置文件  
    17.         . /etc/sysconfig/httpd  
    18. fi  
    19.  
    20. # Start httpd in the C locale by default.  
    21. HTTPD_LANG=${HTTPD_LANG-"C"}    ####如果没有设置HTTPD_LANG,就把C赋值给HTTPD_LANG  
    22.  
    23. # This will prevent initlog from swallowing up a pass-phrase prompt if  
    24. # mod_ssl needs a pass-phrase from the user.  
    25. INITLOG_ARGS="" 
    26.  
    27. Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server  
    28. with the thread-based "worker" MPM; BE WARNED that some modules may not 
    29. work correctly with a thread-based MPM; notably PHP will refuse to start.  
    30.  
    31. # Path to the apachectl script, server binaryand short-form for messages.  
    32. apachectl=/usr/local/apache/bin/apachectl      ###指定apachectr文件路径  
    33. httpd=${HTTPD-/usr/local/apache/bin/httpd}  ####如果没有指定httpd,就把后面的路径赋值给httpd  
    34. prog=httpd   
    35. pidfile=${PIDFILE-/var/run/httpd.pid}  ####如果没有指定pidfile路径,就把后面的路径赋值给pidfile文件  
    36. lockfile=${LOCKFILE-/var/lock/subsys/httpd}  ###如果没有指定lockfile路径,就把后面的路径赋值给lockfile文件  
    37. RETVAL=0  
    38.  
    39. start() {  
    40.         echo -n $"Starting $prog: " 
    41.         LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS  
    42.         RETVAL=$?  
    43.         echo  
    44.         [ $RETVAL = 0 ] && touch ${lockfile}  
    45.         return $RETVAL  
    46. }  
    47.  
    48. stop() {  
    49.     echo -n $"Stopping $prog: " 
    50.     killproc -p ${pidfile} -d 10 $httpd  
    51.     RETVAL=$?  
    52.     echo  
    53.     [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}  
    54. }  
    55. reload() {  
    56.     echo -n $"Reloading $prog: " 
    57.     if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/nullthen 
    58.         RETVAL=$?  
    59.         echo $"not reloading due to configuration syntax error" 
    60.         failure $"not reloading $httpd due to configuration syntax error" 
    61.     else 
    62.         killproc -p ${pidfile} $httpd -HUP  
    63.         RETVAL=$?  
    64.     fi  
    65.     echo  
    66. }  
    67.  
    68. # See how we were called.  
    69. case "$1" in 
    70.   start)  
    71.     start  
    72.     ;;  
    73.   stop)  
    74.     stop  
    75.     ;;  
    76.   status)  
    77.         status -p ${pidfile} $httpd  
    78.     RETVAL=$?  
    79.     ;;  
    80.   restart)  
    81.     stop  
    82.     start  
    83.     ;;  
    84.   condrestart)  
    85.     if [ -f ${pidfile} ] ; then 
    86.         stop  
    87.         start  
    88.     fi  
    89.     ;;  
    90.   reload)  
    91.         reload  
    92.     ;;  
    93.   graceful|help|configtest|fullstatus)  
    94.     $apachectl $@  
    95.     RETVAL=$?  
    96.     ;;  
    97.   *)  
    98. echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" 
    99.     exit 1  
    100. esac  
    101.  
    102. exit $RETVAL  
    103. 保存退出  
    104. [root@localhost httpd-2.4.4]#chmod +x /etc/rc.d/init.d/httpd      ####为脚本赋予执行权限  
    7 添加httpd到服务列表

    8 查看httpd的监听端口

    二、编译安装mysql
    1 安装mysql-5.5.28
    1. [root@localhost ~]#tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local 
    2. [root@localhost ~]#cd /usr/local/  
    3. [root@localhost local]# ln -sv mysql-5.5.28-linux2.6-i686  mysql      ########为了保全mysql的路径、版本,要为此软件包创建链接  
    2 创建mysql用户和mysql组
    1. [root@localhost local]# cd mysql      
    2. [root@localhost mysql]#groupadd –r –g 306 mysql  
    3. [root@localhost mysql]#useradd –g 306 –r –u 306 mysql  
    4. [root@localhost mysql]#chown –R mysql.mysql /usr/local/mysql/*  
    3 准备数据存放的文件系统
    1. 在mysql目录下有个默认存放数据的目录,不过以后存储数据的规模会逐渐变大,建议使用逻辑卷挂载数据目录,我使用逻辑卷挂载数据目录,假设逻辑卷的挂载目录为/mydata;  
    2. [root@localhost mysql]#fdisk /dev/sda  
    3. #创建一个为20G的分区sda5,并把文件系统类型改为8e  
    4. [root@localhost mysql]#partprobe /dev/sda  
    5. [root@localhost mysql]#pvcreate /dev/sda5   #####创建物理卷  
    6. [root@localhost mysql]#vgcreate myvg /dev/sda5     ####创建卷组  
    7. [root@localhost mysql]#lvcreate -n mydata -L 5G myvg    #####创建逻辑卷   
    8. [root@localhost mysql]# lvs     ####查看创建情况  
    9.   LV     VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert 
    10.   mydata myvg -wi-a-  5.00G                                        
    11.   home   vol0 -wi-ao  4.88G                                        
    12.   root    vol0 -wi-aob 29.28G        
    13. [root@localhost mysql]#mke2fs -j /dev/myvg/mydata      ####格式化  
    14. [root@localhost mysql]#mkdir /mydata        ######创建目录,让逻辑卷挂载到这个目录下  
    15. [root@localhost mysql]#vim /etc/fstab       #####让其在开机时自动挂载  
    16. /dev/myvg/mydata   /mydata   ext3    defaults   0 0  
    17. 保存退出  
    18. [root@localhost mysql]#mount -a    ###挂载  
    19. [root@localhost mysql]#mkdir /mydata/data        #####为了数据便于管理,再创建一个子目录用来作为数据目录  
    20. [root@localhost mysql]#chown -R mysql.mysql /mydata/data       #####将来mysql用户要在数据目录下添加数据,要把数据目录的属主、属组都改为mysql  
    21. [root@localhost mysql]#chmod o-rx /mydata/data       ####为了数据的安全性,把数据目录修改不让其它人有任何权限  
    4 初始化mysql-5.5.28
    1. [root@localhost mysql]#scripts/mysql_install_db --user=mysql --datadir=/mydata/data       #########初始化mysql脚本,并指定用户和数据目录路径  
    2. [root@localhost mysql]#chown -R root /usr/local/mysql/*      #####初始化完成后,要把mysql目录下的属主改为root,防止其他人使用mysql用户进入/mysql下修改数据  
    3. [root@localhost mysql]#cp suppor-files/mysql.server /etc/init.d/mysqld    ####把服务器提供的脚本重命名为/etc/init.d/mysqld  
    4. [root@localhost mysql]#ls -l /etc/init.d/mysqld        ####注意查看该文件的是否有执行权限,如果没有要修改有执行权限  
    5. -rwxr-xr-x 1  root root  10650 Mar 31 20:06  /etc/init.d/mysqld  
    5 为mysql提供主配置文件
    mysql的配置文件很特别:
    /etc/my.cnf ---> /etc/mysql/my.cnf ---> $BASEDIR/my.cnf --> ~/.my.cnf    
    ####找完一个接着找下一个,这里的$BASEDIR默认指的是自己的安装目录
    #####找完之后可能会有冲突,出现冲突时,一般以最后一个为主,后一个会覆盖前一个
    主配置文件在/support-files下有多个,可以根据自己的内存大小选择;
    my-medium.cnf:内存为32M-64M选择
    my-small.cnf:内存为64M以下选择
    my-large.cnf:内存为512M选择
    my-huge.cnf:内存为1G-2G选择
    可以通过free -m查看自己的内存大小

    1. [root@localhost mysql]# cp support-files/my-large.cnf  /etc/my.cnf    ###把配置文件重命名为/etc/my.cnf  
    2. [root@localhost mysql]#vim /etc/my.cnf  

    6 为mysql提供服务脚本
    1. [root@localhost mysql]# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld  
    2. [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld  
    7 添加mysqld至服务列表

    重启服务并查看mysql进程的端口

     9 执行mysql数据库操作

    1. [root@localhost mysql]#vim /etc/profile.d/mysql.sh ##mysql和mysqld系统默认都安装过,创建/etc/profile.d/mysql.sh并把执行路径添加进来
    2. export PATH=$PATH:/usr/local/mysql/bin
    3. 保存退出

     

     

    为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
    10 输出帮助手册及man命令的查找路径
    1. [root@localhost mysql]#vim /etc/man.config

    11 输出mysql的头文件至系统头文件路径/usr/include
    1. [root@localhost mysql]#ln –sv /usr/local/mysql/include /usr/include/mysql ####通过创建链接实现
    12 输出mysql的库文件给系统库查找路径
    1. [root@localhost mysql]#echo ‘/usr/local/mysql/lib’ > /etc/ld.so.conf.d/mysql.conf ##把查找路径追加到配置文件中
    2. [root@localhost mysql]#ldcofig –v ###让系统重新载入系统库,并把过程显示出来
    三、编译安装php-5.4.13

     1 编译安装php-5.4.13 

    1. [root@localhost ~]# tar xf php-5.4.13.tar.bz2  
    2. [root@localhost ~]# cd php-5.4.13  
    3. [root@localhost php-5.4.13]# ./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  
    4. 说明:  
    5. --prefix=/usr/local/php:php安装路径  
    6. --with-mysql=/usr/local/mysql:mysql安装路径  
    7. --with-openssl:支持openssl功能  
    8. --with-mysqli=/usr/local/mysql/bin/mysql_config:mysql与apache访问的另一种接口,安装在二进制目录下  
    9. --enable-mbstring:多字节string  
    10. --with-freetype-dir:安装的字体库头文件  
    11. --with-jpeg-dir:jpeg类型的库  
    12. --with-png-dir:png类型的库  
    13. --with-zlib:互联网上通用压缩库,先压缩再传送,减少带宽  
    14. --with-libxml-dir=/usr:xml库文件的路径  
    15. --enable-xml:支持xml功能    
    16. --enable-sockets:php支持套接字功能  
    17. --with-apxs2=/usr/local/apache/bin/apxs:基于apxs实现让php编译成apache模块  
    18. --with-mcrypt:支持额外的加密库  
    19. --with-config-file-path=/etc:php配置文件放置路径   
    20. --with-config-file-scan-dir=/etc/php.d :php配置文件的分段文件放置路径  
    21. --with-bz2 :压缩库  
    22. --enable-maintainer-zts:当apache使用worker或event这两个MPM,编译时使用该选项  
    23. ###我在执行./configure时候,出现了错误,提示我没有安装libmcrypt库文件,可以有两种解决方式:1、去掉该模块 2、下载依赖于该库文件的软件包,mhash*.rpm libmcrypt-*.rpm  
    24. [root@localhost php-5.4.13]#make  
    25. [root@localhost php-5.4.13]#make install  
    2 为php提供配置文件
    1. [root@localhost php-5.4.13]#cp php.ini-production /etc/php.ini   ##php包中提供了配置文件,把配置文件重命名为/etc/php.ini,php的配置文件后缀名是以.ini结尾 
    3  编辑apache配置文件httpd.conf,以apache支持php
    1. [root@localhost php-5.4.13]#vim /etc/httpd/httpd.conf 

    1. [root@localhost php-5.4.13]#cd /usr/local/apache/htdocs/     #####进入apache页面目录下,把默认页面修改为php页面文件  
    2. [root@localhost php-5.4.13]#mv index.html index.php  
    3. [root@localhost php-5.4.13]#vim index.php  
    4. <html><body><h1>It works! my test page</h1></body></html>  
    5. <?php  
    6. phpinfo();  
    7. ?>  
    8. 保存退出  
    9. #####发起php页面测试  
    10. #####生成的测试页面内容对我们还是会有帮助,可以留意一下里面的内容  

    4 php和mysql结合,在index.php页面文件中修改一下内容
    1. <html><body><h1>It works! my test page</h1></body></html> 
    2. <?php 
    3.   $conn=mysql_connect('localhost','root','');  
    4.   if ($conn)  
    5.     echo "<h2>Success...</h2>";  
    6.   else  
    7.     echo "<h2>Failure...</h2>";  
    8.  
    9. ?> 
    10. 保存退出  

    四、安装xcache,为php加速
    1 安装xcache-3.0.1
    1. [root@localhost ~]# tar xf xcache-3.0.1.tar.gz  
    2. [root@localhost ~]# cd xcache-3.0.1       ###xcache是php的扩展,要使用php命令加载此扩展  
    3. [root@localhost xcache]# /usr/local/php/bin/phpize      ####phpize命令作用是要准备一个php扩展准备编译,所以扩展要先执行编译  
    4. [root@localhostxcache]#./configure--enable-xcache--with-php-config=/usr/local/php/bin/php-config  
    5. #######php-config表示能够获取php的配置信息以及编译时的选项信息;  
    6. ######由于不在默认路径下,xcache要获取php安装时所启用的功能,否则xcache会找不到php的路径  
    7. [root@localhost xcache]#make  
    8. [root@localhost xcache]#make install      
    9. 安装结束时,会出现类似如下行:  
    10. Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/  
    11. #####安装共享扩展模块路径,先把这个路径复制下来,等一下复制到xcache的配置文件中  
    2 编辑php.ini,整合php和xcache
    1. [root@localhost xcache]# mkdir /etc/php.d  
    2. [root@localhost xcache]# cp xcache.ini /etc/php.d    ###将xcache提供的样例配置导入php.ini  
    3. [root@localhost xcache]#vim /etc/php.d/xcache.ini    

    1. [root@localhost xcache]# service httpd restart    ####模块是要被web加载,要启动web服务 
    3 添加phpinfo功能,测试页面
    1. [root@localhost xcache]# vim /usr/local/apache/htdocs/index.php  
    2. 添加一行:phpinfo();  
    3. 保存退出并刷新页面  

    4 为源码编译httpd提供虚拟主机
    1. [root@localhost xcache]#vim /etc/httpd/httpd.conf  
    2. #DocumentRoot "/usr/local/apache/htdocs"       #####一定要注释中心主机配置  
    3. Include /etc/httpd/extra/httpd-vhosts.conf      #######开启虚拟主机配置文件,默认有样例  
    4. LoadModule log_config_module modules/mod_log_config.so     #####开启mod_log功能,默认是启用的  
    5. 保存退出  
    6. [root@localhost xcache]#vim /etc/httpd/extra/httpd-vhosts.conf       ########在提供的样例上修改  
    7. <VirtualHost *:80>  
    8.     ServerName www.a.org  
    9.     DocumentRoot "/www/a.org" 
    10.     <Directory "/www/a.org">  
    11.       Options none  
    12.       AllowOverride none  
    13.       Require all granted     ####定义任何都有访问权限  
    14.    </Directory>  
    15.     ErrorLog "/var/log/httpd/a.org-error_log" 
    16.     CustomLog "/var/log/httpd/a.org-access_log" combined  
    17. </VirtualHost>  
    18.  
    19. <VirtualHost *:80>  
    20.     ServerName www.b.net  
    21.     DocumentRoot "/www/b.net" 
    22.     <Directory "/www/b.net">  
    23.       Options none  
    24.       AllowOverride none  
    25.       Require all granted  
    26.    </Directory>  
    27.     ErrorLog "/var/log/httpd/b.net-error_log" 
    28.     CustomLog "/var/log/httpd/b.net-access_log" common  
    29. </VirtualHost>  
    30. 保存退出  

    创建域名和日志的目录

    1. [root@localhost xcache]# mkdir /www/{a.org,b.net} –pv  
    2. [root@localhost xcache]#mkdir /var/log/httpd/  
    6 创建域名的页面index.html
    1. [root@localhost xcache]#echo "<h1>www.a.org</h1>" > /www/a.org/index.html  
    2. [root@localhost xcache]#echo "<h1>www.b.net</h1>" > /www/b.net/index.html  
    3. [root@localhost xcache]#httpd –t  
    7 在物理机上添加域名解析记录
    1. 过程:点击硬盘c盘---> Windows---> System32---> drivers---> etc--->hosts文件  
    2. 添加如下内容:  
    3. 172.16.52.2    www.a.org  
    4. 172.16.52.2    www.b.net  
    5. ######注意:不要忘记保存,点击保存按钮  
    6. [root@localhost xcache]#service httpd restart  
    8 测试域名

     

    9 使用ab工具对静态页面进行压力测试
    1. [root@localhost xcache]#ab -c 10 -n 100 http://www.a.org/index.html 

    10 对动态页面进行压力测试
    1. 安装phpMyAdmin-3.5.1-all-languages.tar.bz2软件包到/www/b.net下  
    2. [root@localhost ~]#tar xf phpMyAdmin-3.5.1-all-languages.tar.bz2/ -C /www/b.net  
    3. [root@localhost ~]#cd /www/b.net  
    4. [root@localhost b.net]#mv phpMyAdmin-3.5.1-all-languages / pma  
    5. [root@localhost b.net]#cd pma  
    6. [root@localhost pma]#cp config.sample.inc.php config.inc.php    #####软件包提供默认配置文件,重命名配置文件名称  
    7. [root@localhost pma]#openssl rand -base64 10      ####生成10位的随机数,把生成的随机数复制到配置文件中  
    8. [root@localhost pma]#vim config.inc.php   ####编辑配置文件,把生成的随机数写在下面的位置  
    9. $cfg['blowfish_secret'] = 'QkMTw3ZlpJlBKA'   
    10. [root@localhost pma]#mysqladmin -uroot password 'redhat'       ######生成root用户的密码,登录站点www.b.net/pma不允许使用空密码  
    11. [root@localhost pma]#ab -c 100 -n 1000 http://www.b.net/pma/index.html     ###动态页面压力测试  

    常见的压力测试工具:ab, http_load, webbench, siege;大家可以下载这些测试工具对页面进行测试一下
    11 使用apache如何实现https功能,在一台主机上进行操作
    11.1 启动模块及添加虚拟主机
    1. [root@localhost pma]#vim /etc/httpd/httpd.conf       ####进入配置文件启用ssl模块  
    2. LoadModule ssl_module modules/mod_ssl.so    ####启用模块  
    3. Include /etc/httpd/extra/proxy-html.conf  
    4. 保存退出  
    5. [root@localhost pma]#vim /etc/httpd/extra/httpd-ssl.conf     ####编辑此配置文件,添加虚拟主机  
    6. <VirtualHost 172.16.52.2:443>  
    7. DocumentRoot "/www/a.org" 
    8. ServerName www.a.org  
    9. ErrorLog "/var/log/httpd/a.org-error_log" 
    10. TransferLog "/var/log/httpd/a.org-access_log" 
    11. SSLCertificateFile "/etc/httpd/ssl/httpd.crt"    ###证书文件放置的位置  
    12. SSLCertificateKeyFile "/etc/httpd/ssl/httpd.key"  ####证书文件密钥放置的位置  
    11.2 CA机构自身生成私钥
    1. [root@localhost ~]#cd /etc/pki/  
    2. [root@localhost pki]#cd CA/  
    3. [root@localhost CA]#(umask 077; openssl genrsa -out private/cakey.pem 2048)  
    11.3在配置文件中修改默认信息
    1. [root@localhost CA]#vim ../tls/openssl.cnf  
    2. countryName_default  =CN  
    3. stateOrProvinceName_default  =Henan  
    4. localityName_default     =Zhengzhou  
    5. O.organizationName_default   =MageEdu  
    6. organizationalUnitName_default   =Tech  
    7. ######这些默认信息可以根据自己需求自定义  

    11.4 生成自签证书

    11.5 为签证的证书准备目录和文件

    1. [root@localhost CA]#mkdir certs crl newcerts  
    2. [root@localhost CA]#touch index.txt  
    3. [root@localhost CA]#echo 01 > serial  
    11.6 生成服务器端密钥
    1. [root@ localhost ~]#cd /etc/httpd/  
    2. [root@ localhost httpd]#mkdir ssl  
    3. [root@ localhost httpd]#cd ssl/  
    4. [root@ localhost ssl]#(umask 077; openssl genrsa 1024 > httpd.key)  
    11.7 生成颁发证书请求
    1. [root@ localhost ssl]#openssl req –new –key httpd.key –out httpd.csr  
    2. 输入几个信息,这些信息和颁发证书的内容相同,除了主机名不同,这里应该写虚拟主机的主机名称:www.a.org  
    11.8 向CA机构发出签证的请求
    1. [root@ localhost ssl]#openssl ca -in httpd.csr -out httpd.crt -days 365  
    2. [root@ localhost ssl]#ll      ####签证完成,在当前目录下自动生成几个文件  
    3. [root@ localhost ssl]#cd /etc/pki/CA  
    4. [root@ localhost CA]#cat index.txt       #####显示CA证书中签证的记录  
    5. [root@ localhost CA]#service httpd restart  
    11.9 查看监听端口

     

    11.10 在物理机的hosts文件添加虚拟主机IP和域名
    1. 物理机hosts文件路径:点击“本地磁盘C”—>Windows—>System32—>drivers—>etc—>hosts  
    2. 添加:172.16.52.2    www.a.org  
    3. ######在IE浏览器上测试站点,对虚拟主机进行域名解析  
    11.11把服务器端的证书文件拖到物理机上

     

    11.12安装证书

    一直点击“下一步”,出现“导入成功”字样
    11.13 测试站点www.a.org

    本文转载自:http://luowenjing.blog.51cto.com/6627118/1178205

  • 相关阅读:
    五角星评分小例子
    手风琴案列
    隔行变色
    全选和单选(有一个单选没有打钩,全选也自动不打钩)
    随机数封装
    数组的升降序排列
    js面向对象倒计时与文字左右滚动
    linux知识点总结与随笔(关注linux爱好者公众号的一些笔记)
    线程与进程(我的理解)
    @property在python类中的应用
  • 原文地址:https://www.cnblogs.com/gjs88983244/p/3485501.html
Copyright © 2020-2023  润新知