免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 932 | 回复: 0
打印 上一主题 下一主题

mysql and php and apache setup! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-27 12:52 |只看该作者 |倒序浏览
通过源码包安装mysql
========================================================
1.下载:当前版本是mysql-4.1.9 ,比如我们在/usr/local目录下建一个临时的安装目录mysql,把下载下来的mysql-4.1.9.tar.gz,放到/usr/local/mysql/目录中;
[root@bugkill root]# mkdir /usr/local/mysql
http://www.mysql.com/get/Downloads/....ihostunit.com/
2.解压、编译和安装:
1]解压
[root@bugkill root]# cd /usr
[root@bugkill usr]# cd /local/mysql
[root@bugkill mysql]# ls
mysql-4.1.9.tar.gz
[root@bugkill mysql]#tar zxvf mysql-4.1.9.tar.gz
2]编译和安装:这个地方注意的是,我们要把mysql-4.1.9安装到我们指定的目录中,为了系统和安全和优化,建议把自己用源码包安装的服务器类软件都放在/usr/local 目录里。
[root@bugkill mysql]# cd mysql-4.1.9
[root@bugkill mysql-4.1.9]#
./configure --prefix=/usr/local/mysql --with-mysqld-user=bugkill --with-extra-charsets=all --with-unix-socket-path=/usr/local/mysql/var/mysql.sock
[注]关于configure的选项的一点说明:
--prefix=/opt/mysql 把mysql-4.1.9指定安装到/usr/local/mysql目录中;
--with-extra-charsets=all 对多语言的支持;
--with-unix-socket-path=/usr/local/mysql/var/mysql.sock 这个是指定mysql服务器启动后,联机套接字文件所处的位置和文件名,也就是说,如果mysql服务器成功启动后,就能在/usr/local/mysql/var目录中看到mysql.sock文件。如果看不到,肯定是mysql启动不了。
--with-mysqld-user=bugkill 这个是让mysql服务器也能让系统中普通用户bugkill也能启动mysql服务器。你也可以把bugkill换成你的系统中已经存在的普通用户,比如您的系统中已经存在hancs这个用户,那就把bugkill替换成hancs就行了。用普通用户来启动mysql的好处是:mysql的进程会自己死掉自动退出。当然root用户也可以,不过有时mysql有些进程死了,但不会自动退出,root自己也杀不掉。所以用普通用户就有这样的好处,大多不会出现mysql进程已死,但不会退出的情况;
[root@bugkill mysql-4.1.9]# make
[root@bugkill mysql-4.1.9]# make install
这样就安装完了

3]配制mysql:安装只是第一步,我们还要对mysql进行相应的配制;
一般的情况下mysql要找配制文件my.cnf,位置在/etc目录下,所以我们得把文件my.cnf文件放到/etc/目录下。让mysql服务器启动时能找到它。
我们安装好mysql后,配制文件应该在/usr/local/mysql/share/mysql目录中,配制文件有几个,比如my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf
,不同的流量的网站和不同配制的服务器环境,当然需要有不同的配制文件了。一般的情况下,my-medium.cnf这个配制文件就可以了;
进入/usr/local/mysql这个目录,看一下是不是已经安装好了?
[root@bugkill mysql-4.1.9]# cd /usr/local/mysql/
[root@bugkill mysql]# ls
bin include info lib libexec man mysql-test share sql-bench
我们把/usr/local/mysql/share/mysql这个目录下的my-medium.cnf,复制为my.cnf到/etc目录下。
[root@bugkill mysql-4.1.9]# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
还得创造MySQL授权表, 否则数据库也是启动不了。mysql_install_db,这个命令的用途就是做这个的。mysql的命令都安装到了/usr/local/mysql/bin这个目录中。
[root@bugkill mysql-4.1.9]# /usr/local/mysql/bin/mysql_install_db
运行mysql_install_db命令过后,我们查看/usr/local/mysql就会发现,有个var的目录。这个目录,就是用来装所有数据库的位置,比如我们创建了bugkill的数据库后,就会在/usr/local/mysql/var目录中有bugkill的目录。
4]启动mysql服务器,看下好了没,有时会出现权限方面的错误。
mysql服务器启动,应该是/usr/local/mysql/share/mysql目录中的 mysql.server
启动方法是:
[root@bugkill mysql-4.1.9]# /usr/local/mysql/share/mysql/mysql.server start
启动过后,我们要查看mysql是否启动了,应该用下面的命令;
[root@bugkill mysql-4.1.9]# ps -aux | grep mysqld
如果出现的仅仅是如下的一行,那mysql是没有启动成功。
root 3345 0.0 0.1 5812 648 pts/2 S 17:41 0:00 grep mysqld
我们如何查看错误信息呢?在哪里查看呢?应该到/usr/local/mysql/var目录中去找一个带有.err后缀的文件;
[root@bugkill var]# cd /usr/local/myql/var
[root@bugkill var]# more *.err
可能会出现存在下面的错误信息:
031203 14:49:10 mysqld started
031203 14:49:10 Can't start server : Bind on unix socket: Permission denied
031203 14:49:10 Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
031203 14:49:10 Aborting
031203 14:49:10 /usr/local/mysql/libexec/mysqld: Shutdown Complete
031203 14:49:10 mysqld ended
其实这是权限方面的事,我们把权限设置一下就OK了。我们要设置的权限是/usr/local/mysql/var的目录。要设置为777。
方法是:
[root@bugkill mysql-4.1.9]# chmod 755 /usr/local/mysql/var
另外我们要用beinan这个用户来启动mysqld服务器,当然也得改变一下 /usr/local/mysql/var的属性
[root@bugkill mysql-4.1.9]# chown -R bugkill:bugkill /usr/local/mysql/var
[root@bugkill mysql-4.1.9]# su bugkill
然后再重启mysql服务器。
[root@bugkill mysql-4.1.9]#
/usr/local/mysql/share/mysql/mysql.server start
[root@bugkill mysql-4.1.9]# ps -aux | grep mysql
5]为了让mysql也能让我们刚才编译是指定的普通用户bugkill也能启动mysql服务器。所以我们还要把/usr/local/mysql目录归属到bugkill这个用户手下,在这里,我们要用到chown命令。
[root@bugkill mysql-4.1.9]# chown -R bugkill:bugkill /usr/local/mysql/
如果您编译时,比如用的是系统中已经存在的hancs用户,应该是下面的办法,
[root@bugkill mysql-4.1.9]# chown –R hancs:hancs /usr/local/mysql/
至此mysql已经编译安装完成,下面我们要介绍一点mysql的基本管理,以及最基本的用法。如果您想学的更多的,应该找一下mysql的手册.
3.mysql的一点用法,最基础的的基础
1]如何创建mysqld数据库的管理用户??
数据库安装好后,我们应该为mysql数据库创建一个管理帐号。要把root用户设置为管理员,我们应该运行下面的命令;
[root@bugkill mysql-4.1.9]#
/usr/local/mysql/bin/mysqladmin -u root password 198009
[root@bugkill mysql-4.1.9]#
通过上面的命令,我们可以知道,mysql数据库的管理员是root,密码是198009。
2]如何进入mysql数据库?以mysql数据库管理员root,密码为198009为例;
[root@bugkill mysql-4.1.9]# /usr/local/mysql/bin/mysql -uroot -p198009
输出上面的命令后,出现的是如下的提示;
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 3.23.58
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>;
注意:操作这些命令的时候,应该把mysqld服务器打开。这些新手兄弟早就知道了吧:)
3]如何在数据库中操作命令呢,我想这是mysql手册都有的,我主要说几个要注意的地方。其实我也会不了几个命令。如果自己想学的弟兄,也不是什么难事;在windows中操作过mysql的,其实在这里也是一样的,mysql是跨平台的数据库,用法都是相同的。
1]查看mysql中都有哪些数据库?
代码:
mysql>; show databases;
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.00 sec)
mysql>;
在mysql安装好,设置好管理员后,第一次进入系统,我们用show databases;命令查看数据库的列表,发现有两个数据库,mysql和test,这是系统自建的.
三、安装apache-2.0.54
1.下载:版本是httpd-2.0.54,比如我们在/usr/local目录下建一个临时的安装目录apache,把下载下来的httpd-2.0.54.tar.gz,放到/usr/local/apache/目录中;
也可以wget 后面是你要下载的网址
2.解压:
[root@bugkill local]# cd /usr/local/apache
[root@bugkill apache]# ls
mysql-4.1.9 httpd-2.0.54.tar.gz mysql-4.1.9.tar.gz
[root@bugkill apache]# tar zxvf httpd-2.0.54.tar.gz
3.编译:
[root@bugkill apache]# cd httpd-2.0.54
[root@bugkill httpd-2.0.54]# ./configure --prefix=/usr/local/apache --enable-track-vars --enable-cgi --with-config-file-path=/usr/local/apache/conf
解释:
--prefix=/opt/apache 指定把apahce安装到/usr/local/apache目录中;
--enable-cgi 支持CGI;
--with-config-file-path=/usr/local/apache/conf 指定把apache的配制文件放在/usr/local/apache/conf中;比如httpd.conf配制文件就在这个目录中;
--enable-track-vars 为启动cookie的get/post等追踪功能
如果需要更多的选项,可能通过下面的命令来查看;
[root@bugkill httpd-2.0.54]# ./configure --help
下一步就是make 和make install
[root@bugkill httpd-2.0.54]# make
[root@bugkill httpd-2.0.54]# make install
安装完成后,会在/usr/local目录下生成/usr/local/apache
4.启动apache;如果编译成功后,我们首先想到的是如何启动apache,在这里,我们要明白apache的守护进程是 /opt/apache/bin目录中 apachectl ;
启动apache守护进程;
[root@bugkill httpd-2.0.54]# /usr/local/apache/bin/apachectl start
打开浏览器,输入 http://localhost 就能看到一个apache的欢迎页面了,这表示我们已经成功解决了apache的安装。
5.配制apache,我只做简单的说明,一个网站能简单运行起来就OK
1]配制文件是/usr/local/apache/conf/httpd.conf,如果是用rpm包安装的,应该在/etc/httpd/conf中,如果是其它方法安装的,用locate httpd.conf或find来查找。
2]编译安装的apache默认存放主页的位置应该是/usr/local/apache/htdocs
3]改配制文件时,我们要对原文件进行备份.
[root@bugkill httpd-2.0.54]# cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.confBAK
3.一些重要配制选项的说明:
ServerRoot "/usr/local/apache"
[注]这是ServerRoot指定apache程序所在的的目录,比如日志文件、配制文件等目录,这个不要改动。
Listen 80 [注]apache 默认端口80,如果您想改在别的端口访问,就改一下。最好还是不要改了。比如我要改为8080,那访问网址时,应该用如下的格式
http://10.0.2.30:8080
ServerAdmin root@localhost 注:在这里,把管理员的信箱放上去,比如我的管理信箱是 bugkill@ioz.ac.cn 那就改这句为
ServerAdmin bugkill@ioz.ac.cn
#ServerName new.host.name:80 注:前面有#号就是注销掉了,我们要在下面加一行。比如我没有域名,我就用自己本地机的IP设置为10.0.2.30,所以我在这里就设置了相同的;应该是:当然,这个得与自己机器所设置的IP地址一致,在这里,我的网卡的IP地址,我已经设置成了10.0.2.30
ServerName 10.0.2.30:80
DocumentRoot "/usr/local/apache/htdocs" 这个是存放网页的目录,也就是说,我们应该把网页的目录指定到哪里,这样当访问网址时,就调用这个目录的文件。比如我把存放网页的目录指定到了/usr/local/apache/htdocs,那应该这样写
DocumentRoot "/usr/local/apache/htdocs "
; 注:这句应该和DocumentRoot 的目录保持一致。比如我在上面设置的是/usr/local/apache/htdocs,那在这句中,也应该用这/usr/local/apache/htdocs
也就是:
;
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
;
AddDefaultCharset ISO-8859-1
注:这句是指定网页的默认语言的,如果网页出乱中文乱码,应该改AddDefaultCharset 后面的值为GB2312。也就是改成下面这样的。
AddDefaultCharset GB2312
找到下面的一行在后面加上index.php ,让网站的默认页是index.php也行;
DirectoryIndex index.html index.html.var index.php
其它的都默认就好了,这是最简单的了。其它的也不要改动什么,可以研究下。比如设置请求时间,进程数,这些都比较简单,改一下数字就行了。还有就是设置log存放位置,里面也有选项,其实看一下就明白了,如果我们以实践为基础的话,想把LOG文件放在哪,就放在哪。还有cgi的存放位置等,也可以自己定义;
配制好后,我们就重启apache后,我们就进行相应的处事处事阶段,比如我们要设置存放主页的目录等。
比如我们上面已经把主页目前设置为/usr/local/apache/htdocs,那我们就应该建一个目录到/usr/local/apache/htdocs中
[root@bugkill htodcs]# mkdir grouphome
[root@bugkill htodcs]# chmod 755 grouphome
然后我们把index.html的文件放入到/usr/local/apache/htdocs/grouphome目录中的时候,可能访问不到的情况,这时不要忘记设置权限。
[root@bugkill htodcs]#  chmod -R 755 /usr/local/apache/htdocs/grouphome
然后就重启apache的守护进程httpd
[root@bugkill htodcs]# /usr/local/apache/bin/apachectl restart
查看是否已经启动了apache服务器??
[root@bugkill htodcs]#  ps aux | grep httpd
在浏览器的地址栏中输入10.0.2.30 或者是localhost,这样应该能看到页面了
注:如果是通过root用户,或者其它用户把相应的网站文件复制到网站存放的目录下的,要改变网站存放目录中所有文件的权限,就是上面所说的chmod -R 755 目录名,OK
四、安装php
1.下载php的版本php-4.4.0,可以自己选下载地址还是放到/usr/local/php下面
在/usr/local下建立文件夹php,不要忘记看有权限没。
2.解压:
[root@bugkill php]# ls
php-4.4.0.tar.bz2
[root@bugkill php]# tar zxvf php-4.4.0.tar.bz2
3.编译和安装:注意,本文是通过动态编译安装的php;
[root@bugkill php]#  cd php-4.4.0
[root@bugkill php]#
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-track-vars --enable-force-cgi-redirect --with-config-file-path=/usr/local/php/etc
一点说明:
--prefix=/usr/local/php 指定把php-4.4.0安装到/usr/local/php目录中;
--with-mysql=/usr/local/mysql 指定mysql数据服务器安装的位置;
--with-apxs2=/usr/apache/bin/apxs 这是加入apache中为DSO模块的位置;
-enable-track-vars 为启动cookie的get/post等追踪功能
--with-config-file-path=/usr/local/php/etc 指定php的配制文件存放的目录是/usr/local/php/etc目录,我们安装完成后,也要把php.ini复制到这个目录中来。
安装:
[root@bugkill php-4.4.0]# make
[root@bugkill php-4.4.0]# make install
复制php.ini-dist为php.ini,并存放到/usr/local/php/etc/目录下
[root@bugkill php-4.4.0]# cp php.ini-dist /usr/local/php/etc/php.ini
编辑/usr/local/php/etc/php.ini文件,找到如下的一行
;default_charset = "iso-8859-1"
在这行下面加一行
default_charset = "gb2312"
4.更改apache的配制文件:得加一行,目的是让apache能解释php程序。
找到#AddType application/x-tar .tgz 这行,在下面加一行。前面不要加#号。
AddType application/x-httpd-php .php
找到下面一行在后面加上index.php,这表示网站的默认页也能够为index.php
DirectoryIndex index.html index.html.var index.php
注意:改变了http.conf后,要重启apache服务器,否则不会生效!!
5]然后我们在网站存放的目录下建一个index.php的文件。我们还是用前面apache自己指定网站存放的位置,/usr/local/apache/htdocs/目录。在这个目录中建一个文件index.php,内容是如下的
;
然后改变这个文件的权限
chmod 755 index.php
在浏览器中打入 http://localhost/index.php ,就能看到php的信息了。如果还是出现的是 ; 字样的页面,那就是没有成功 ,可能是您改变了apache的配制文件,忘记了重启apache服务器了,要重启一下试试看。
apache mysql php 配制好后,就重启httpd 和mysql 服务.
———————————————————————————————————————
在增加一个apache服务器实现用户验证
apache服务器已经内置用户验证机制,大家只要适当的加以设置,便可以控制网站的某些部分要用户验证。大家只要跟着我一步步做下来就应该能轻松实现用户验证。
第1步
我们编辑httpd.conf 先找到
;
Options Indexes  FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
;
在下面添加
Alias /phpmyadmin "/usr/local/apache/htdocs/phpmyadmin"
;
AllowOverride AuthConfig #表示进行身份验证
Options Indexes MultiViews
Order allow,deny
Allow from all
;
#AllowOverride AuthConfig 表示进行身份验证 这是关键的设置
第2步
在/usr/local/apache/htdocs/phpmyadmin创建.htaccess文件
vi /usr/local/apache/htdocs/phpmyadmin/.htaccess
AuthName " haoyufu share web"
AuthType Basic
AuthUserFile /usr/local/apache/htdocs/phpmyadmin/.htpasswd
require valid-user
#AuthName 描述,随便写
#AuthUserFile /usr/local/apache/htdocs/.htpasswd
#require valid-user 或者 require user haoyufu 限制是所有合法用户还是指定用户
#密码文件推荐使用.htpasswd,因为apache默认系统对“.ht”开头的文件默认不允许外部读取,安全系数会高一点。
第4步
就是创建apache的验证用户 (这一步你首先要找到你安装apache时候的.htpasswd这个文件)我的机器是安装在/usr/local/apache/conf/bin/
进到这个目录下执行./htpasswd -c /usr/local/apache/htdocs/phpmyadmin/.htpasswd webadmin
webadmin是你想用的用户名
#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数
如果你们想修改密码,可以如下
htpasswd -m .htpasswd webadmin
第5步:
ok,重启apache服务,然后访问 http://你的网站地址/phpmyadmin 如果顺利的话,应该能看到一个用户验证的弹出窗口,只要填入第4步创建的用户名和密码就行
后话,为了服务器的性能,一般不推荐使用AllowOverride AuthConfig或者AllowOverride ALL,因为这会使服务器会不断的去寻找.htaccess,从而影响服务器的效能,一般我们把一些后台管理界面或者其他特殊目录可能需要加验证这个需求。
如果要对AuthUserFile中的用户再进行筛选,比如有两个用户 webadmin
Paul,则要在.htaccess加上
AuthGroupFile /usr/local/apache/htdocs/phpmyadmin/.htgroup
Require group admin
其中.htgroup为用户组的文件名,文件内容格式为
admin:webadmin
Require group admin的意思是当用户属于admin组的时候才允许访问

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8673/showart_133267.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP