redhat下搭建php+apache+mysql+vsftp

作者:dugu

         一直不太瞧得起只会装装系统,搭个服务器之类的网管工作,这里绝没有瞧不起网管的意思,只是觉得装系统,搭服务器这种活儿太没有技术含量了。但今天无聊之余,想学学php的时候,发现原服务器的搭建,也不是一件容易的事情(windows例外啦)。花了一天,环境确实搭好了,至于为什么这儿要敲这个命令,那儿要复制那个文件,不懂……自我鄙视下

         系统环境:

[root@redhat root]# cat /proc/version(网上刚刚学习到两招版本查看方法
Linux version 2.4.20-8 (bhcompile@porky.devel.redhat.com) (gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #1 Thu Mar 13 17:54:28 EST 2003
[root@redhat root]# cat /etc/redhat-release
Red Hat Linux release 9 (Shrike)

步骤一:安装vsftp(目的:win和linux之间的文件交换啊,我是在vmware里面跑redhat的)

       一开始,没有想过去安装linux下的ftp server,毕竟windows下,我有一个20cn FTPServer,mini版的,非常小,win下偶的最爱(毕竟偶bt到为了传个小文件啥的,就去装个Serv-U)。可惜的是,redhat下,ftp确实下载回来了,但所有文件都会小上几百~几k的字节,rpm签名自检全部失败,木有办法,只有想着装一个linux下的ftp啦。ms有很多选择:wu-ftpd、proftpd之类好象用的比较广,不过baidu上,还是看到一个vsftp,very secure ftp,名字很喜欢,看了下介绍,感觉比的上win下的Serv-U的功能了。好了,就是它!

版本:vsftpd-2.0.5.tar.gz

下载地址:http://vsftpd.beasts.org/

1、解压:tar xzvf vsftpd-2.0.5.tar.gz

2、源码安装的话,我都是放到这个目录:mv vsftpd-2.0.5 /usr/local/src/

3、这里没有configure,不用编译,直接:make

4、确实是否存在用户nobody、ftp(用户目录要求在/var/ftp中:useradd -d /var/ftp ftp),是否存在目录/var/ftp、/usr/share/empty,不存在的话,建立之。

5、chown root.root /var/ftp、chmod og-w /var/ftp,不知道为什么要设置这两个权限,看到别人的教程如此,先照做

6、安装:make install

此时按照其他的教程,没有其他说明了,但是我遇到了错误:

install: 无法创建一般文件‘/usr/local/man/man8/vsftpd.8’: 没有那个文件或目录
if [ -x /etc/xinetd.d ]; then /

我的解决方法(建立它说得不存在的目录):mkdir -p  /usr/local/man/man8/

7、(这一步,我没有成功,跳过去了,后面的步骤用了不同的安装方法:

vi /etc/xinetd.d/vsftpd
  把disable=yes改成no,保存退出。然后service xinetd restart,OK!新装的vsftp已经可以工作了!
  说明:默认安装的vsftpd是以xinetd的方式启动的。你需要上述操作,一会儿,我们再来讲把它改成独立启动的服务。 )

因为上面这一步我做了后,发现vsftpd仍然没有启动,21端口根本没有开放,网上搜索了下,好像这一步的目的是将vsftp和xinetd服务关联起来,达到启动xinetd就可以启动vsftp的目的,因为没有成功,我又修改回disable=yes

——明白问题出在什么地方了,步骤7之所以失败,是因为当时已经执行了步骤9,导致vsftp不会在xinetd中执行,将步骤9中的listen=YES,删除。然后将步骤7的disable=yes改成no,(如果vsftp已经在运行,kill掉)此时重启service xinetd restart,可以看到21端口开放了!

8、复制配置文件到/etc下:cp vsftpd.conf /etc

9、编辑:vi /etc/vsftpd.conf,在/etc/vsftpd.conf中加入listen=YES(此句意思是vsftp不在inetd中运行)

10、运行/usr/local/sbin/vsftpd &

ok,此时ftp 127.0.0.1,可以登录,不过此时只能匿名登陆,为了可以使用本地用户登陆,做以下修改:

11、vi /etc/vsftpd.conf
  把anonmous_enable=YES改成NO(禁掉匿名链接,不安全)
  把local_enable=YES前的注释去掉(打开本地用户连接的权限)
  把write_enable=YES前的注释去掉(打开本地用户的写权限)
  把local_umask=022前的注释去掉 (用于设定本地用户上载文件的 umask 值. 注意! 如果您要指定一个八进制的数字, 首位应当是 "0", 否则将视作 10 进制数字.)

12、cp RedHat/vsftpd.pam /etc/pam.d/ftp(注意,没有这一步将不能使用本地用户登录!)

13、kill掉vsfptd进程,然后重新运行/usr/local/sbin/vsftpd &

大功告成!当然仅仅指ftp安装完成了,实际配置等,非常繁琐,参考收藏中的文章,链接后面给出)

 

步骤二:安装mysql(这个很简单,rpm包)

版本:

MySQL-server-5.1.7-0.i386.rpm、MySQL-client-5.1.7-0.i386.rpm、MySQL-devel-5.1.7-0.i386.rpm

下载地址:http://www.mysql.cn

1、rpm -ivh MySQL-server-5.1.7-0.i386.rpm,然后启动服务service mysql start(或者mysqld_safe &)

2、rpm -ivh MySQL-client-5.1.7-0.i386.rpm

3、rpm -ivh MySQL-devel-5.1.7-0.i386.rpm

      最后,执行mysqladmin、mysqlshow等,查看是否正确

 

步骤三:安装apache(这个,因为当初安装redhat的时候,已经安装了apache,本来想跳过去,不再安装的,可惜后面遇到问题了,不得已,先卸载旧版本,再安装最新版本

后面安装php遇到的问题:

Sorry, I cannot run apxs.  Possible reasons follow:

1. Perl is not installed
2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is displayed)

开始因为确认perl已经安装,偶就以为是什么apxs的问题,找了一堆自己也看不懂的文章、论坛,慢慢摸索,有了点线索:

    apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。
    因此,要使用这个扩展机制,你的平台必须支持DSO特性,而且Apache httpd必须内建了mod_so模块。apxs工具能自动探测是否具备这样的条件,你也可以自己用这个命令手动探测:
      $ httpd 
-

可惜的是,偶执行httpd -l后,发现存在mod_so:
[root@redhat php-5.2.2]# httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

怎么办?因为不知道redhat当初怎么装的apache,算了卸载,俺自己装一遍:

哪里知道,卸载又有问题了:

执行:rpm -e httpd,结果:

[root@redhat root]# rpm -e httpd
error: Failed dependencies:
        httpd-mmn = 20020628 is needed by (installed) mod_perl-1.99_07-5
        httpd-mmn = 20020628 is needed by (installed) mod_python-3.0.1-3
        httpd-mmn = 20020628 is needed by (installed) mod_ssl-2.0.40-21
        httpd-mmn = 20020628 is needed by (installed) php-4.2.2-17
        libapr.so.0 is needed by (installed) mod_perl-1.99_07-5
        libaprutil.so.0 is needed by (installed) mod_perl-1.99_07-5
        webserver is needed by (installed) webalizer-2.01_10-11
        httpd >= 2.0.40 is needed by (installed) mod_perl-1.99_07-5
        httpd >= 2.0.40 is needed by (installed) mod_python-3.0.1-3
        httpd is needed by (installed) mod_ssl-2.0.40-21
        httpd is needed by (installed) redhat-config-httpd-1.0.1-18

继续找资料,原来如此:

[root@redhat root]# rpm -qa|grep httpd
httpd-manual-2.0.40-21
httpd-2.0.40-21
redhat-config-httpd-1.0.1-18

然后一个一个卸载掉:

[root@redhat root]# rpm -e httpd-manual-2.0.40-21

[root@redhat root]# rpm -e redhat-config-httpd-1.0.1-18
warning: /etc/alchemist/namespace/apache/local.adl saved as /etc/alchemist/namespace/apache/local.adl.rpmsave

[root@redhat root]# rpm -e httpd-2.0.40-21
error: Failed dependencies:
        httpd-mmn = 20020628 is needed by (installed) mod_perl-1.99_07-5
        httpd-mmn = 20020628 is needed by (installed) mod_python-3.0.1-3
        httpd-mmn = 20020628 is needed by (installed) mod_ssl-2.0.40-21
        httpd-mmn = 20020628 is needed by (installed) php-4.2.2-17
        libapr.so.0 is needed by (installed) mod_perl-1.99_07-5
        libaprutil.so.0 is needed by (installed) mod_perl-1.99_07-5
        webserver is needed by (installed) webalizer-2.01_10-11
        httpd >= 2.0.40 is needed by (installed) mod_perl-1.99_07-5
        httpd >= 2.0.40 is needed by (installed) mod_python-3.0.1-3
        httpd is needed by (installed) mod_ssl-2.0.40-21
        httpd is needed by (installed) redhat-config-httpd-1.0.1-18

还是有一个没有卸载掉,how to?继续找资料,原来……太狠了,将所有的依存的服务也卸载掉:

[root@redhat root]# rpm -e mod_perl-1.99_07-5
[root@redhat root]# rpm -e mod_python-3.0.1-3
[root@redhat root]# rpm -e mod_ssl-2.0.40-21
[root@redhat root]# rpm -e webalizer-2.01_10-11
[root@redhat root]# rpm -e httpd-2.0.40-21
warning: /etc/httpd/conf/httpd.conf saved as /etc/httpd/conf/httpd.conf.rpmsave
      ok,卸载成功,不急,卸载过程中,发现redhat已经安装过php环境,晕,不过为了学习php安装,咱也将其卸载掉,过程如下:

[root@redhat root]# rpm -qa|grep php
php-ldap-4.2.2-17
php-imap-4.2.2-17
php-4.2.2-17
[root@redhat root]# rpm -e php-ldap-4.2.2-17
[root@redhat root]# rpm -e php-imap-4.2.2-17
[root@redhat root]# rpm -e php-4.2.2-17
[root@redhat root]# whereis php
php:

然后重新安装apache。

前面的步骤很无奈,不过学会了卸载rpm的安装包,值!

版本:httpd-2.2.4.tar.gz

下载地址:http://www.apache.org

1、tar xzvf httpd-2.2.4.tar.gz

2、mv httpd-2.2.4 /usr/local/src

3、cd /usr/local/src/,执行:configure --prefix=/etc/httpd  --enable-module=so (为了不必每次configure都要执行./configure,可以在环境变量中,添加当前路径:vi /root/.bash_profile,修改PATH=xxxx:.(就是添加一个冒号和点号))

4、执行:make

5、执行:make install

6、启动服务:/etc/httpd/bin/apachectl start,这里会有提示:没有域名之类的信息,可以到:vi /etc/httpd/conf/httpd.conf,修改ServerName 10.0.0.x:80即可

7、为了便于在webmin这类管理工具管理apache,可以:cp /etc/httpd/bin/httpd /usr/sbin/

ok,apache安装大功告成!

步骤四:安装图形开发库(n麻烦,而且工具下载n繁琐)

版本:一共要安装5个,而且顺序不可颠倒

gd-2.0.33.tar.gz
freetype-2.2.1.tar.gz
jpegsrc.v6b.tar.gz
libpng-1.2.12.tar.gz
libxml2-2.6.26.tar.gz
zlib-1.2.3.tar.gz

下载地址(非官方,给一个收集比较全地址):http://down.itlearner.com/class/Site.shtml

1、先装jpegsrc.v6b.tar.gz:,装之前locate libjpeg.a,找不到这个文件,安装完成后,可以找到这个文件

(步骤tar xzvf jpegsrc.v6b.tar.gz,mv jpeg-6b /usr/local/src/,configure,make,make install(这里,会遇到报错“无法创建一般文件xxx”,此时直接mkdir -p xxx,然后make install即可),make install-lib)

2、再装freetype-2.2.1.tar.gz:

(步骤tar xzvf freetype-2.2.1.tar.gz,mv freetype-2.2.1 /usr/local/src/,configure(这里会看到最后一行显示“configure Nothing to be done for `unix'.”不要担心,执行echo $?,如果显示0,表示没有问题,继续后面的步骤),make,make install)

3、然后装zlib-1.2.3.tar.gz:

(步骤tar xzvf zlib-1.2.3.tar.gz,mv zlib-1.2.3 /usr/local/src/,configure,make,make install)

4、在然后装libpng-1.2.12.tar.gz:

(步骤tar xzvf libpng-1.2.12.tar.gz,mv libpng-1.2.12 /usr/local/src/,configure(这个1.2.12版本存在configure,看到网上教程中1.2.5不存在configure,需要将cp usr/local/src/libpng-1.2.12/scripts/makefile.gcmmx makefile),make,make install)

5、此时装gd-2.0.33.tar.gz:

(步骤tar xzvf gd-2.0.33.tar.gz,mv gd-2.0.33 /usr/local/src/,configure,make,make install)

6、最后装libxml2-2.6.26.tar.gz:

(步骤tar xzvf libxml2-2.6.26.tar.gz,mv libxml2-2.6.26 /usr/local/src/,configure,make,make install)

ok,图形库大功告成!

步骤五:安装php(注意redhat可能已经安装过了,前面有讲如何卸载的)

版本:php-5.2.2.tar.gz

下载地址:http://ww.php.net

1、tar xzvf php-5.2.2.tar.gz

2、mv php-5.2.2 /usr/local/src/

3、configure  --prefix=/usr/local/php --with-apxs2=/etc/httpd/bin/apxs --with-gd --with-jpeg-dir --with-ttf --with-zlib-dir --with-png-dir --with-mysql --enable-track-vars,此时,configure到最后会有报错:make: *** [libphp5.la] Error 1,解决方法,执行:

configure  --prefix=/usr/local/php --with-apxs2=/etc/httpd/bin/apxs --with-gd --with-jpeg-dir --with-ttf --with-zlib-dir --with-png-dir --with-mysql-dir --enable-track-vars

上面就是将--with-mysql后面添加了-dir,至于为什么这样?我也不知道……

4、make (执行完一遍后,在执行一遍make测试下,应该看到两行信息:诸如build complete之类,表示make成功)

5、make install

6、执行:libtool --finish /usr/local/src/php-5.2.2

7、chmod 755 /etc/httpd/modules/libphp5.so

8、cp php.ini-dist /usr/local/php/lib/php.ini

ok,php安装成功!可以到apache的etc/httpd/htdoc/目录下,vi ../conf/httpd.conf,配置LoadModule 看到是否存在LoadModule php5_module       modules/libphp5.so,添加:AddType application/x-httpd-php .php,AddType application/x-httpd-php-source .phps,添加DirectoryIndex index.php

最后在htdoc目录下,建立一个index.php执行一遍即可

步骤六:安装Zend Optimizer

版本:ZendOptimizer-3.2.8-linux-glibc21-i386.tar.gz

下载地址:http://www.zend.com/

1、tar xvzf ZendOptimizer-3.2.8-linux-glibc21-i386.tar.gz

2、mv ZendOptimizer-3.2.8-linux-glibc21-i386 /usr/local/src/

3、install.sh,按照提示输入路径等即可

4、执行phpinfo(),查看Zend版本是否正确

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值