我的虚拟主机环境
操作系统:Red Hat Enterprise 5.8
编译安装的软件:
httpd-2.4.2.tar.bz2
mysql-5.5.24-linux2.6-i686.tar.gz
php-5.4.4.tar.bz2
xcache-2.0.0.tar.bz2
目录:
1、编译安装实现的过程
2、个人主页配置
3、虚拟主机配置
4、别名配置
一、编译安装httpd-2.4.2
- 1、httpd-2.4.2需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源码编译安装,一种是直接升级rpm包,下载好安装包以后使用“rpm -Uvh”进行升级即可。这里选择使源码编译安装。
- 注意:安装这些软件包之前不要忘记安装开发环境了,不然你安装的时候会报很多错的
- yum -y groupinstall "Development Tools"
- yum -y groupinstall "Development Libraries"
- 编译安装apr和apr-util
- tar xf apr-1.4.6.tar.bz2
- ./configure --prefix=/usr/local/apr
- make && make install
- tar xf apr-util-1.4.1.tar.bz2
- ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
- make && make install
- 注意:httpd-2.4.2编译过程也要依赖于pcre-devel 和openssl-devel软件包,我们yum安装一下
- yum install pcre-devel openssl-devel
- 2、编译安装httpd-2.4.2.tar.bz2
- tar xf httpd-2.4.2.tar.bz2
- cd httpd-2.4.2
- ./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
- make && make install
- 了解更多的编译参数请./configure --help进行查看
二、安装mysql-5.5.24(这里是绿色版直接解压使用)
- 新建用户以安全方式运行进程:
- groupadd -r mysql
- useradd -g mysql -r -s /sbin/nologin mysql
- chown mysql:mysql /mydata
- 解压mysql并创建软链接
- tar xf mysql-5.5.24-linux2.6-i686.tar.gz -C /usr/local
- cd /usr/local
- ln -sv mysql-5.5.24-linux2.6-i686 mysql
- 修改属主和组并初始化mysql-5.5.24
- chown -R mysql:mysql .
- /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata
- chown -R root .
- 为mysql提供主配置文件:
- cd /usr/local/mysql
- cp support-files/my-large.cnf /etc/my.cnf
- 编辑my.cnf文件
- vim /etc/my.cnf
并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:- thread_concurrency = 2
- datadir = /mydata
- 为mysql提供sysv服务脚本:
- cd /usr/local/mysql
- cp support-files/mysql.server /etc/rc.d/init.d/mysqld
- 添加至服务列表:
- chkconfig --add mysqld
- chkconfig mysqld on
- 最后就可以启动服务测试使用了。
- 使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用
- vim /etc/profile /添加PATH搜索路径/ PATH=$PATH:/usr/local/mysql/bin:/usr/local/apache/bin
- vim /etc/man.config /添加man路径/ MANPATH /usr/local/mysql/man
- 使用其mysql和httpd命令生效
- export PATH=$PATH:/usr/local/mysql/bin/
- export PATH=$PATH:/usr/local/apache/bin/
- 输出mysql的头文件至系统头文件路径/usr/include:
- 这可以通过简单的创建链接实现:
- ln -sv /usr/local/mysql/include /usr/include/mysql
- 输出mysql的库文件给系统库查找路径:
- echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
- 最后让系统重新载入系统库:
- ldconfig
三、编译安装php-5.4.4
- tar xf php-5.4.4.tar.bz2
- cd php-5.4.4
- ./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 --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
- make && make install
- 为php提供配置文件
- cp php.ini-production /etc/php.ini
- 编辑apache配置文件,让apache支持php
- vim /etc/httpd/httpd.conf
- 检查libphp5.so模块是否添加,并且开启
- 找到<IfModule mime_module>模块,在里面添加
- AddType application/x-httpd-php .php
- 定位至:DirectoryIndex index.html
- 修改为:DirectoryIndex index.php index.html
- 保存退出重启httpd
- 重启httpd命令:/usr/local/apache/bin/apachectl restart
- 写一个php测试脚本:echo "<?php phpinfo(); ?>" >/usr/local/apache/htdocs/index.php
- 测试结果http://ip/index.php
- 提示:这时你可以做一个压力测试,使用apache自带的压力测试工具ab,然后你就知道为什么装xcache了
四、编译安装xcache-2.0.0
- XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载.
- tar xf xcache-2.0.0.tar.gz
- cd xcache-2.0.0
- /usr/local/php/bin/phpize
- ./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-zts-20100525/
- 编辑php.ini,整合php和xcache:
- 首先将xcache提供的样例配置导入php.ini
- mkdir /etc/php.d
- cp xcache.ini /etc/php.d
- 说明:xcache.ini文件在xcache的源码目录中。
- 接下来编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:
- zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
- 注意:如果php.ini文件中有多条zend_extension指令行,要确保此新增的行排在第一位
- 最后重启apache服务在phpinfo中可以看到xcache是否安装成功
1、实现个人主页配置
- 1、实现个人主页配置
- 所谓个人主页配置,就是显示系统中每个用户家目录中指定的页面,主要参数配置是UserDir
- 编译httpd.conf配置文件,需要修改以下内容
- vim /etc/httpd/httpd.conf
- LoadModule authn_core_module modules/mod_authn_core.so
- LoadModule authz_host_module modules/mod_authz_host.so
- LoadModule userdir_module modules/mod_userdir.so
- Include /etc/httpd/extra/httpd-userdir.conf
- 把前面的#号去掉
- 保存退出
- 编辑/etc/httpd/extra/httpd-userdir.conf配置文件,需要修改以下内容
- vim /etc/httpd/extra/httpd-userdir.conf
- UserDir public_html
- <Directory "/home/*/public_html">
- AllowOverride none
- Options none
- Require all granted
- </Directory>
- 保存退出
- 重启httpd
- 重启httpd命令:/usr/local/apache/bin/apachectl restart
- 新建用户test和建立public_html目录
- useradd test
- mkdir -p /home/test/public_html /这个目录必须存在,根据上面的参数设置的/
- chmod o+x /home/test /注意:要给予其他用户访问的权限/
- echo "<h1>hello</h1>" >/home/test/public_html/index.html
- 最后测试:http://192.168.184.135/~test/
2、虚拟主机配置
3、别名配置(包括Alias和ScriptAlias)
- 编辑httpd.conf配置文件,需要修改以下内容
- vim /etc/httpd/httpd.conf
- LoadModule log_config_module modules/mod_log_config.so
- Include /etc/httpd/extra/httpd-vhosts.conf
- 把前面的#号去掉
- #DocumentRoot "/usr/local/apache/htdocs" /前面加个#号,注释掉/
- 保存退出
- 编辑/etc/httpd/extra/httpd-vhosts.conf配置文件,需要修改以下内容
- <VirtualHost *:80> /这个是支持虚拟主机模块容器,指定80端口/
- ServerName www.test.com /虚拟主机FQDN/
- DocumentRoot /www/users/test.com /虚拟主机网页存放目录/
- ErrorLog /var/log/httpd/test.com-error_log /虚拟主机错误日志/
- CustomLog /var/log/httpd/test.com-access_log common /虚拟主机访问日志,并定义日志级别common/
- <Directory "/www/users/test.com"> /对虚拟主机的网页目录进行权限设置,这个很重要必须设置不然不能访问这个是对于Apache/2.4.2而言的/
- Options indexes
- AllowOverride none
- Require all granted
- </Directory>
- </VirtualHost>
- 保存退出
- /usr/local/apache/bin/httpd -S 执行这个命令看看虚拟主机设置是否有误
- 重启httpd
- 重启httpd命令:/usr/local/apache/bin/apachectl restart
- 提示:事先必须做好域名解析才可以正常访问
- mkdir -p /www/users/test.com
- echo "<?php phpinfo(); ?>" >/www/users/test.com/index.php
- 最后测试访问:http://www.test.com
- 编辑httpd.conf配置文件,需要修改以下内容
- LoadModule alias_module modules/mod_alias.so
- LoadModule cgi_module modules/mod_cgi.so
- 把前面的#号去掉
- 保存退出
- 编辑/etc/httpd/extra/httpd-vhosts.conf配置文件,需要修改以下内容,还是刚才的虚拟主机test.com
- <VirtualHost *:80>
- ServerName www.test.com
- DocumentRoot /www/users/test.com
- Alias /data "/www/users/test.com" /做别名访问/
- ScriptAlias /cgi-bin/ "/www/cgi-bin/" /CGI路径别名/
- <Directory "/www/cgi-bin"> /对这个目录进行访问控制
- AllowOverride None
- Options None
- Require all granted
- </Directory>
- ErrorLog /var/log/httpd/test.com-error_log
- CustomLog /var/log/httpd/test.com-access_log common
- <Directory "/www/users/test.com">
- Options indexes
- AllowOverride none
- Require all granted
- </Directory>
- </VirtualHost
- 建立目录和脚本
- mkdir /data
- mkdir /www/cgi-bin
- cd /www/cgi-bin
- vim test.sh
- #!/bin/bash
- #
- echo "Content-type:text/html"
- echo
- data
- echo
- ps auxf
- 最后测试访问:
- Alias效果访问:http://www.test.com/data
- ScriptAlias效果访问:http://www.test.com/cgi-bin/test.sh
Alias效果访问:http://www.test.com/data
ScriptAlias效果访问:http://www.test.com/cgi-bin/test.sh
1、更多的参数及实例请参考Apache/2.4.2官方手册:http://httpd.apache.org/docs/2.4/