linux下的apache2 + mysql5 + php5 + gd2 源码完整安装详解(原创)
呵呵 好久没有来论坛发帖子了 。。 (*^__^*) 嘻嘻…… 有点对不起猪猪哦 。 以上的文章是我在工作中配置的一台linux 环境 其中是在网上收集的资料 里面的写的很详细 。 包括出现错误的解决办法。 算是一个原创的吧 。 好了 开始喽
========================================================================================================= 1.安装mysql
shell> groupadd -g 500 mysql shell> useradd -u500 -gmysql -M mysql shell> tar -xzf mysql.**.tar.gz shell> cd mysql.** shell> ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock shell> make shell> make install shell> cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql //开机启动mysql shell> cp support-files/my-medium.cnf /etc/my.cnf shell> cd /usr/local/mysql shell> bin/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql var shell> chgrp -R mysql . shell> bin/mysqld_safe --user=mysql &
注意直接执行后会出现下面错误: Starting mysqld daemon with databases from /usr/local/mysql/data STOPPING server from pid file /usr/local/mysql/data/localhost.localdomain.pid 070514 19:15:13 mysqld ended 需执行 shell> chown -R mysql.mysql data
修改root密码: use mysql update user set Password=password("123456") where User="root"; delete from user where User="";
2.apache安装 shell> tar -xzf httpd-2.2.4.tar.gz shell> cd httpd-2.2.4 shell> ./configure --prefix=/usr/local/apache2 --enable-rewrite=shared --enable-speling=shared --enable-module=so shell> make shell> make install
3.iconv安装 shell> ./configure --prefix=/usr/local/iconv shell> make shell> make install
4.gd部分安装 zlib包 shell> ./configure --prefix=/usr/local/zlib shell> make check shell> make install
libpng包(支持PNG) shell> ./configure --prefix=/usr/local/libpng shell> make shell> make install
jpeg-6b包(支持jpg格式) shell> ./configure --prefix=/usr/local/jpeg-6b --enable-share --enable-static shell> make test shell> make shell> make install shell> make install-lib 注:1:在configure的时候会出现/usr/local/jpeg-6b/bin/djpeg 没有这个目录 我们手工的添加就可以了 mkdir –p /usr/local/jpeg-6a/bin/djpeg 2 : configure的时候也出现 /usr/local/jpeg-6b/man/man1/cjpeg.1 同样 我们 手工的建立一个 touch /usr/local/jpeg-6a/man/man1/cjpeg.1
freetype包(字体支持) shell> ./configure --prefix=/usr/local/freetype shell> make shell> make install
最后安装gd包 shell> ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg-6b --with-zlib-dir=/usr/local/zlib --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype shell> make shell> make install
make时会出现 make[2]: *** [gd_png.lo] Error 1 make[2]: Leaving directory `/tmp/gd-2.0.26gif' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/gd-2.0.26gif' make: *** [all] Error 2 需要复制/usr/local/libpng/include/目录下的cp /usr/local/libpng/include/pngconf.h /home/jong/tmp/gd-2.0.34 cp /usr/local/libpng/include/png.h /home/jong/tmp/gd-2.0.34 当make 时出现 configure.ac:64: error: possibly undefined macro: AM_ICONV 将第二张盘 中的 gettext 文件安装上去 Rpm –ihv gettext-0.14.1-13.i386.rpm 就可以解决这个问题。
5.安装php
shell> ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-gd=/usr/local/gd2 --with-jpeg-dir=/usr/local/jpeg-6b --with-zlib-dir=/usr/local/zlib --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --enable-trace-vars -with-mysql=/usr/local/mysql -with-iconv=/usr/local/iconv --enable-mbstring=all --with-curl --enable-track-vars --with-DBA --enable-mbstr-enc-trans --enable-mbregex --with-config-file-path=/usr/local/php --with-xml --with-gettext shell> make shell> make install shell> cp php.ini-dist /usr/local/php/php.ini 在make 的时候会出现 “configure: error: libjpeg.(a|so) not found” 在系统的盘的第二张光盘里面 rpm –ihv libjpeg-devel-6b-33.i386.rpm 把这个包安装上去就可以解决这个问题。
编辑apache配置档 shell> cd /usr/local/apache2/conf shell> vi httpd.conf 在LoadModule php4_module modules/libphp5.so 添加AddType application/x-httpd-php .php
OK,基本的安装已经完成,如果重新起动APACHE出现:/usr/local/apache2/bin/apachectl start Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp4.so into server: /usr/local/apache2/modules/libphp4.so: cannot restore segment prot after reloc: Permission denied 那就要按照下面的方法解决:
编辑/etc/selinux/config,找到这段: # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=enforcing
把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为: SELINUX=disabled
|