您的位置:首页 > 运维架构 > Apache

源码简单的安装apache+mysql+php+phpMyAdmin

2011-06-15 19:46 441 查看
本文讲了从源码简单的安装apache+mysql+php+phpMyAdmin 安装步骤我们基本安装源码本身提供的安装文档来。

安装过程中 出现缺少其他软件包的情况 我们将使用yum安装 如果你的RHEL未付费无法使用yum 请配置CentOS的yum源 或者下载rpm包安装

安装之前 防火墙与selinux均设置无效。

本文测试环境RHEL5.5 同样适合于CentOS5.5。

本文适合新手学习安装 不适合生产环境。

1.下载软件

1. [root@RHEL src]# cd /usr/local/src/

2. [root@RHEL src]# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.50.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/
3. [root@RHEL src]# wget http://jp.php.net/get/php-5.2.14.tar.bz2/from/this/mirror
4. [root@RHEL src]# wget http://ftp.riken.jp/net/apache//httpd/httpd-2.2.16.tar.gz
5. [root@RHEL src]# wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.7/phpMyAdmin-3.3.7-all-languages.tar.bz2

2.安装配置mysql

1. 2.1.编译安装

2. [root@RHEL src]# tar -xzvf mysql-5.1.50.tar.gz

3. [root@RHEL src]# cd mysql-5.1.50

4. [root@RHEL mysql-5.1.50]# more INSTALL-SOURCE

5. 2.3.1. Source Installation Overview

6. The basic commands that you must execute to install a MySQL source

7. distribution are:

8. shell> groupadd mysql

9. shell> useradd -g mysql mysql (一会我们修改一下 不让mysql用户能登录系统)

10. shell> gunzip < mysql-VERSION.tar.gz | tar -xvf - (我已经解压了 这步省略)

11. shell> cd mysql-VERSION (我们已经进入解压目录了)

12. shell> ./configure --prefix=/usr/local/mysql

13. shell> make

14. shell> make install

15. shell> cp support-files/my-medium.cnf /etc/my.cnf

16. shell> cd /usr/local/mysql

17. shell> chown -R mysql .

18. shell> chgrp -R mysql .

19. shell> bin/mysql_install_db --user=mysql

20. shell> chown -R root .

21. shell> chown -R mysql var

22. shell> bin/mysqld_safe --user=mysql &

23. [root@RHEL mysql-5.1.50]# groupadd mysql

24. [root@RHEL mysql-5.1.50]# useradd -g mysql -s /bin/false mysql

25. [root@RHEL mysql-5.1.50]# ./configure --prefix=/usr/local/mysql

26. ......

27. checking for termcap functions library... configure: error: No curses/termcap library found

28. ......

29. OOPS!出错了!

30. [root@RHEL mysql-5.1.50]# yum -y install ncurses-devel

31. (rpm下载地址http://ftp.sjtu.edu.cn/centos/5.5/os/i386/CentOS/ncurses-devel-5.5-24.20060715.i386.rpm)

32. [root@RHEL mysql-5.1.50]# ./configure --prefix=/usr/local/mysql

33. [root@RHEL mysql-5.1.50]# make

34. [root@RHEL mysql-5.1.50]# make install

35. [root@RHEL mysql-5.1.50]# cd /usr/local/mysql

36. [root@RHEL mysql]# chown -R mysql .

37. [root@RHEL mysql]# chgrp -R mysql .

38. [root@RHEL mysql]# bin/mysql_install_db --user=mysql

39. [root@RHEL mysql]# chown -R root .

40. [root@RHEL mysql]# chown -R mysql var

41. [root@RHEL mysql]# bin/mysqld_safe --user=mysql &

42. 2.2.确认mysql状态 并修改密码

43. [root@RHEL mysql]# ps -ef | grep mysql

44. [root@RHEL mysql]# /usr/local/mysql/bin/mysqladmin -u root password 'mysql'

45. [root@RHEL mysql]# /usr/local/mysql/bin/mysql -uroot -p

46. Enter password:

47. Welcome to the MySQL monitor. Commands end with ; or \g.

48. Your MySQL connection id is 2

49. Server version: 5.1.50 Source distribution

50. Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

51. This software comes with ABSOLUTELY NO WARRANTY. This is free software,

52. and you are welcome to modify and redistribute it under the GPL v2 license

53. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

54. mysql>

55. 2.3.使用官方提供的启动脚本并添加开机启动

56. [root@RHEL mysql]# cp share/mysql/mysql.server /etc/init.d/mysqld

57. [root@RHEL mysql]# /etc/init.d/mysqld stop

58. Shutting down MySQL100909 20:06:48 mysqld_safe mysqld from pid file /usr/local/mysql/var/RHEL.pid ended

59. [确定]

60. [1]+ Done bin/mysqld_safe --user=mysql

61. [root@RHEL mysql]# /etc/init.d/mysqld start

62. Starting MySQL. [确定]

63. [root@RHEL mysql]# /sbin/chkconfig --add mysqld

64. [root@RHEL mysql]# /sbin/chkconfig mysqld on

3.安装apache2.2

1. 3.1.编译安装

2. [root@RHEL mysql]# cd /usr/local/src/

3. [root@RHEL src]# tar -xzvf httpd-2.2.16.tar.gz

4. [root@RHEL src]# cd httpd-2.2.16

5. [root@RHEL httpd-2.2.16]# more INSTALL

6. Quick Start - Unix

7. ------------------

8. For complete installation documentation, see [ht]docs/manual/install.html or

9. http://httpd.apache.org/docs/2.2/install.html
10. $ ./configure --prefix=PREFIX

11. $ make

12. $ make install

13. $ PREFIX/bin/apachectl start

14. NOTES: * Replace PREFIX with the filesystem path under which

15. Apache should be installed. A typical installation

16. might use "/usr/local/apache2" for PREFIX (without the

17. quotes).

18. *在他说的最简单的安装方式上 我们加2个编译参数

19. *--enable-rewrite rule based URL manipulation

20. *--enable-so DSO capability

21. [root@RHEL httpd-2.2.16]# ./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so

22. [root@RHEL httpd-2.2.16]# make

23. [root@RHEL httpd-2.2.16]# make install

24. 3.2.建立apache专用用户

25. [root@RHEL httpd-2.2.16]# groupadd apache

26. [root@RHEL httpd-2.2.16]# useradd -g apache -M -s /sbin/nologin apache

27. [root@RHEL httpd-2.2.16]# vi /usr/local/apache2/conf/httpd.conf

28. 找到如下2句 并在行头加#号注释掉

29. User daemon

30. Group daemon

31. 追加如下2句

32. User apache

33. Group apache

34. 3.3.启动状态确认

35. [root@RHEL httpd-2.2.16]# /usr/local/apache2/bin/apachectl start

36. [root@RHEL httpd-2.2.16]# lsof -i:80

37. [root@RHEL httpd-2.2.16]# lsof -i:80

38. COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

39. httpd 14125 root 3u IPv6 194322 TCP *:http (LISTEN)

40. httpd 14354 apache 3u IPv6 194322 TCP *:http (LISTEN)

41. httpd 14355 apache 3u IPv6 194322 TCP *:http (LISTEN)

42. httpd 14356 apache 3u IPv6 194322 TCP *:http (LISTEN)

43. httpd 14357 apache 3u IPv6 194322 TCP *:http (LISTEN)

44. httpd 14358 apache 3u IPv6 194322 TCP *:http (LISTEN)

45. [root@RHEL httpd-2.2.16]# curl http://localhost (你可以在浏览器里输入http://ip测试)

46. <html><body><h1>It works!</h1></body></html>

*通过apachectl就可以方便的启动关闭apache了 我就不做启动脚本了

*如果你需要你可以上网搜一下 或者参照/etc/init.d/下的其他脚本 在apachectl的基础上修改一个

*或者 你可以再/etc/rc.local里追加一句来让apache开机启动/usr/local/apache2/bin/apachectl start

4.源码编译安装php

1. 4.1.编译安装

2. root@RHEL httpd-2.2.16]# cd /usr/local/src/

3. [root@RHEL src]# tar -jxvf php-5.2.14.tar.bz2

4. [root@RHEL src]# cd php-5.2.14

5. [root@RHEL php-5.2.14]# more INSTALL

6. Apache 2.0 on Unix systems

7. ·.......

8. You are highly encouraged to take a look at the Apache Documentation to

9. get a basic understanding of the Apache 2.0 Server.

10. ......

11. Example 2-4. Installation Instructions (Apache 2 Shared Module Version)

12. 1. gzip -d httpd-2_0_NN.tar.gz

13. 2. tar xvf httpd-2_0_NN.tar

14. 3. gunzip php-NN.tar.gz

15. 4. tar -xvf php-NN.tar

16. 5. cd httpd-2_0_NN

17. 6. ./configure --enable-so

18. 7. make

19. 8. make install

20. Now you have Apache 2.0.NN available under /usr/local/apache2,

21. configured with loadable module support and the standard MPM prefork.

22. To test the installation use your normal procedure for starting

23. the Apache server, e.g.:

24. /usr/local/apache2/bin/apachectl start

25. and stop the server to go on with the configuration for PHP:

26. /usr/local/apache2/bin/apachectl stop.

27. 9. cd ../php-NN

28. 10. ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql (一会我们指定一下mysql的安装路径)

29. 11. make

30. 12. make install

31. .......

32. 13. Setup your php.ini

33. cp php.ini-dist /usr/local/lib/php.ini

34. .......

35. 14. Edit your httpd.conf to load the PHP module.

36. ......

37. For PHP 5:

38. LoadModule php5_module modules/libphp5.so

39. 15. Tell Apache to parse certain extensions as PHP.

40. ......

41. AddType application/x-httpd-php .php .phtml

42. It's also common to setup the .phps extension to show highlighted PHP

43. source, this can be done with:

44. AddType application/x-httpd-php-source .phps

45. 16. Use your normal procedure for starting the Apache server, e.g.:

46. /usr/local/apache2/bin/apachectl start

47. ......

48. [root@RHEL php-5.2.14]# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql

49. ......

50. configure: error: xml2-config not found. Please check your libxml2 installation.

51. ......

52. OOPS!出错了!

53. [root@RHEL php-5.2.14]# yum -y install libxml2-devel

54. (我的情况 安装libxml2-devel的时候 依赖于zlib-devel)

55. (rpm下载地址 http://ftp.sjtu.edu.cn/centos/5.5/os/i386/CentOS/zlib-devel-1.2.3-3.i386.rpm)
56. (rpm下载地址 http://ftp.sjtu.edu.cn/centos/5.5/os/i386/CentOS/libxml2-devel-2.6.26-2.1.2.8.i386.rpm)
57. [root@RHEL php-5.2.14]# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql

58. [root@RHEL php-5.2.14]# make

59. [root@RHEL php-5.2.14]# make install

60. [root@RHEL php-5.2.14]# cp php.ini-dist /usr/local/lib/php.ini

61. [root@RHEL php-5.2.14]# vi /usr/local/apache2/conf/httpd.conf

62. 在内容里搜一下是否有libphp5.so

63. 我的情况 已经有了 如果没有追加下面那句前面不带#的

64. # LoadModule foo_module modules/mod_foo.so

65. LoadModule php5_module modules/libphp5.so

66. #

67. 再搜索AddType关键字 在那附近追加如下一句

68. AddType application/x-httpd-php .php .phtml

69. 再搜索下面一段 把第二句DirectoryIndex的后面追加index.php

70. <IfModule dir_module>

71. DirectoryIndex index.html index.php

72. </IfModule>

73. 4.1.2测试php网页

74. [root@RHEL php-5.2.14]# cd /usr/local/apache2/htdocs/

75. [root@RHEL htdocs]# vi index.php

76. 输入内容

77. <?php

78. phpinfo();

79. ?>

80. [root@RHEL php-5.2.14]# /usr/local/apache2/bin/apachectl restart

81. [root@RHEL mysql]# curl -I http://localhost/index.php
82. 或者你在你的浏览器里输入http://yourip/index.php

83. 4.1.3测试php和mysql连接

84. [root@RHEL htdocs]# vi phpmysql.php

85. 输入内容

86. <?php

87. mysql_connect("localhost","root","mysql") or die("MySQL First Test:Failed");

88. echo "MySQL First Test:Success";

89. ?>

90. 因为我们编译php的时候没有加--with-mysqli选项 所以不支持mysqli扩展

91. [root@RHEL htdocs]# curl http://localhost/phpmysql.php
92. MySQL First Test:Success

93. 好了 我这里成功了

94. 你可以再浏览器里输入http://ip/phpmysql.php

5.安装配置phpMyAdmin

1. 5.1.配置phpMyAdmin

2. [root@RHEL mysql]# cd /usr/local/src/

3. [root@RHEL src]# tar -jxvf phpMyAdmin-3.3.7-all-languages.tar.bz2

4. 我们把phpMyAdmin配置到/var/www/下 命名为phpMyAdmin

5. [root@RHEL src]# test -d /var/www || mkdir -p /var/www

6. [root@RHEL src]# mv phpMyAdmin-3.3.7-all-languages /var/www/phpMyAdmin

7. [root@RHEL src]# cp /var/www/phpMyAdmin/config.sample.inc.php /var/www/phpMyAdmin/config.inc.php

8. [root@RHEL src]# chmod 660 /var/www/phpMyAdmin/config.inc.php

9. [root@RHEL src]# vi /var/www/phpMyAdmin/config.inc.php

10. 追加$cfg['Lang'] = 'zh-utf-8';

11. ----------可选设置 为phpMyAdmin设置50位的短语密码---------

12. ------推荐你设置 但是要使用mkpasswd命令 你需要安装expect包

13. [root@RHEL src]# mkpasswd -l 50

14. clecXjgn7Hg%whkyajmmq8zisgzceinvcuqnwhbxlwapnzemwm

15. 复制产生的短语密码

16. [root@RHEL src]# vi /var/www/phpMyAdmin/config.inc.php

17. 找到如下参数

18. $cfg['blowfish_secret'] = 'clecXjgn7Hg%whkyajmmq8zisgzceinvcuqnwhbxlwapnzemwm'

19. ----------------------可选设置 结束-----------------------

20. [root@RHEL src]# chown -R root.apache /var/www/phpMyAdmin

21. [root@RHEL src]# cd /usr/local/apache2/conf/

22. [root@RHEL conf]# vi extra/phpmyadmin.conf

23. 加入内容

24. Alias /phpMyAdmin /var/www/phpMyAdmin

25. <Location /phpMyAdmin>

26. Order deny,allow

27. Deny from all

28. Allow from 127.0.0.1

29. Allow from 10.110.108.55 //这里改成你实际允许访问的ip

30. </Location>

31. [root@RHEL conf]# vi httpd.conf

32. 追加

33. Include conf/extra/phpmyadmin.conf

34. [root@RHEL conf]# /usr/local/apache2/bin/apachectl restart

35. 5.2.测试 在浏览器输入下面的网址

36. http://ip/phpMyAdmin/
37. 输入我们前面设置的mysql用户名root 和密码mysql

38. Enjoy!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: