LAMP时运维必备的基本功,也是将来从事DBA的最起码的要求,当需要升级你的MySQL等最基本的服务时,这就排上用场了,这里,给大家简单的谈一谈。
大致的安装顺序是这样的,大家先有个概念:apr--->apr-util--->httpd--->MySQL--->php
因为升级软件,是不可以卸载旧的软件的,这是Linux不同于Windows之处,底层的库是互相共享的,所以,只需要在/usr/local下创建文件来安装就好,卸载时,删除对应文件就可以了,省时省力。
1、首先,Linux平台已经构建完成,就不介绍了
2、其次,httpd的升级还要依靠系统安装别的软件包所依赖的库,如:apr,apr-util,网上下载好,编译安装就行。再下载好新版的httpd的源码后,三步骤安装,分别是.configure,make,make install。此处注意:进行httpd源码的编译时,要指明apr-util的安装路径,应该这样写./configure --prefix=/PATH/TO/FILE --with-apr-util=/PATH/TO/FILE。大家如果已经用yum源安装了相关包,卸载即可。
3、然后,编译安装MySQL,这个阶段较为复杂,有如下几个步骤。
创建mysql用户;
创建LVM修改熟虑库中数据的存放位置,默认是存放在安装目录下的/data文件中;
创建LVM过程(此处以/dev/sda4为例,大家视情况而定就好);
先创建LVM--->pvcreate /dev/sda4--->vgcreate myvg /dev/sda4--->lvcreate -n mydata -L 1G--->mke2fs -j /dev/myvg/mydata--->vim /etc/fstable--->mount -a
编译安装MySQL;
以mysql身份初始化mysql(此处要将安装目录下的文件的权限修改为mysql用户,mysql组);
script_install_db --user mysql --ddatadir=/PATH/TO/FILE(此处的FILE就是挂载的mydata挂载的地方)
再将安装位置下的support-files/mysql.server脚本移植到/etc/init.d/下,命名mysqld,并使用chkconfig命令使系统可以启动这项服务;
将安装目录下的my.cnf这个配置文件放在/etc/下,并修改其数据文件目录为mydata,否则服务将无法启动,此处要格外留心;
启动服务;
如果是自己编译安装的服务软件,mysql和mysqld都将安装,并且mysql安装目录下的/bin下的命令因为没有PATH变量,所以无法使用,解决方法:修改PATH变量:/etc/profile.d/mysql.sh,export PATH=$PATH:/usr/local/mysql/bin。
4、最后,安装php,有了上面的基础,php安装起来就很简单了,同理,编译安装,同理,要启动服务的话,还需要配置文件,不过php的配置文件比较特殊,不像httpd和mysql可以自己生成,它在php目录下,只需要把对应的ini文件移除到/etc/下即可。
补充实现Apache的Xcache功能,因为Xcache是Apache的众多扩张功能的一个(mysql,mbstring等等),所以需要整合php和Xcache,步骤是将Xcache下的Xcache.ini导入到/etc/php.d/下,并编辑此文件的首部,修改为zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so,重启服务器,既可以实现Xcache功能了。
那么如何基于在Apache上基于虚拟主机来实现LAMP的功能呢,那就更简单了,只需要在/ec/httpd/httpd.conf下修改文件,把DocumentRoot注释掉,并启用虚拟主机功能,并在对应的目录下修改文件,配置虚拟主机的各项参数,重启服务就可以了。
以下是个人的一个关于虚拟主机的基于端口的配置,大家可以参考一下
<VirtualHost 192.168.1.99:80>
DocumentRoot "/www.a.org"
ServerName www.a.org
<Directory>
Options none
AllowOverride none
Require all granted
</Directory 192.168.1.99:8080>
ErrorLod "/var/log/httpd/a.org-error_log"
CustomLog "/var/log/httpd/a.org-custom_log" combined
</VirtualHost>
重启服务之后,就可以使用httpd自带的ab功能来进行压力测试了。
ab -c 10 -n 100 http://192.168.1.1/index.html,在这里,测试时,要以并发数的峰值为标准,可以通过vmstat 1来观察队列的长度、上下文转换(进程切换),终端次数、磁盘写入内存数来观察性能,并可以修改/etc/httpd/extra/httpd-mpm.conf来修改apache的工作模型,修改并发数,进而优化系统。那么如何使自己编译的系统支持https的功能呢,当然也很简单,修改httpd.conf,使其支持ssl功能,再使用相关的openssl命令创建秘钥既可以了,并修改/etc/httpd/extra/httpd-ssl.conf,把虚拟主机放入其中,就可以了