linux下apache+mysql+php是linux下web服务环境的经典组合,简称lamp,虽然nginx有取代apache的迹象,但现在绝大多数的环境还是lamp。现在自己放在国外免费空间上的一些网站也是这个环境(如,,替自己做一下广告了,呵呵)。早在08年的时就已经安装配置过lamp了,当时没有写成文档,现在又重新回到了linux下开发,虽然现在的工作不是做网站(做网站只是业余爱好,现在主要做服务器软件开发),但是lamp环境还是挺重要的,比如用C开发CGI程序时,Apache还是需要的,所以就整理一下吧,省得以后又去google。lamp中的mysql是我最早接触过的了,那时还是07年了,当时看同学老呙的一本《jsp 2.0》的书(书名大概是这样,不记得了),里面用的就是mysql,也是从那时我了解了mysql,知道了一些mysql的命令,虽然之前熟悉的是SQL Server 2000,但那时就已经喜欢上mysql的简单、高效了,linux、apache、php则是08年才开始接触的了。好了,废话不多说了,下面就开始吧。
在安装linux系统的时候可以直接把web环境装了,这样就省去了安装的麻烦(如果你不想定制的话),如下图:
而这里的安装是指用源码编译安装,不是rpm安装的方式。用rpm包安装,在redhat和fedora 下可使用yum安装:yum install mysql apache php ;ubuntu和debian下可使用apt-get安装:apt-get install mysql apache2 php。十分简单,就是一行命令,整个环境就搭建好了,当然用rpm包安装要处理好依赖关系,不过yum会自动处理依赖关系,yum可能需要配置一下,不然会出现一些错误信息。windows和linux下还有一个集成安装包xampp,也是十分简单。另外网上还有一个自动安装脚本:http://www.wdlinux.cn/apache_nginx_php_mysql_install_auto。这里要介绍的将是使用源码进行编译安装,因为源码编译安装最灵活了,可以达到最高的性能,也可以定制lamp能够给你的功能。
lamp的安装顺序一般是linux、mysql、apache、php,linux系统当然是要先准备好的了, 这里是Red Hat Enterprise Linux Server release 5.2,另外gd库和php的一些相关库如curl、expat、gzip、zlib、freetype、libxml2、zend等的安装这里就不再说明了,使用开源软件的一般安装方法就可以了。
首先准备以下软件:
mysql-5.0.75.tar.gz
httpd-2.0.54.tar.gz
php-4.4.2.tar.gz(注:现在大多是php 5.x了,但系统上还有一个比较古老的oracle8i,因为php 5.x不再提供Oracle 7/8i的连接方式,所以没有升级到php 5.x ,但php 5.x的安装方式是一样的)
上以软件都是放在/usr/local/src目录下
一。安装mysql
mysql的安装稍微烦琐一点
这里选择的是mysql-5.0.75
注:若系统已经安装了mysql的rpm包,可以先卸载原来的mysql,用如下命令:
#rpm -e mysql //如果卸载不掉!提示文件的依赖,可以用下面的命令强制卸载掉.
#rpm -e --nodeps mysql
#cd /usr/local/src //进入此放软件包的目录
#groupadd mysql // 建立mysql组
#useradd mysql -g mysql //建立mysql用户并且加入到mysql组中
#tar -zxvf mysql-5.0.75.tar.gz //解压缩
#cd mysql-5.0.75//进入解开包的目录
#./configure --prefix=/usr/local/mysql --with-charset=gb2312 --with-extra-charsets=gbk,gb2312 // 若/usr/local目录下没有mysql目录,则可先创建
#make
#make install
//以上两个命令时间比较长
#cd /usr/local/mysql //进入到mysql的安装目录
#mkdir var//创建var目录
#mv share/mysql/my-medium.cnf my.cnf//把share/mysql/my-medium.cnf 拷到mysql目录下并改名为my.cnf
修改my.cnf,打开下面几项 innodb_data_home_dir = =/usr/local/mysql/var/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = =/usr/local/mysql/var/
innodb_log_arch_dir = =/usr/local/mysql/var/
#./bin/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --user=mysql //安装库文件,说明:必须用参数--defaults-file指定my.cnf,否则系统用默认的/etc/my.cnf.
#chown -R root . //设定root能访问/usr/local/mysql
#chown -R mysql var //设定mysql用户能访问/usr/local/mysql/var ,里面存的是mysql的数据库文件.这个目录是在/usr/local/mysql/my.cnf中有配置,在mysql_install_db时产生。 #chgrp -R mysql . //设定mysql组能够访问/usr/local/mysql
上面的已经把mysql完全安装完了,也能正常使用了,但还不够,你要将mysql的数据库启动脚本加入系统启动目录,不然,你总不能每次启动服务器后,都要登陆上去手工启动数据库吧,那还不麻烦死。
#cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld
#chmod 755 /etc/rc.d/init.d/mysqld
#cd /etc/rc.d/init.d
#chkconfig --add mysqld//把mysqld加入chkconfig的管理列表中
#chkconfig --level 3 mysqld on//在运行级别3打开mysqld进程,下次重启机器后,mysql将自动重启
#/etc/rc.d/init.d/mysqld start //启动mysql进程,也可以service mysqld start 来启动mysql,还可以/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf --user=mysql &来启动mysql
#/usr/local/mysql/bin/mysqladmin -u root password 'yourpassword' //默认安装密码为空,为了安全你必须马上修改,你修改执行此命令时,一定不要加yourpassword两边的单引号或者双引号,比如你想设定密码是123456 就直接执行 /usr/local/mysql/bin/mysqladmin -u root password 123456 而不要写成 /usr/local/mysql/bin/mysqladmin -u root password '123456' ,这样加引号,你的密码也是带引号的。我以开始就是,加引号,用123456登陆mysql,怎么也进不去,就是提示密码错误,呵呵。
二。安装apache2
这里选择的是httpd-2.0.54
#cd /usr/local/src
#tar -zxvf httpd-2.0.54.tar.gz
#cd httpd-2.0.54
#./configure --prefix=/usr/local/apache2 --enable-module=most --enable-rewrite --enable-shared=max --enable-so
// apache的编译参数很简单,php的编译参数就多了
#make
#make install
//两条命令,注意,最后一个命令是让apache2编译出所有的so文件,apache2以DSO模式运行。
让机器重启后,apache自动重启,
在/etc/rc.d/rc.local脚本里加上如下语句:
/usr/local/apache2/bin/apachectl start
三。安装php
这里选择的是php-4.4.2
#cd /usr/local/src
#tar -zxvf php-4.4.2.tar.gz
#cd php-4.4.2
#./configure --prefix=/usr/local/php4 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-oracle -with-oci8 --with-freetype-dir --enable-trace-avrs --enable-inline-optimization --enable-safe-mode --with-jpeg-dir --with-png-dir --with-zlib-dir --with-bz2 --with-libxml-dir --with-curl --with-pear --with-gd --with-expat --enable-mbstring=all --enable-mbregex --enable-so --enable-ftp --enable-zip --enable-calendar --enable-sockets --with-config-file-path=/usr/local/php4/lib
#make
#make install
#cp php.ini-dist /usr/local/php4/lib/php.ini
注:--with-oracle -with-oci8 是因为系统安装了Oracle 8i,此语句可激活php oracle 8i的函数。