| 我们最常讲的『架站』其实就是架设一个 Web 网站啦!那么什么是 Web 呢?说穿了,就是全球信息广播的意思(World Wide Web),或者也可以称之为互连网吧!这个是我们目前的人类最常使用的 Internet 的协定之一啦!通常说的上网就是使用 WWW 来查询使用者所需要的信息啰!^_^!目前的 WWW 服务器主要分为两大阵营,分别是 Unix-Like 上面的 Apache 与 Windows 上面的 IIS ,就以价格效能比来说,当然是 Linux 上面的 Apache 最棒啦!至于 WWW 服务器的类型可以分为静态与动态,而这些动态的网站里面,很多都是以目前的当红炸子鸡 Linux + Apache + MySQL + PHP 架设而成的,简称为 LAMP 的咯!这种动态 WWW 主机很有趣喔!他可以沟通 Server 与 Client 端的数据呢!赶紧来进入这个 LAMP 的世界吧! |
| 1. 查询可以使用:
[root@test root]# rpm -qa | grep gcc libgcc1-3.2-1mdk gcc-cpp-3.2-1mdk gcc-3.2-1mdk gcc-c++-3.2-1mdk 2. 移除 MySQL
可以使用:
|
| 0. 查询是否已经有
mysql 的账号:
[root@test root]# grep mysql /etc/passwd # 如果没有 mysql 出现的话,那么请建立一个名为 mysql 的账号! # 这个是要给 MySQL 的 Process 使用的!为了安全性,请务必建立! # 如果之前已经建立过了,那么底下这一步建置的工作就可以跳过, # 直接到 1. 解压缩与建立连结 去安装啰! [root@test root]# groupadd -g 315 mysql # 因为我刚好没有 315 这个 GID ,而 mysql 是系统使用的账号,我希望他在 500 以内, # 因此就选择 315 做为 mysql 的 gid 啰!你当然可以变更这个数字, # 使用小于 500 的 GID 做为系统的账号之用只是惯用的习惯而已啦! ^_^ [root@test root]# useradd -u 315 -g mysql -d /usr/local/mysql/data -M mysql # 我使用 315 做为 mysql 这个账号(与群组同名!)的 UID 啦! # 并且建立他的家目录在 /usr/local/mysql/data 里面! 1. 解压缩与建立连结: [root@test root]# cd /usr/local <==因为已经是 binary 的套件,不用 make ! [root@test local]# tar -zxvf /root/mysql-3.23.57-pc-linux-i686.tar.gz ...(讯息略过).... # 最后会产生一个目录: mysql-3.23.57-pc-linux-i686 [root@test local]# ln -s mysql-3.23.57-pc-linux-i686 mysql # 通常习惯将 MySQL 安装在 /usr/local/mysql 当中!但为了未来升级版本的确认, # 官方网站上面建议使用连结的方式来进行 MySQL 的使用! 3. 档案权限修正: [root@test local]# mkdir -p /var/lib/mysql [root@test local]# chown -R mysql:mysql /var/lib/mysql [root@test local]# chown -R root:mysql /usr/local/mysql-3.23* [root@test local]# chown -R mysql:mysql /usr/local/mysql/data # 修改成较为安全,且数据库所属人为 mysql 喔!特别留意啦! 4. 建立数据库: [root@test local]# cd mysql [root@test mysql]# ./scripts/mysql_install_db [root@test mysql]# chown -R mysql:mysql /var/lib/mysql [root@test mysql]# chown -R mysql:mysql /usr/local/mysql/data # 这个步骤会在 /usr/local/mysql/data 里面建立好 MySQL 的数据库! # 由于 /usr/local/mysql/data 是 MySQL 的数据库目录,所以很重要喔!请多加备份! # 不过,在新版的 3.23.57 这个版本当中,数据库竟然移到 /var/lib/mysql 去了! # 还真是有点奇怪吶!另外,根据诸多网友的回报,发现在建立数据库之后, # 还需要重新设定一下数据库的所属群组与拥有者喔! 5. 启动测试: [root@test mysql]# /usr/local/mysql/bin/safe_mysqld --user=mysql & Starting mysqld daemon with databases from /usr/local/mysql/data # 注意:这个时候 mysql 会建立一个 socket file 在 /var/lib/mysql/mysql.sock 喔! # 未来我们在使用 MySQL 的各种指令功能时,都需要使用到这个 socket file, # 但是 MySQL 偏偏预设的 socket file 是在 /tmp 底下,怎么办?!真讨厌, # 我们可以透过这个简单的动作来欺骗我们的 MySQL 喔! [root@test mysql]# ln -s /var/lib/mysql/mysql.sock /tmp/ # 如果还是找不到 mysql.sock 时,请使用 find / -name mysql.sock # 来找出这个档案的绝对路径吧! [root@test mysql]# netstat -tl | grep mysql tcp 0 0 *:mysql *:* LISTEN [root@test mysql]# ps -aux | grep mysql mysql 6394 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/ mysql 6395 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/ mysql 6396 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/ root 6422 0.0 1.1 2408 732 pts/3 S 16:20 0:00 grep mysql # 呵呵!这样就应该是搞定了! MySQL 已经在监听要求啰!而且所有人为 mysql ! 6. 开机后立即启动! [root@test mysql]# vi /etc/rc.d/rc.local # 将底下这一行加入这个档案的最后面一行喔! cd /usr/local/mysql; /usr/local/mysql/bin/safe_mysqld --user=mysql & # 这样一来,每次开机就可以自动的启动 MySQL 啰! # 注:由于很多网友回复之问题中发现,如果没有加上 cd /usr/local/mysql 时, # 会导致无法自动于开机的时候启动,因此,请大家记得加上这个动作呢! 7. 进阶设定内容: # 由于我们 MySQL 放置的地点在 /usr/local/mysql 内,这个目录并不在 PATH 当中! # 且 man page 亦不在 MANPATH 里面,所以,我们要手动的帮他加入啰! [root@test mysql]# vi /etc/profile # 大约在 33 行的地方,而且每个 distribution 设定的地方都不太相同! # 请找到 export PATH ... 那一行,以 Mandrake 9.0 来说,大概在 33 行左右, # 新加入一行: PATH="$PATH":/usr/local/mysql/bin export PATH ....(略).... [root@test mysql]# vi /etc/man.config( 有的 distribution 为 /etc/man.conf ) # 可以在这个档案的任何地方加入底下这一行: MANPATH /usr/local/mysql/man # 就可以具有 man page 的能力了! 8. 建立 MySQL 的 root 账号密码! [root@test mysql]# /usr/local/mysql/bin/mysqladmin -u root password 'your.password' # 请建立密码!为了安全起见!否则你的 MySQL 数据库,将预设所有人都可以登入喔! # 注意,如果执行上面的指令时,竟然出现如下的错误: ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) # 这表示 mysql 找不到 mysql.sock 这个档案!我们上面不是提到 mysql.sock 的 # 绝对路径吗?假设是 /var/lib/mysql/mysql.sock 好了,那么我们可以: [root@test mysql]# /usr/local/mysql/bin/mysqladmin -u root \ > -S /var/lib/mysql/mysql.sock password 'your.passwd' # 当然也可以进行档案的连结阿! ln -s /var/lib/mysql/mysql.sock /tmp [root@test mysql]# /usr/local/mysql/bin/mysql -u root -p \ > [-S /var/lib/mysql/mysql.sock] # 后面 [] 的内容不一定需要!且 [] 不要打! Enter password: <==这里输入你刚刚建立的那个密码喔! Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 3.23.57 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> exit
# 这样就是可以确认已经可以连接到你的
MySQL 数据库了!请特别留意,有的朋友没有移除
|
| 0. 解压缩:
[root@test root]# cd /usr/local/src [root@test src]# tar -zxvf /root/php-4.3.3.tar.gz # .....(讯息略).... # 最后会产生一个 /usr/local/src/php-4.3.3 的目录 1. 搜寻设定内容: [root@test src]# cd php-4.3.3 [root@test php-4.3.3]# ./configure --prefix=/usr/local/php4 \ >--with-apxs2=/usr/local/apache2/bin/apxs \ >--with-mysql=/usr/local/mysql \ >--with-config-file-path=/usr/local/php4 # 上面请特别注意到: --prefix=/安装的路径:这个项目在设定未来你的 Apache 安装在那个目录当中?! --with-apxs2 :这个则是 Apache2 专用的选项喔!请针对您的主机情况设定! --with-mysql :这个则是针对 MySQL 啦!当然啦,就写我刚刚搞定的咚咚! --with-config-file-path:这个又是什么?呵呵!是 php 的设定档 php.ini 放置的目录啦! # 其它的额外项目请使用 ./configure --help 来察看吧! 2. 开始编译与安装: [root test php-4.3.3]# make; make install # 如果没有错误的话,那么在 /usr/local/php4 这个目录当中就已经将你的 php 安装好了! 3. 转存 PHP 基本组态档案: [root@test php-4.3.3]# cp php.ini-dist /usr/local/php4/php.ini # 这个路径与你刚刚在 ./configure 当中那个 --with-config-file-path 设定有关! 4. 启动 Apache 当中的 PHP 选项: [root@test php-4.3.3]# vi /usr/local/apache2/conf/httpd.conf # 找到底下两行: LoadModule php4_module modules/libphp4.so <==大约在 231 行处 AddType application/x-httpd-php .php <==这一行可以在 847 行处自行增加! 5. 重新启动 Apache : [root@test php-4.3.3]# /usr/local/apache2/bin/apachectl stop [root@test php-4.3.3]# /usr/local/apache2/bin/apachectl start 6. 测试 PHP 是否是正常工作的: [root@test php-4.3.3]# cd /usr/local/apache2/htdocs [root@test htdocs]# vi test.php <?php phpinfo( ); ?> # 以我的测试主机为例,我的测试主机 IP 为 192.168.1.2 ,所以随便以一部可以联机的PC, # 在网址列输入 http://192.168.1.2/test.php # 或者直接在本机的 X-Window 上面输入 http://localhost/test.php 亦可! |

| [root@test
root]# cd /usr/local/apache2/conf
[root@test root]# vi httpd.conf ServerRoot "/usr/local/apache2"
PidFile logs/httpd.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests
100
KeepAliveTimeout
15
<IfModule
prefork.c>
Listen 80
User nobody
ServerAdmin
root@localhost
#ServerName
new.host.name:80
UseCanonicalName
Off
AddDefaultCharset
ISO-8859-1
HostnameLookups
Off
|
| [root@test
root]# cd /usr/local/apache2/conf
[root@test root]# vi httpd.conf DocumentRoot
"/usr/local/apache2/htdocs"
<Directory
/>
<Directory
"/usr/local/apache2/htdocs">
UserDir public_html
DirectoryIndex
index.html index.html.var
Alias /icons/
"/usr/local/apache2/icons/"
Alias /manual
"/usr/local/apache2/manual"
ScriptAlias
/cgi-bin/ "/usr/local/apache2/cgi-bin/"
|
| [root@test
root]# cd /usr/local/apache2/conf
[root@test root]# vi httpd.conf LoadModule php4_module
modules/libphp4.so
ErrorLog logs/error_log
|
| [root@test
root]# /etc/rc.d/init.d/httpd start
(启动)
[root@test root]# /etc/rc.d/init.d/httpd stop (关闭) |
| [root@test
root]# /usr/local/apache2/bin/apachectl start
(启动)
[root@test root]# /usr/local/apache2/bin/apachectl stop (关闭) |
| [root@test
root]# netstat -tuln | grep ':80'
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN |
| [root@test
root]# vi /var/log/httpd/error_log
[Thu Dec 26 20:16:53 2002] [notice] Apache/2.0.43 (Unix) PHP/4.2.3 configured -- resuming normal operations |
| [root@test
root]# ll /etc/httpd/conf.d/*.conf
-rw-r--r-- 1 root root 814 Feb 10 2003 /etc/httpd/conf.d/perl.conf -rw-r--r-- 1 root root 459 Jun 30 04:35 /etc/httpd/conf.d/php.conf -rw-r--r-- 1 root root 1276 Feb 20 2003 /etc/httpd/conf.d/python.conf -rw-r--r-- 1 root root 11140 Jul 31 23:40 /etc/httpd/conf.d/ssl.conf |
| [root@test
root]# cd /etc/httpd/conf.d
[root@test conf.d]# mv ssl.conf ssl.conf.bak [root@test conf.d]# /etc/rc.d/init.d/httpd restart |
| [test@test
test]$ cd
# 回到自己的家目录
[test@test test]$ mkdir public_html [test@test test]$ chmod 755 public_html [test@test test]$ chmod 755 /home/test # 在你的客户端家目录中建立了一个 public_html 的目录, # 并将此目录的权限改成可以让其它人观看,注意喔, apache # 预设是 public_html ,但是如果你在 httpd.conf 这个档案中 # 改变了目录名称,则必须作适当的修正喔! |
| [root@test
root]# cd /usr/local/apache2/htdocs
[root@test htdocs]# ln -s /home/test/public_html test |
| [root@test
root]# vi /usr/local/apache2/conf/httpd.conf
Alias /test/ "/home/test/public_html/" <Directory "/home/test/public_html"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> [root@test root]#
/usr/local/apache2/bin/apachectl
stop
|
| [root@test
root]# vi /usr/local/apache2/conf/httpd.conf
方法一:
|