LAMP的部署经历
此次安装的版本比较低,适用于某个老系统的环境要求。费了一些周折,网络上提供的资料准确性有限,很杂乱。需要自己的实践和研究总结一些方法。
环境:Redhat AS5,Apache1.3.9,PHP4.1.2,Mysql4.1,ZendOptimizer-2.5.7
其他软件:zlib-1.2.3.tar.gz(后面会提及)
一、MySQL数据库
1、第一次用二进制方式安装,直接解压,初始化数据库出错,启动也失败过,后来采用源码安装包安装,避免麻烦。
源码安装:
1 2 3 4 5 6 7 8 9 10 11 12 | groupadd mysql /*创建mysql用户组*/ useradd -g mysql mysql /*创建用户*/ tar zxvf mysql-4.1.tar.gz /*解压缩*/ cd mysql-4.1 ./configure --prefix=/usr/local/mysql /*指定mysql安装路径*/ make /*时间会比较长*/ make install /*安装完毕*/ cp support-files/my-large.cnf /etc/my.cnf /*复制配置文件改名为my.cnf,如果提示覆盖按Y确定*/ cd /usr/local/mysql bin/mysql_install_db --user=mysql /*必须以mysql用户初始化数据库*/ chown -R mysql:mysql /usr/local/mysql /*更改mysql目录所有者权限,否则会导致启动失败*/ bin/mysqld_safe --user=mysql & /*用mysql用户启动服务,只有不提示end,就成功了*/ |
2、修改mysql密码:
#mysqladmin -u root -p password ‘mypasswd’
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
mysql4以上版本会出现客户端连接不上的情况。需要再做如下操作更新:
#mysql -u root -p /*输入刚才更改的密码登陆*/
执行下面的语句:
set password for root@”localhost”=old_password(‘mypasswd‘);
3、更改mysql默认最大连接数
mysql默认最大连接数是100,在实际应用中,不够。
修改mysqld_safe(一种不需要编译mysql就可以实现的方法)
编辑mysqld_safe启动脚本,找到mysqld启动的那两行,在后面加上参数 :
-O max_connections=1000
然后关闭mysql重启它,用
mysqladmin -uroot -p variables
输入root数据库账号的密码后可看到变量信息。
| max_connections | 1000 |
即新改动已经生效。
二、安装apache
tar -zxvf apache_1.3.9.tar
cd apache_1.3.9
./configure –prefix=/usr/local/apache –enable-module=so /*指定安装路径,激活动态模式,必需激活mod_so*/
make
make install
确认mod_so是否激活成功:
/usr/local/apache/bin/httpd -l /*使用此命令查看*/
在出现的列表中,只要有mod_so.c就可以了.
补充:Apache1.3中,最大连接数的上限是256,负载高的话这个太少了,提高上限,需要在编译之前,修改源码src/include/httpd.h中找到“#define HARD_SERVER_LIMIT 256”这行,改成1000或者更高,重新编译安装。然后在httpd.conf文件中,修改MaxClients数值,才能突破最大256的限制,否则apache启动失败。
可以查看系统中,当时有多少连接数ps -ef|grep http|wc -l 。
在Apache 2.0中新加入了ServerLimit指令,无须编译Apache就可以加大MaxClients。
三、安装PHP
1 2 3 4 5 6 7 8 | tar -zxvf php4.1.2.tar cd php4.1.2 ./configure --with-apxs=/usr/local/apache/bin/apxs --enable-track-vars --with-mysql=/usr/local/mysql --with-zlib make make install cp php.ini-dist /usr/local/lib/php.ini /*建立php.ini配置文件*/ |
分析:前面有过失败的经历,在./configure时候没有加–with-zlib,安装后,启动apache失败,提示undefined symbol “compress” when loading libphp4.so.
原因:官网说法,PHP支持mysql需要有zlib,没有的话,出现上面的错误。可以先查看是否已经装有zlib。
#rpm -qa|grep zlib
没有安装的话,下载安装zlib-1.2.3.tar.gz源码包,make ,make install安装,将会安装在/usr/local/lib/libz.a
误解:网上有说法是根据compress的字面意思,缺少nocompress安装包,是错误的,不起作用的。
如果前面安装过php,在重新配置前,你需要先清除原来的配置,否则是无法编译通过的.我是直接删除PHP,重新解压缩编译。
配置httpd.conf支持php
vi /usr/local/apache/conf/httpd.conf
确认以下几行存在并且没有被注释
1 2 3 | LoadModule php4_module libexec/libphp4.so AddType application/x-httpd-php .php .phtml .php3 AddType application/x-httpd-php-source .phps |
在Apache根目录下建立info.php,内容<? phpinfo(); ?> ,出现 phpinfo信息成功。
四、安装ZendOptimizer-2.5.7
解压,执行文件夹里面的./install.sh,按照提示安装即可。
五、其他问题
在重起apache后,访问编译过的php页面为乱码,发现Zend没有挂接上,通过phpinfo没有看到,查看apache错误日志:
Failed loading /usr/local/Zend/lib/Optimizer-2.5.7/php-4.1.x/ZendOptimizer.so: /usr/local/Zend/lib/Optimizer-2.5.7/php-4.1.x/ZendOptimizer.so: q
Failed loading /usr/local/Zend/lib/Optimizer-2.5.7/php-4.1.x/ZendOptimizer.so: /usr/local/Zend/lib/Optimizer-2.5.7/php-4.1.x/ZendOptimizer.so: cannot restore segment prot after reloc: Permission denied
经查证,确认是由于selinux引起的,只有先关闭他。
#vi /etc/sysconfig/selinux
修改SELINUX=disabled
重起系统。
最新评论