找回密码
 注册
【阿里云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折华为云精选云产品特惠糖果主机Jtti,新加坡服务器,美国服务器,香港服务器,海外云服务器
查看: 1670|回复: 39

[原创教程]从源码构架Apache+php+MySQL+phpMyAdmin环境

[复制链接]
发表于 2006 年 8 月 8 日 21:41:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
由于调试东西弄得太乱,昨天把MAC重装了,因此重新在机器架了Apache+php+MySQL+phpMyAdmin环境,顺便做了记录,就发出来了,希望对新手有帮助。

该教程的偶blog版本 http://eworld.net.ru/drupal/node/26
只发金光,转载请注明

绝对原创,版主也考虑射一精吧。。。

使用的包及版本
Apache         : httpd-2.2.3.tar.gz
MySQL          : mysql-5.0.24.tar.gz
PHP              : php-5.1.4.tar.gz
phpMyAdmin : phpMyAdmin-2.8.2.1.tar.gz

适用系统
UNIX,Linux,FreeBSD等一切支持 make , make install 的系统

为了方便管理起见,我把以上所有包都装在 /apache2 里

STEP 1:安装Apache服务器

1、下载解包Apache 2源码
下载目前最新版本的Apache 2包并解压,$是bash shell的标志,不必输入。
$ curl -O http://apache.mirrors.esat.net/httpd/httpd-2.2.3.tar.gz (也可用wget或其他)
$ tar -xzf httpd-2.2.2.tar.gz (mac的darwin环境请用gnutar代替tar)


2、配置编译并安装Apache2
如下代码,我把他装在/apache2,这样比较方便。
$ cd httpd-2.2.3
$ sudo ./configure \
$ --prefix=/apache2 \  (如果想装到其他目录请更改这里/apache2为你要的目录,不要此行参数则装到默认目录)
$ --enable-module=most \
$ --enable-shared=max
$ make   (编译)
$ sudo make install  (安装)


STEP 2:安装MySQL服务器

1、下载解压MySQL源码
http://dev.mysql.com/downloads/mysql/5.0.html底部下载适合你系统的代码包
我是Darwin系统,因此选用Tarball包
$ curl -O http://mirror.mysql-partners-jp. ... mysql-5.0.24.tar.gz  (Tarball包下载)
$ tar -xzf mysql-5.0.24.tar.gz


2、编译安装Mysql
我把mysql装在/apache2/mysql,同样你可以更改或适用默认的/usr/local/mysql
$ sudo mkdir /apache2/mysql
$ cd mysql-5.0.24
$ ./configure --prefix=/apache2/mysql \ (制定安装路径)
$ --with-unix-socket-path=/apache2/mysql/run/mysql_socket \
$ --with-mysqld-user=mysql \ (指定启动mysql的默认用户mysql)
$ --with-comment \
$ --with-debug (加入调试支持)
$ make
$ sudo make install


3、简单配置Mysql
上一步已经将MySQL装到目录/apache2/mysql或你指定的目录
运行
$ sudo /apache2/mysql/bin/mysql_install_db --force

创建var/下的默认数据库mysql和test
适用socket还要建立run/目录
$ sudo mkdir /apache2/mysql/run

现在你得到这样的文件结构
$ ls -Fla /apache2/mysql/
total 26
drwxr-xr-x 13 root wheel 1024 Jun 5 13:42 ./
drwxr-xr-x 11 root wheel 1024 Jun 5 12:19 ../
drwxr-xr-x  2 root wheel 1024 Jun 5 12:20 bin/
drwxr-xr-x  3 root wheel 1024 Jun 5 12:19 include/
drwxr-xr-x  2 root wheel 1024 Jun 5 12:19 info/
drwxr-xr-x  3 root wheel 1024 Jun 5 12:19 lib/
drwxr-xr-x  2 root wheel 1024 Jun 5 12:20 libexec/
drwxr-xr-x  3 root wheel 1024 Jun 5 12:20 man/
drwxr-xr-x  6 root wheel 1024 Jun 5 12:21 mysql-test/
drwxr-xr-x  2 root wheel 1024 Jun 5 13:42 run/
drwxr-xr-x  3 root wheel 1024 Jun 5 12:20 share/
drwxr-xr-x  7 root wheel 1024 Jun 5 12:21 sql-bench/
drwx------  4 root wheel 1024 Jun 5 13:37 var/

现在所有文件都是属于root的,但是你要用mysql帐户来运行,因此需要更改文件权限
$ sudo chgrp -R mysql /apache2/mysql
$ sudo chown -R mysql /apache2/mysql/run /apache2/mysql/var

现在你就得到这样的文件结构了
$ ls -Fla /usr/local/mysql
total 26
drwxr-xr-x 13 root  mysql 1024 Jun 5 13:42 ./
drwxr-xr-x 11 root  wheel 1024 Jun 5 12:19 ../
drwxr-xr-x  2 root  mysql 1024 Jun 5 12:20 bin/
drwxr-xr-x  3 root  mysql 1024 Jun 5 12:19 include/
drwxr-xr-x  2 root  mysql 1024 Jun 5 12:19 info/
drwxr-xr-x  3 root  mysql 1024 Jun 5 12:19 lib/
drwxr-xr-x  2 root  mysql 1024 Jun 5 12:20 libexec/
drwxr-xr-x  3 root  mysql 1024 Jun 5 12:20 man/
drwxr-xr-x  6 root  mysql 1024 Jun 5 12:21 mysql-test/
drwxr-xr-x  2 mysql mysql 1024 Jun 5 13:42 run/
drwxr-xr-x  3 root  mysql 1024 Jun 5 12:20 share/
drwxr-xr-x  7 root  mysql 1024 Jun 5 12:21 sql-bench/
drwx------  4 mysql mysql 1024 Jun 5 13:37 var/

现在你可以启动你的mysql服务器并设定root的密码
$ sudo /apache2/mysql/bin/mysqld_safe --user=mysql &
$ /apache2/mysql/bin/mysqladmin -u root password ******

跟着可以登入数据库了
$ mysql –u root –p
输入你刚才设定的密码

此时你会发现shell的提示符变为mysql>

下面介绍一下一些基本的命令
mysql>SHOW DATABASES;
显示所有的数据库
mysql>USE databasename;
调用数据库
mysql>SHOW TABLES;
现实表单项目
mysql>DESCRIBE tablename;
显示子项内容
mysql> SELECT * FROM tablename;
显示数据内容
mysql>CREATE DATABASE databasename;
创建数据库


MySQL支持外部程序访问,所以访问时,必须提供MySQL的访问用户名和密码,一般来说,都会有一个root管理权限的用户,然后再设置拥有使用权限的普通用户。
现在设置一个用户
所有的用户名都在mysql.user下,可以通过
mysql>USE mysql;
mysql> SELECT * FROM user;

察看用户信息
安装MySQL时,系统会自动生成一个当前用户名的MySQL用户账户,可以通过以下语句建立账户密码,这样就不用设置新用户账号了。
mysql> INSERT INTO user (Host,User,Password)
-> VALUES('localhost','username',PASSWORD('*******'));
mysql> FLUSH PRIVILEGES;

赋予权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'
-> IDENTIFIED BY '*******' WITH GRANT OPTION;

修改密码用
mysql> UPDATE user SET Password = PASSWORD('*******')
-> WHERE Host = 'localhost' AND User = 'username';
mysql> FLUSH PRIVILEGES;

删除用户账户
mysql>DELETE FROM mysql.user WHERE User = ‘username’ and Host = ‘hostname’;
mysql> FLUSH PRIVILEGES;


STEP 3:安装PHP环境

1、下载解包php源码
下载当前最新版本php源码包,基于习惯,装于/apache2目录下
$ curl -O http://ie2.php.net/distributions/php-5.1.4.tar.gz
$ gnutar -xzf php-5.1.4.tar.gz
$ cd php-5.1.4
$ sudo mkdir /apache2/php


2、配置编译安装php
编译前配置,激活了常用的功能,请注意写你mysql所在的正确路径,如果需要GD支持,请确保你机器里已经安装了jpeglib和pnglib,并写正确路径
$ ./configure \
$ --prefix=/apache2/php \
$ --with-zlib \
$ --with-xml \
$ --with-ldap=/usr \
$ --enable-cli \
$ --with-zlib-dir=/usr \
$ --enable-exif \
$ --enable-ftp \
$ --enable-mbstring \
$ --enable-mbregex \
$ --enable-dbx \
$ --enable-sockets \
$ --with-iodbc=/usr \
$ --with-curl=/usr \
$ --with-mysql=/apache2/mysql \  (指定MySQL路径)
$ --with-gd \  (可选,需要 jpeg + png 支持)
$ --with-jpeg-dir=/usr/local \ (可选,libjpeg路径)
$ --with-png-dir=/usr/local \ (可选,libpng路径)
$ --with-apxs2=/apache2/bin/apxs
$ sudo make
$ sudo make install

P.S.这个版本的php并不支持64bit的mysql
至此,PHP安装完成。

[ 本帖最后由 poison 于 2006-8-8 21:52 编辑 ]
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
 楼主| 发表于 2006 年 8 月 8 日 21:41:31 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
STEP 4 :配置Apache并使服务器正确运作

1、配置Apache服务器
在apache的配置文件中加入php支持
$ nano /apcache2/conf/httpd.conf

在文件底部加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.html index.php


2、启动和测试服务器环境
启动Apache2
$ sudo /apache2/bin/apachectl start

启动MySQL
$ sudo mysqld_safe --user=mysql &

在/apache2/htdocs/里放入一个php探针,如env.php,然后打开浏览器,键入 http://127.0.0.1/env.php
如果现实正常,即服务器已经运作正常
关闭MySQL
$ mysqladmin -u root -p****** shutdown (*****为密码)

关闭Apache2
$ sudo /apache2/bin/apachectl stop


STEP 5:安装phpMyAdmin

1、下载解包安放phpMyAdmin源码
我下了目前最新的phpMyAdmin-2.8.2.1.tar.gz,解包后把phpMyAdmin-2.8.2.1文件夹放到/apache2里,在htdocs里建立符号连接
$ curl -O http://jaist.dl.sourceforge.net/ ... dmin-2.8.2.1.tar.gz
$ tar -xzf phpMyAdmin-2.8.2.1.tar.gz
$ cp phpMyAdmin-2.8.2.1 /apache2/
$ cd /apache2/htdocs
$ sudo ln -s ../phpMyAdmin-2.8.2.1 ./pma


2、配置phpMyAdmin
打开apache2服务器,使用提供给的脚本配置config.inc.php
建立必须的文件夹
$ cd /apache2/htdocs/pma
$ mkdir config
$ mkdir upload
$ mkdir save
$ mkdir logs
$ chmod o+rw config upload save logs

从浏览器打开 http://127.0.0.1/pma/scripts/setup.php
根据提示配置
点sever下的add按钮
Authentication type 选 cookie
其他根据你的要求填
phpMyAdmin database for advanced features 暂时留空
填好点下面的add
点Features下的Upload/Dowload按钮
依次填 ./upload ./save ./logs 然后点update
设置好点Configuration的save
然后回到终端
$ mv config/config.inc.php

现在可以用浏览器通过 http://127.0.0.1/pma 登入phpMyAdmin
登入后点import
选在/apache2/htdocs/pma/scripts 下的 create_tables_mysql_4_1_2+.sql 导入,创建phpmyadmin系统数据库
导入成功后,重新打开 http://127.0.0.1/pma/scripts/setup.php
重复刚才的设置,但是在刚才留空的phpMyAdmin database for advanced features 这项后面填入phpmyadmin,同样save后
$ mv config/config.inc.php
$ chmod o-rw config.inc.php

现在pma安装完成,可以通过http://127.0.0.1/pma管理数据库了

到这里整个环境都架起来了。。哈哈
不过现在系统启动并不会 自动再入Apache和MySQL服务器,你可以根据自己的系统查看教程让他自动加载。
而我不喜欢自动加载。。所以做了两个很简单的 shell 脚本,用来打开和关闭 Apache和MySQL
打开的shell脚本
#!/bin/sh

#################################################################
#
# apache2 stat up shell script
# Copyright (c) 2006 Poison
#
#################################################################

echo "Apache & MySQL runner"
echo "-------------------"
echo "This will run Apache and MySQL. If you wish to"
echo "proceed, authenticate below or close this window"
echo "if you wish to cancel."
sudo echo ""

echo "Running Apache ..."

sudo /apache2/bin/apachectl start

echo "Running MySQL ..."

sudo /apache2/mysql/bin/mysqld_safe --user=mysql &

echo " "
echo "successfully!!"


关闭的shell脚本
#!/bin/sh

#################################################################
#
# apache2 rs.command
# Copyright (c) 2006 Poison
#
#################################################################

echo "Apache & MySQL stopper"
echo "-------------------"
echo "This will stop Apache and MySQL. If you wish to"
echo "proceed, authenticate below or close this window"
echo "if you wish to cancel."
sudo echo ""

echo "stopping MySQL ..."

/apache2/mysql/bin/mysqladmin -u root -pyuxin716 shutdown

echo "stopping Apache ..."

sudo /apache2/bin/apachectl stop

sudo echo " "
sudo echo "successfully!!"



呼。。从7点多开始写。。。终于写完了。。。好累啊。。。。有良心就给顶个吧。。。

[ 本帖最后由 poison 于 2006-8-8 21:52 编辑 ]
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 8 月 8 日 21:42:36 | 显示全部楼层
顶起,好东西。。
但我希望看WIN下的。。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 8 月 8 日 21:43:33 | 显示全部楼层
原创吗?

支持技术型文章

强顶~~!!
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 8 月 8 日 21:44:38 | 显示全部楼层
辛苦了,
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2006 年 8 月 8 日 21:46:17 | 显示全部楼层
原帖由 ljweb 于 2006-8-8 21:42 发表
顶起,好东西。。
但我希望看WIN下的。。


看在我写这么辛苦的份上,你就装个linux试试吧。。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 8 月 8 日 21:48:03 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
偶在编译PHP 时把--with-freetds 加上了,结果路径写错一个字,郁闷了好半天   说起来真丢人~~:L
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 8 月 8 日 21:49:09 | 显示全部楼层
原帖由 poison 于 2006-8-8 21:46 发表


看在我写这么辛苦的份上,你就装个linux试试吧。。

大哥,如果偶会用Linux的话,一定不会让你说,我也要安装。。
可偶第一次安装Redhat的时候,把整个硬盘都搞。。。。没数据了
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2006 年 8 月 8 日 21:50:59 | 显示全部楼层
原帖由 ljweb 于 2006-8-8 21:49 发表

大哥,如果偶会用Linux的话,一定不会让你说,我也要安装。。
可偶第一次安装Redhat的时候,把整个硬盘都搞。。。。没数据了

现在的linux很容易装的只要你不搞gentoo 和lfs应该没问题。。哈哈
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 8 月 8 日 21:54:32 | 显示全部楼层
原帖由 poison 于 2006-8-8 21:50 发表

现在的linux很容易装的只要你不搞gentoo 和lfs应该没问题。。哈哈

偶以前从来没有玩过。不行。。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2024 年 9 月 20 日 16:53 , Processed in 0.100195 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表