注册 登录
无忧答案网 返回首页

张老师的个人空间 https://www.ap5u.com/?112605 [收藏] [复制] [RSS] 专业远程教辅导

日志

[转载]PHP和MySQL的重新安装

已有 847 次阅读2019-10-22 12:56 |个人分类:技术学习

在Linux下的安装 
这一节所讲述的是在RedHat Linux下安装PHP和MySQL的过程。如果你使用的是Linux的不同版本,或者是使用的是其它Unix-based的操作系统,这些步骤也是非常相似的,即使不是完全相同的。 
作为RedHat Linux的用户,你可能会对下载和安装PHP和MySQL的RPM发布感兴趣。RPM的确是优秀的,预打包的软件的安装非常容易。不幸的是,它们也会限制你选择怎么配置软件。因为这个原因,我认为使用PHP和MySQL的RPM版本所带来的麻烦要比其实际价值来得更多。 
因为有些RedHat Linux的默认配置会自动替你安装PHP,所以第一步就是从你的系统删除旧版本的PHP和MySQL。你需要以超级用户的身份登录来执行下面的命令。注意在下面的命令中,“%”表示shell的提示符,是不需要你输入的。 
% rpm -e mysql 
% rpm -e php 


如果这两个命令或其中一个显示程序没安装,不要担心。如果第二个命令成功执行(也就是说,不显示任何信息),那就证明的确安装了老版本的PHP,你必须完全删除它。用你所习惯的文本编辑器打开Apache的配置文件(通常是/etc/httpd/conf/httpd.conf),寻找下面的这两行内容。这两行通常是分在文件的不同地方,所以如果这两行不在一起,那实在没什么好担心的。 

LoadModule php3_module modules/libphp3.so 
AddModule mod_php3.c 

这两行是用来告诉Apache将PHP作为plug-in模块装入的。当你卸载了这个模块,你还需要删除这两行以保证Apache正常工作。你也可以在这两行的开头加(#)使其成为注释。 
为了确保Apache还在正常工作,你现在必须在没有PHP插件的情况下重启它: 
% /etc/rc.d/init.d/httpd stop 
% /etc/rc.d/init.d/httpd start 


一切安排妥当后,你可以准备下载安装MySQL和PHP了。 

在Linux下安装MySQL 
MySQL for Linux的版本是免费的,你可以从http://www.mysql.com/(或http://www.mysql.com/downloads/mirrors.html中列出的镜像站点之一)下载最后的稳定版(列在下载页的“recommended”中)。你应该获取“tarball source download”的版本,其文件名是mysql-version.tar.gz。 
下载完文件后,你必须确保以超级用户的身份登录进行安装,除非你只想在你自己的home目录下安装MySQL。开始解开下载的文件并进入刚建立的目录中: 
% tar xfz mysql-version.tar.gz 
% cd mysql-version 


下面你需要配置MySQL的安装。除非你有绝对的把握,否则你需要指定安装的目录。我推荐使用 /usr/local/mysql: 
% ./configure --prefix=/usr/local/mysql 

在对显示器和显示器配置进行过检测之后,你最终将返回到命令提示符下。现在你可以编译MySQL了: 
% make 

在编译后,你会重新返回到命令提示符下。现在你可以安装你新编译的程序了: 
% make install 

现在MySQL已经安装好了,但是在使用前,你还得安装它的数据库文件。在你的开始安装的目录下,输入下面命令: 
% scripts/mysql_install_db 

一切都做好后,你可以删除你正在其中工作的目录了,在这个目录中仅仅包括了源程序和安装的临时文件。如果你可能还需要重新安装,你只需要重新解开mysql-version.tar.gz 文件。 
当MySQL安装完成并且可以存储数据后,剩下的工作就是在你的计算机中运行这个服务了。你可以用超级用户或者你自己的用户(如果你是将这个服务安装在你自己的home目录下),但是,最好的方法是设置一个特殊的用户,这个用户只能启动MySQL服务。这会防止有人通过MySQL服务侵占你的系统。你可以使用以下命令建立一个特殊的MySQL用户: 
% /usr/sbin/groupadd mysqlgrp 
% /usr/sbin/useradd -g mysqlgrp mysqlusr 


在默认情况下,MySQL的所有数据库信息都存储在你安装的目录的var子目录下。我们想设置这个目录只有我们的新的MySQL用户能访问。下面的这个命令能完成这个工作(我假定你将MySQL安装到/usr/local/mysql目录): 
% cd /usr/local/mysql 
% chown -R mysqlusr.mysqlgrp var 
% chmod -R go-rwx var 


现在一切都安排好了。在MySQL目录下,输入以下命令: 
% bin/safe_mysqld --user=mysqlusr & 

现在MySQL服务已经被MySQL用户开启,除非你关闭你的计算机,这个服务将一直运行下去(就象Web和FTP服务一样)。要测试这个服务是不是正常运行,输入以下命令: 
% bin/mysqladmin -u root status 

现在应该会显示MySQL服务的一些简单的统计信息。如果你看到的是一个错误信息,那就是出错了。你可以试一下重新安装。 
如果你想让你的MySQL服务在你的系统启动时自动运行(就象你的Web服务那样),你需要作相应设置。在MySQL目录的share/mysql子目录下,你会发现一个叫mysql.server的脚本,将它添加到你的系统的启动事务中就行了。 
如果你已经设定了一个特殊的MySQL用户来启动MySQL服务,你需要编辑mysql.server脚本。用你熟悉的文本编辑器打开它并改变mysql_daemon_user设定,使其指向你上面创建的用户: 
mysql_daemon_user=mysqlusr 

将这个脚本添加到启动事务中是个比较复杂的任务。如果你使用的不是RedHat Linux而且你没有把握做这件事,你最好请教一下了解的人。在RedHat Linux中,执行以下命令(在MySQL目录下)会完成这个工作: 
% cp share/mysql/mysql.server /etc/rc.d/init.d/ 
% cd /etc/rc.d/init.d 
% chmod 500 mysql.server 
% cd /etc/rc.d/rc3.d 
% ln -s ../init.d/mysql.server S99mysql 
% cd /etc/rc.d/rc5.d 
% ln -s ../init.d/mysql.server S99mysql 


现在一切都做好了!要测试这个工作,你可以重启你的系统并对这个服务作出请求,看看它是不是正常工作了。 在Linux下安装PHP 
正如我们前面提到的,PHP并不是一个独立运行的程序。它实际上是你的Web服务(可能是Apache)的一个插件。实际上你有三种方法在Apache中安装PHP插件: 
作为一个CGI程序,Apache每次需要处理PHP页面时运行它。 
作为一个模块编译到Apache程序中。 
在Apache每次启动时作为一个模块载入。 
第一种方法的安装和配置最简单,但是这需要Apache每次接收到PHP页面的请求时就将PHP作为一个程序调用。这肯定会降低你的Web服务器的响应时间,特别是同时接收到不止一个的请求时更是这样。 
第二种方法和第三种方法在性能方面同样的优秀,但是很可能你已经安装好了Apache,你大概不想再去下载一次,并重新编译和重新安装。因此,我们使用第三种方法。 
首先,我们从http://www.php.net/(或者在http://www.php.net/mirrors.php中列出的镜像站点之一)下载PHP的软件包。当我们在写这个教程的时候,PHP 4.0已经基本上成熟了。我自己就试过PHP 4.0-RC2,并没有遇到任何问题。估计最终的稳定版很快将会发布(可能到时候我们这个教程还没写完),我建议你安装最新的版本,这样当正式版出来时你将不需要做任何变动。在这里,我们安装的是3.0,我会注意指出3.0和4.0在安装时可能会有的差别。 
你所下载的文件的文件名将是php-version.tar.gz。我们的第一步是解开这个文件: 
% tar xfz php-version.tar.gz 
% cd php-version 


要将PHP作为Apache可载入的模块安装,你需要Apache的apxs程序。在个程序在绝大多数的Apache的版本中应该都已包括,但是如果你使用的是通过RedHat Linux安装的拷贝,你需要安装Apache高级RPM软件包来获得它。你可以从你的RedHat光盘上找到这个软件包,你也可以从http://www.redhat.com/下载。在默认的情况下,RedHat会将这个程序安装到/usr/sbin/apxs。如果你看到了这个文件,这证明它已经被安装了。 
在这个安装过程中,你必须以超级用户的身份登录,因为其中包括了一些对Apache配置文件的变动。 
下一步是配置PHP安装程序,以使它知道选择哪些选项,并在哪儿寻找它所需要的程序(例如Apache和MySQL)。除非你很有把握,否则你只需输入下面的命令(在同一行中): 
% ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-apxs=/usr/sbin/apxs --enable-track-vars --enable-magic-quotes --enable-debugger 


如果你已经安装了PHP 3.0(不是4.0或更迟的版本),你也需要通过以下附加的参数告诉它在你的系统中从哪儿寻找MySQL: 
--with-mysql=/usr/local/mysql/ 

当经过几屏对显示器的测试后,你会回到命令提示符下。下面两个命令会编译和安装PHP: 
% make 
% make install 


PHP现在已经被安装在/usr/local/php(除非你通过上面./configure的--prefix参数指定了不同的目录),你应该能在同一目录下(除非你通过上面./configure的--with-config-file-path参数指定了不同的目录)找到名为php.ini的配置文件, PHP提供了一个php.ini的模块文件,其文件名是php.ini-optimized (在PHP3.0中是php.ini-dist)。将这个文件拷贝到相应的目录: 
% cp php.ini-optimized /usr/local/php/php.ini 


对于PHP 3.0: 
% cp php.ini-dist /usr/local/php/php.ini 
你暂时不要担心php.ini的优化调整。现在,我们需要确保Apache知道从哪儿找PHP,这样它才能在启动时装载它。使用你熟悉的文本编辑器打开你的Apache httpd.conf 配置文件(在RedHat Linux中,在/etc/httpd/conf/httpd.conf)。 寻找象下面这样的一行: 
LoadModule php4_module lib/apache/libphp4.so 
如果你安装的是PHP 3.0,这一行中的php4换成php3。 你所寻找的应该是一个新的未注释的行(不是以#开头的行),而不是你之前注释掉的那一行。一般情况下,它会和文件中其他LoadModule行显示在一起。当你找到它后,你需要改变路径以使它能够匹配文件中所有其他的LoadModule行。在RedHat Linux下,这意味着将这一行改变为: 
LoadModule php4_module modules/libphp4.so 
然后,寻找以DirectoryIndex开始的行。这一行告诉Apache对于一个给定的目录寻找默认页时所使用的文件名。通常,你会看到index.html和其他一些文件名,你需要将index.php和index.php3添加到这一行: 
DirectoryIndex index.html index.cgi ... index.php index.php3 
最后,到这个文件的最后并添加一个新行来告诉Apache哪些文件的扩展名被看成PHP文件: 
AddType application/x-httpd-php .phtml .php .php3 
一切都做好后,保存改变并重启你的Apache服务。Apache启动时不应该有任何出错信息。 

安装后的设置 
当PHP和MySQL都安装好之后,不管你是在Windows下、Linux下或其他操作系统下,第一件事都是为MySQL设置一个“root口令”。MySQL仅仅允许经授权的用户访问并操作它的数据库中所存储的信息,所以你必须让MySQL清楚谁是经授权的,谁是未经授权的。当MySQL第一次被安装时,它会生成一个叫“root”的用户,该用户可以不用口令访问所有的东西。你的第一个任务就是为root用户设置口令,这样才能保证不会任何人都可以搞乱你的数据库。 
你必须认识到MySQL的重要性,正如Web服务和FTP服务一样,在同一个网络上的任何机器都可以访问它。如果你在一个连接到Internet的计算机上工作,这就意味着这个世界上的任何人都可以试图连接你的MySQL服务器!你必须立即选择一个很难猜的口令! 
要设置MySQL中的root口令,在你安装MySQL的目录的bin子目录下输入下面的命令(包括引号): 
mysqladmin -u root password "your new password" 
要确保MySQL接受这个改变,你必须告诉它重新载入经论证的用户和口令的列表: 
mysqladmin -u root reload 
如果这个命令显示一个错误信息告诉你无法访问,不要担心,这仅仅证明口令已经生效了。 
要测试你的新密码,你可以请求MySQL服务器告诉你有关它的当前的状态: 
mysqladmin -u root -p status 
当有提示时,输入密码。你会看到一些简单的信息,这些信息包含了服务的当前状态。-u root参数告诉程序你想要以“root”用户登入。-p参数告诉程序在连接之前提示你输入你的口令。status参数告诉程序你想要看看系统状态。 
如果你需要关闭MySQL服务器,你可以使用下面的命令。注意这里的-u root和-p参数的含义和上面提到的一样: 
mysqladmin -u root -p shutdown 
现在你的MySQL数据库系统已经安全运行了,现在剩下的工作就是配置PHP了。PHP是使用一个叫php.ini的文本文件配置的。如果你是在Windows下安装PHP的,你应该已经拷贝了php.ini到你的Windows目录。如果你是使用上面的说明在Linux安装PHP的,你应该已经拷贝了php.ini到PHP安装目录下(/usr/local/php)。 
用你熟悉的文本编辑器打开php.ini 并大致浏览一下。绝大多数的设置已经被很好地说明,而且绝大多数的默认设置也可以适应你的要求。只要检查并确认你的配置与下面匹配: 
magic_quotes_gpc = Ondoc_root = <the document root folder of your Web server>extension_dir = <the PHP install directory> 


如果你运行的是PHP 4.0,你还需要检查下面这一行: 
register_globals = On 

如果你是在Windows下运行PHP 3.0,去除开头的“;”来取消下面这一行的注释(4.0不需要): 
extension=php_mysql.dll 
保存php.ini的变动,然后重启你的Web服务器。在Linux下,如果你是以超级用户登录的,你可以重启Apache: 
/etc/rc.d/init.d/httpd restart 
现在万事俱备!现在唯一剩下的就是测试并确认是不是一切OK了(参看你的第一个PHP脚本)。 

如果你的Web主机提供PHP和MySQL 
如果为你提供Web空间的主机已经为你安装并设置了MySQL和PHP,你只希望学会如何使用它们,你需要做的事实在不多。现在你应该和你的主机提供商取得联系,以获取如何访问这些服务的信息。 
特别重要的,你需要获得为你设置的访问MySQL服务的用户名和口令。他们可能已经为你设置了一个空数据库(这会防止你和同一MySQL服务器上的其他用户在数据库上发生混乱),你这时还需要知道这个数据库的名字。 
有两个方法访问MySQL服务。第一种方法是使用telnet登入主机并使用安装MySQL客户端程序(mysql、mysqladmin、mysqldump等)来直接实现和MySQL服务实现互动。第二种方法是在你自己的计算机上安装那些客户端程序并连接上MySQL服务器。你的Web主机可能会支持其中的一种或两种方法,所以你得先问清楚。 
如果他们支持通过telnet登入进行你的工作,你还需要一个通过telnet登入的用户名和口令(这个用户名和口令可能和你访问MySQL服务的不一样)。你得把这两个设置信息都问清楚。 
如果他们支持远程访问MySQL服务,你需要下载一个程序去连接并实现与服务器的互动。这个教程会假设你已经从http://www.mysql.com/下载了一套MySQL客户端程序。这个软件包既可以在Window下运行,也可以在Unix下运行,而且是免费的。包含在软件包中的安装说明非常简单。如果你更喜欢一些图形化界面的,你可以下载类似MySQLWinAdmin for Windows(也可以从http://www.mysql.com/获得)。我推荐你首先学会使用基本的客户端程序,尽管,在这些程序中使用的命令会与在PHP脚本中访问MySQL数据库的脚本很相像。 

你的第一个PHP脚本 
为你讲了那么多安装的事,却还一直没有让你尝试PHP驱动的Web页面的滋味,对我来说实在是不公平的,所以在这里为你安排了一道开胃的小菜。 
打开你所熟悉的文本或HTML编辑器并建立一个叫today.php的新文件。在文件中输入下面的内容: 
<HTML> 
<HEAD> 
<TITLE>Today's Date</TITLE> 
</HEAD> 
<BODY> 
<P>Today's Date (according to this Web server) is 
<?php 
echo( date("l, F dS Y.") ); 
?> 
</BODY> 
</HTML> 


将它保存下来并按通常你放置HTML文件的那样将其放置在你的Web站点上,现在你再通过你的浏览器看看这一页。 
很棒,不是吗?如果你通过你的浏览器显示源文件,你所看到将是规范的HTML文件。在发送到你的浏览器之前,PHP代码(上面的程序中所有在<?php 和?>之间的代码)都已经被Web服务器解释并转换成通常的文本。PHP(以及其他服务器端的脚本语言)的一个优点就是网站浏览者不会知道脚本语言自身。 
不要太多地在意我在这个程序中使用的代码。不久你就会对它很熟悉了。 

结语 
现在所有工作都如期做完了,你应该已经在你的Web服务器上安装好MySQL和PHP了。如果这个小例子不能正常工作(例如,它显示了未加处理的PHP源代码),那肯定是安装中出了什么问题。 
在下一章内,我们会学习关系型数据库的基本知识,并开始使用MySQL来工作。如果你之前没有接触过数据库,我肯定你会大开眼界!  

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-3-29 00:37

Powered by 无忧答案网 X3.5

Copyright © 2018-2020 Design: Ap5u.Com

返回顶部