Linux安装Mysql+Apach+PHP+phpMyAdmin 我的系统是redhat as5 建议大家完全安装,以免安装时缺少相关的编译器等等。一、安装mysql(mysql-5.0.21.tar.gz) # tar zxf mysql-5.0.21.tar.gz# cd mysql-5.0.21#./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql/说明: #prefix=/usr/local/mysql mysql安装的目标目录 #sysconfdir=/etc my.ini配置文件的路径 #localstatedir=/var/lib/mysql 数据库存放的路径# make# make install# groupadd mysql# useradd mysql -g mysql# cp support-files/my-medium.cnf /etc/my.cnf#(这个文件夹是原来编译的目录下的)询问你是否要覆盖时,输入"y"#/usr/local/mysql/bin/mysql_install_db --user=mysql# cd /usr/local/mysql 然后设置权限# chown -R root . #设定root能访问/usr/local/mysql# chown -R mysql /var/lib/mysql #设定mysql用户能够访问/var/lib/mysql# chgrp -R mysql /usr/local/mysql #设定mysql组能访问/usr/local/mysql# /usr/local/mysql/bin/mysqld_safe --user=mysql & #安全启动mysql# PATH=$PATH:/usr/local/mysql/bin //让系统找到mysql# export PATH# echo"/usr/local/mysql/lib/mysql">>/etc/ld.so.conf# ldconfig -v开机启动#cp /mysql-5.0.21/support files/mysql.server /etc/rc.d/init.d/mysqld#chmod 700 /etc/rc.d/init.d/mysqld#chkconfig --add mysqld#chkconfig --level 345 mysqld on二、安装apache (httpd-2.0.59.tar.gz)# tar zxf httpd-2.0.59.tar.gz# cd httpd-2.0.59# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-mods-shared=most ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --with-mpm=worker --enable-expires --enable-headers --enable-deflate --enable-authn-default --enable-authn-file --enable-authz-host --enable-authz-groupfile --enable-authz-user --enable-authz-default --enable-auth-basic --enable-include --enable-autoindex --enable-cgid --enable-cgi --enable-actions --enable-userdir --enable-modules=all --enable-mods-shared=all说明: --enable-so选项:让Apache可以支持DSO模式,注意,这里采用的是Apache2.0的语法。如果你的Apache是1.3版本,应改为--enable-module=so。 --enable-mods-shared=most选项:告诉编译器将所有标准模块都编译为DSO模块。你要是用的是Apache1.3,改为--enable-shared=max就可以。 --enable-rewrite选项:支持地址重写功能,使用1.3版本的朋友请将它改为--enable-module=rewrite。# make# make install# vi /usr/local/apache/conf/httpd.conf #启动Apache中的php选项,找到下面两行DirectoryIndex index.php #修改默认启动页DocumentRoot #指定主目录(/usr/local/apache2/htdocs)ServerName 127.0.0.1:80# /usr/local/apache/bin/apachectl start随开机启动#cp /usr/local/apache/conf/httpd.conf /etc/init.d/httpd#cd /etc/rc3.d#ln -s ../init.d/httpd S85httpd#ln -s ../init.d/httpd K85httpd 三、安装php (php-5.1.6.tar.bz2) # tar -jxf php-5.1.6.tar.bz2# cd php-5.1.6# ./configure --with-apxs2=/usr/local/apache/bin/apxs --disable-debug --enable-safe-mode --enable-trans-sid --with-xml --with-mysql=/usr/local/mysql --enable-short-tags --with-gd --with-zlib --with-jpeg --with-png --enable-memory-limit --disable-posix --with-config-file-path=/usr/local/lib --without-sqlite 说明: --with-apxs2=/usr/local/apache/bin/apxs / 这是加入apache中为DSO模块的位置 --disable-debug / # 关闭php内部调试 --enable-safe-mode / # 打开php的安全模式 --enable-trans-sid /--with-xml / # 支持 xml--with-mysql / #支持 mysql--enable-short-tags / #支持PHP的短标记 --with-gd / # 支持GD库 --with-zlib / # 支持 zlib--with-jpeg /--with-png /--enable-memory-limit /--disable-posix /--with-config-file-path=/usr/local/lib 总之复制粘贴就可以了,-_- # ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs 注意:如果说mysql+apache 都是默认安装,configure配置方法 # ./configure --with-apxs2=/usr/sbin/apxs --disable-debug --enable-safe-mode --enable-trans-sid --with-xml --with-mysql=/usr/share/mysql --enable-short-tags --with-gd --with-zlib --with-jpeg --with-png --enable-memory-limit --disable-posix --with-config-file-path=/usr/local/lib# make# make install# cp php.ini-dist /usr/local/lib/php.ini 复制php的配置文件 # cd /usr/local/lib/# vi php.ini 修改配置文件 register_globals = On 一般在414行 max_execution_time = 30 ; // 改为600 (增加处理脚本的时间限制 )max_input_time = 600 ; //最大输出时间600秒 memory_limit = 8M ; // 改为40M (这样才能发10M的附件 )register_global =Onpost_max_size = 2M ; //php可接受的 post 方法大小 2Mfile_uploads = On ; //允许上载文件 upload_max_filesize = 2M ; // 最大上载文件 2Msession.auto_start = 1 ; //session自动启动 如果编译PHP:make出错 configure: error: Cannot find MySQL header files under yes. Note that the MySQL client library is not bundled anymore.解法: 如果不知道 header file 在哪,用 「find / -name mysql.h」命令找出其位置; 如果是自己也有手動安裝 MySQL 套件的話,直接指定該位置。 在 ./configure 下参数指定 header file 的位置(即mysql安装目录),如下 : ./configure --with-apxs2=/usr/local/Apache2/bin/apxs --with-mysql=/usr/local/mysql 四、整合apache和php # vi /usr/local/apache/conf/httpd.conf 修改apache的配置文件 添加 : AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps //注意将这两行添加在其它AddType后面 确保文件中有下面一段,如果没有的话就添加在所有LoadModule之后 LoadModule php5_module modules/libphp5.so 由于我装的版本较高所以是php5,如果是LoadModule php4_module modules/libphp4.so的话也可以 # /usr/local/apache/bin/apachectl start //如果这地方报如下错 httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied 原因:是Linux有一个SELinux保护模式引起的。 解决办法: 1 关闭SELINUX的方法 :vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 需要重启 这个方法可能会对服务器带来风险。 2 不关闭SELINUX的方法 :# setenforce 0# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so# service httpd restart# setenforce 1 server httpd start 报错:启动 httpd:Wed May 07 02:17:20 2008 warn module php4_module is already loaded, skipping 解决办法:查看 # vi /usr/local/apache/conf/httpd.conf 是否有二条相同指令LoadModule php4_module modules/libphp4.so 删除一条,即可 五、安装phpMyAdmin (phpMyAdmin-2.6.0.tar.gz) # tar zxf phpMyAdmin-2.6.0.tar.gz# mv phpMyAdmin-2.6.0 /usr/local/apache/htdocs/ # vi config.inc.php 修改这个文件 $cfg'Servers'$i'host' = 'localhost'; // 改成你数据库服务器的主机名或IP地址; $cfg'Servers'$i'user' = 'root'; // MySQL 数据库的用户名; $cfg'Servers'$i'password' = ''; // MySQL 数据库的密码; 主要修改这几项,保存退出 测试: http://IP/phpMyAdmin-2.6.0 这里可以修改phpMyAdmin-2.6.0这个目录的名字,这样访问比较方便