学习 Linux 总是断断续续,没有完全钻进去好好学。前段时间一个朋友找我帮忙部署 Postfix 邮件系统,我便意识到了技术方面的落后,虽然 Windows 平台的应用系统部署相对简易而且便于维护,可是他的授权费用却很高,一般要使用 Windows 平台搭建一个网站服务器需要几万块的授权费用,而使用 Linux 授权费用等于零,唯一需要支付的费用就是技术支持,如果外包部署那么此时才产生高昂的费用但还是远比 Windows 低,朋友找我部署 postfix 邮件服务器的费用是6500最低4000,感觉已经是一笔不小的收益了。虽然后来没能把活接下来,但是决定开始正式学习 Linux。入门真的是很艰苦,要摆脱 Windows 的操作理念,只能用一个字形容:“累”!为了找到问题,钻透故障就必须重复重复的安装和配置,已经记不得 Linux 被我安装了多少遍,配置了多少遍,而且还安装过很多发行版。VMwareGSX 真的是帮了我很大的忙,之所以选择 GSX 版本是因为他可以在后台运行,而且没有磁盘写延迟比 WKS 版稳定的要多很多,唯一遗憾的就是不支持差异盘,只能使用快照!

      经过了半个月的学习、实验总算是入门 Linux 了。第一个感觉就是如果把 Linux 搞好,以后的安装完全可以通过远程来做,而且只需要在 putty 上通过复制粘贴就能轻松灌出一个系统并配置好,不过前期的学习中还是要积极地自己敲命令,这样才能加深印象!

      我的学习实验主要以部署自己的网站服务器为蓝本,因为我喜欢 MySQL 喜欢 PHP,他们不但支持跨平台,而且功能、安全、性能、资源方面我都认为是比较好的。经过了多次反复的实验最终完成了部署,现在讲实战经过备忘下来,以后一定能用的上!

此次部署网站服务器设计到的软件:
  1
Redhat Linux Fedora4
  2
Apache-2.0.55
  3
MySQL-4.4.15
  4
Zlib-1.2.2
  5
Freetype-2.1.5
  6
Libpng-1.2.5
  7
Jpegsrc.v6b
  8
GD-2.0.33
  9
GetText-0.12.1
10
ImageMagick-6.2.5-5
11.Imagick-0.9.8.tgz

12
PHP-4.3.10
13
ZendOptimizer-2.6.0

Linux的安装部署
      Linux 的安装到目前为止已经非常简单了,因为此次部署主要用途是网站应用,所以我打算只安装基础核心和开发工具,这样不但节省了硬盘空间还可以自己学习如何编译、安装、配置程序,况且网站也不需要那么多功能,只要在终端界面下操作就可以。为了能够在终端下显示正常,我默认编码选择的是英文并附加了中文支持,使用的是自动分区,组件中只选择了终端下的服务器配置工具和开发工具大概总容量在 1.3G 左右。
      Linux 安装后,停掉不需要的服务,关于 Linux 服务的资料可以参考:http://goxia.maytide.net/p/linuxservices.php

MySQL 的安装配置
      MySQL我是非常认可的数据库服务器之一,我属于微软阵营但是对微软的 ASP 和 SQL2000 真的不敢恭维,所以最终我的个人网站选择了以 PHP+MySQL 为核心的架构,MySQL 不但免费而且他支持手工安装,这样是非常灵活的,因为在系统重新部署后我可以很轻易的恢复之前的 MySQL。安装步骤:

groupadd mysql

useradd mysql -g mysql

tar zxvf mysql-4.4.15.tar.gz

./configure --prefix=/usr/local/mysql --with-charset=gbk

make

make install

scripts/mysql_install_db --user=mysql

chown -R root  .

chown -R mysql var

chgrp -R mysql .

cp support-files/my-medium.cnf /etc/my.cnf

(cp /usr/local/mysql/share/mysql/mysql.server /usr/local/mysql/share/mysql/mysqld

chmod a+x /usr/local/mysql/share/mysql/mysqld)

小注:在启动MySQL服务前我先修改my.cnf配置文件,添加 old_password 参数,这样可以避免修改root密码后,phpmyadmin无法访问MySQL数据库,不过我的做法通常都是在phpmyadmin可以使用后再去修改root帐号的密码,这样更安全!毕竟我是Linux新手,一些达人的解决方法我看着头晕!

/usr/local/mysql/share/mysql/mysqld start

/usr/local/mysql/bin/mysqld_safe --user=mysql &

/usr/local/mysql/bin/mysqladmin -u root -p password 'new_password'

MySQL 的两种自启动方式:
第一种方式:将 MySQL 作为服务,当系统启动时自动加载此服务并自动运行,我个人喜欢这种方式,因为在开机的时候就可以看到 MySQL 是否正常启动。实现方法:

cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld

cd /etc/rc.d/init.d

chkconfig --add mysqld

ntsysv

第二种方式:将 MySQL 作为批处理方式自动运行。实现方式:

vi /etc/rc.d/rc.local

/usr/local/mysql/share/mysql/mysqld start

注:FreeBSD下则为:

#ee /etc/rc.conf

#mysql_enable="YES"

      至此,MySQL 的安装和配置就完成了,感觉还是很简单的!不过他的编译过程真的好慢估计跟我的虚拟机配置有关,希望有一天我能在实体机上真正应用!

Apache 的安装配置
      Apache 全球性能卓越的开源 web 服务器,市场占有率最高!很多大型门户网站都在使用它。之前我选择的是1.0.33版本后来发现编译很麻烦,后来选择2.22.0版朋友又说版本太高不适合我,最后我选择了2.0.55。因为要支持 PHP 所以找了很多安装配置资料查编译参数,后来以网上一篇 Blog 为基础实现了适合自己的编译安装。

tar zxvf httpd-2.0.55.tar.gz

./configure --prefix=/usr/local/apache --with-mysql=/usr/local/mysql --enable-track-vars --enable-cgi --enable-so --enable-mods-shared=all --enable-xml --enable-module=rewrite --with-config-file-path=/usr/local/apache/conf

make

make install

Apache的两种自启动方式:
第一种方式:将Apache以服务方式自运行,这个方法最终还是从 Discuz 官方论坛上找到的,当时找到并实验成功后,那叫兴奋!呵呵,谁叫俺是 Linux 菜鸟!实现方法:

cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd

vi /etc/rc.d/init.d/httpd,在httpd文件的第三行下面,插入以下两句话:
# chkconfig: 345 85 15
# description: Starts and stops the Apache HTTP Server.

chmod +x /etc/rc.d/init.d/httpd

chkconfig --add httpd

chkconfig --list

  成功后,就可以用 service httpd start, service httpd restart, service httpd stop来启动、重启、和终止 httpd service。

第二种方式:以批处理自动运行,实现方法:

vi /etc/rc.d/rc.local

/usr/local/apache/bin/apachectl start

添加Apache启动命令。以上完成后就可以在浏览器里测试一下网站是不是可以打开!

GD 支持的安装配置
      GD 的成功安装和使用还依赖其它的几个组件模块,所以在 GD 安装之前需要先安装好其它组件模块。为此,先建立模块的初始目录:

mkdir /usr/local/modules

mkdir /usr/local/modules/jpeg6

mkdir /usr/local/modules/jpeg6/bin

mkdir /usr/local/modules/jpeg6/lib

mkdir /usr/local/modules/jpeg6/include

mkdir /usr/local/modules/jpeg6/man

mkdir /usr/local/modules/jpeg6/man/man1


      之所以要建立 Jpeg6 的目录是因为在实际编译安装时如果不事先建立Jpeg6的根目录和子目录编译就会失败,郁闷!

依照顺序安装 GD 的其它组件:
A.安装 Zlib

tar xzvf zlib-1.2.2.tar.gz

cd zlib-1.2.2

./configure

make

make install

B.安装 Freetype

tar xzvf freetype-2.1.5.tar.gz

cd freetype-2.1.5

./configure --prefix=/usr/local/modules/freetype

make

make install

C.安装 Libpng

tar xzvf libpng-1.2.5.tar.gz

cd libpng-1.2.5

cp scripts/makefile.std makefile

make test

make install

D.安装 Jpeg6

tar xzvf jpegsrc.v6b.tar.gz

./configure --prefix=/usr/local/modules/jpeg6 --enable-shared --enable-static

make

make install

开始安装 GD 支持

tar xzvf gd-2.0.33.tar.gz

./configure --prefix=/usr/local/modules/gd --with-jpeg=/usr/local/modules/jpeg6 --with-png --with-zlib --with-freetype=/usr/local/modules/freetype

make

make install


      至此,GD 库的支持就算是完成了!

PHP 的安装配置
      此次的 PHP 安装,我加入了 gettext 组件和 ImageMagick 组件支持,如果不需要这两个组件的话可以直接开始 PHP 的编译安装,而我的方式是:
A.安装gettext

tar zxvf gettext-0.12.1.tar.gz

./configure --prefix=/usr/local/gettext

make

make install

B.安装ImageMagick
      因为被很多PHP的相片程序需要这个组件并且都说此组件的功能更加强大,所以最终我决定在我的此次部署中安装它。ImageMagick的安装需要先编译安装一遍PHP得到phpize,之后将ImageMagick For PHP的API拷贝到PHP的源代码对应目录后再次编译安装才能使PHP支持这个组件。为此我先安装的ImageMagick,之后编译安装PHP一遍得到phpize,执行准备工作,最后完成支持ImageMagick的PHP完整编译安装。

tar zxvf ImageMagick-6.2.5-5.tar.gz

cd ImageMagick-6.2.5

./configure --prefix=/usr/local/ImageMagick --enable-shared --enable-lzw --enable-modules

make

make install

C.第一次编译安装PHP(没有对ImageMagick的支持)

tar xzvf php-4.3.10.tar.gz

cd php-4.3.10

./configure --prefix=/usr/local/php --with-gd=/usr/local/modules/gd --with-jpeg-dir=/usr/local/modules/jpeg6 --with-zlib --with-png --with-freetype-dir=/usr/local/modules/freetype --with-mysql=/usr/local/mysql --with-iconv --enable-mbstring --with-apxs2=/usr/local/apache/bin/apxs --with-gettext=/usr/local/gettext --enable-track-vars --enable-ftp --enable-safe-mode --enable-xml --enable-magic-quotes --disable-debug --with-config-file-path=/usr/local/php/etc

make

make install


      小注:按照网上的按照资料,说是编译一次就可以得到phpize,可我执行phpize却提示无效命令,后来才知道phpize所在其它目录,并非像网上那样的操作!也正因此,我是完全编译安装PHP后才找到phpize在/usr/local/php/bin目录下。

D.安装Imagick API For PHP

在PHP源代码目录下执行mkdir ext/imagick

然后把imagick-0.9.8.tgz解压到ext/imagick目录下

运行命令/usr/local/php/bin/phpize

cd php源代码根目录

rm configure

./buildconf --force

E.第二次编译安装PHP(加入了对Imagick的支持)

cd php-4.3.10

./configure --prefix=/usr/local/php --with-gd=/usr/local/modules/gd --with-jpeg-dir=/usr/local/modules/jpeg6 --with-zlib --with-png --with-freetype-dir=/usr/local/modules/freetype --with-mysql=/usr/local/mysql --with-iconv --enable-mbstring --with-apxs2=/usr/local/apache/bin/apxs --with-gettext=/usr/local/gettext --with-imagick=/usr/local/ImageMagick --enable-track-vars --enable-ftp --enable-safe-mode --enable-xml --enable-magic-quotes --disable-debug --with-config-file-path=/usr/local/php/etc

make

make install

cp php.ini-dist /usr/local/php/etc/php.ini


    至此,完成了PHP的编译安装,下来对php.ini文件作修改,以满足需要!

使Apache支持PHP及CGI
      上面的工作全部完成后,还没有真正完成,因为此时的Apache还无法解释PHP和CGI语言,所以要对Apache的配置文件httpd.conf作一下修改才能实现解释PHP和CGI:
A.添加对PHP的支持:

查找AddType application/x-tar .tgz ,也就是关于AddType的配置行,在下面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php-source .phps

找到DirectoryIndex index.html index.html.var
根据需要在index.html前或此行最后添加index.php,这样做是为了使index.php成为默认页。

B.添加对CGI的支持:

查找:#AddHandler cgi-script .cgi

改为:AddHandler cgi-script .cgi .pl


      至此,任务都已经算是完成了。可以稍微休息一下!

ZendOptimizer的安装
      之所以要安装ZendOptimizer是因为一些商业的PHP程序对代码进行了加密,所以必须安装此组件才能正确地运行这些商业程序,比如:Discuz等等。ZendOptimizer的安装非常的简单:

tar zxvf ZendOptimizer-2.6.0-linux-glibc21-i386.tar.gz

cd ZendOptimizer-2.6.0-linux-glibc21-i386

./install.sh

接下来弹出简单的图形安装界面,一路下一步,注意的是到Enter the location of your php.ini file这项配置时填入PHP的配置文件php.ini的文件位置,最终完成安装。
/usr/local/php/etc

----------------------------------------------------------------------------------------------------------------------

      现在总算完成了所有的工作,感觉真的很累但是却很有意思!因为一切都是在文字界面下和键盘操作下完成的,这对一个系统工程师来讲,实际上是一件非常轻松愉快的事情,因为远程操作在此种情形下要比windows人性的图形化操作更加快速便捷,文字显示所要求的带宽远远低于图形化界面;备忘完整的操作命令可以方面的灌出一个系统。

      闲话少说,写一个php的测试文档看看成果吧。

<?

phpinfo();

?>

Linux 下 Apache 以服务级别运行

[ 2005/12/17 18:32 | by gOxiA ]

Apache以服务级别在系统启动时自动启动的方法找了很长时间都没有找到,最近因为在连续学习Linux翻看了很多资料,偶然间从 Discuz 官方论坛上找到了如果将 Apache 加入到服务中的办法:

1.cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd

2.vi /etc/rc.d/init.d/httpd

3.在httpd文件的第三行下面,插入以下两句话:
# chkkconfig: 345 85 15
# description: Starts and stops the Apache HTTP Server.

4.chmode +x /etc/rc.d/init.d/httpd          //把httpd变成可执行文件

5.chkconfig --add httpd

6.chkconfig --list          //也可以使用 ntsysv 命令来检查是否载入到启动服务列表中

成功后,就可以用 service httpd start or restart or stop 来启动、重启、停止 Apache服务。

Linux启动各项服务说明

[ 2005/12/17 12:23 | by gOxiA ]

anacron,类似于cron,定时执行任务

atd,定时批处理,即at的守护进程

xfs,X Windows的字体服务器

gpm,linux text模式下鼠标支持

portmap,用于支持RPC连接,用在NFS、NIS等服务

nscd,负责密码和组的查询,在有NIS服务时需要

ypbind,用于连接NIS/YP服务器

network,激活和关闭网络接口

netfs,NFS、SAMBA等服务使用

apmd,电源管理

acpid,先进电源管理

autofs,光盘软盘自动加载

cpuspeed,降低或加快CPU速度

cups,Unix公共打印支持

irda,红外线标准服务

mdmonitor,与RAID有关的服务

mdmpd,与RAID有关的守护进程

isdn,ISDN设备支持

kudzu,硬件自动监测程序

messagebus,为多个程序之间提供一对一通讯

netdump,远程备份服务器

nfslock,NFS文件锁定功能

ntpd,网络时间服务

pcmcia,笔记本设备支持

rhnsd,RedHat网络服务,系统补丁

rpcgssd、rpcidmapd、rpcsrcgssd,RPC新服务,一般不需要启动
 
 
yum,一个自动更新、安装和删除RPM软件包的管理程序
 
 
networkmanager,减少网络手动设定
 
 
saslauthd,SASL认证服务
 
 
psacct,ac,lastcomm, accton 和sa进程监控工具
 
 
winbind,使用Windows 2000 PDC系统进行认证
 
 
netplugd,网卡监控程序
 
 
rdisc,ICMP寻径协议
 
 
nifd、mdnsresponder,HOWL程序,用于连接APPLE
 
 
auditd,用户空间监控程序
分页: 7/12 第一页 上页 2 3 4 5 6 7 8 9 10 11 下页 最后页 [ 显示模式: 摘要 | 列表 ]