分类: 系统运维
2010-05-14 23:13:14
我的LAMP安装
LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台。一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。phpBB论坛程序就是典型的LAMP架构的应用程序。下面就其安装进行详述。
安装之前先把使用的环境和需要用到的程序梳理一下:一下程序都是当前用到的最新版本。
Linux: rhel-server-5.3-i386
Apache:httpd-
Mysql:mysql-
Php: php-
Phpbb: phpbb
1、 先进行Apache的安装。
现在开始安装。在使用tar包安装之前,最好把系统自带的rpm包卸载。否则安装后会提示如下错误信息:
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
Fatal error: Unknown: Failed opening required '/usr/local/apache/htdocs/test.php' (include_path='.:/usr/local/php5/lib/php') in Unknown on line 0
在安装之前要先检查是否安装完整的开发编译环境
#system-config-packages
接着检查gcc软件包是否安装
#rpm –q gcc
gcc-
[root@localhost opt]# tar httpd-
解压之后得到如下文件
[root@localhost opt]# ls
httpd-
接着进入安装目录,会看到如下文件。
[root@localhost opt]# cd httpd-
[root@localhost httpd-
[root@localhost httpd-
--prefix 指定Apache服务器将要安装的目录,
--enable-so设置apache服务器可以使用动态加载模块功能
--enable-rewrite 设置apache服务器具有rewrite功能。
接着编译服务器程序
[root@localhost httpd-
[root@localhost httpd-
[root@localhost bin]# apachectl -t
Syntax OK 使用该命令还可以对httpd.conf的语法进行测试。
[root@localhost bin]# ./apachectl start
在/etc/rc.loacl下加入/opt/Apache/bin/apachectl start
可以在系统每次启动时都将自动启动APACHE服务。
2、接着安装并管理MySQL服务器
我下载的是二进制源代码,它的名字是: mysql-
操作步骤如下:
[root@redhat ~]# cd /mnt/hgfs/share/
[root@redhat share]# tar zxvf mysql-
直接把文件解压到/usr/local目录下。在所有文件解压完后,一个名字叫mysql-
[root@redhat local]#ln -s mysql-
如果以后有新版本的MySQL的话,你可以仅仅将源码解压到新的路径,然后只需要做个符号链接就可以了。这样非常方便,数据也更加安全。建立一个MySQL 用户
好,现在我们将建立一个能运行MySQL守护程序的用户帐号,并且所有MySQL文件都归此帐户拥有。使用 useradd命令去添加一个叫 mysql 的帐号,在添加之前,确保没有人注册了这个帐户,(不过一般都是在没有其他人登陆的情况下调试机器,因此这个步骤可免)
[root@redhat local]# groupadd mysql 创建mysql组。
[root@redhat local]# useradd -g mysql mysql 创建mysql用户属于mysql组。
为MySQL做准备
首先让我们将MySQL目录和文件的拥有权改成 mysql 用户和root组:
# cd /usr/local
# chown -R mysql:root mysql-
然后运行一个小脚本程序,以建立初始化的MySQL数据库。请以一个mysql 用户的身份完成这个任务,这也是我们能够直接使用这个帐户的唯一机会。
#chmod –R 775 mysql
创建mysql许可表
网上很多方法都是:/usr/local/mysql/scripts/mysql_install_db --user=mysql
但是很有可能报错,找不到bin目录中的my_print_defaults
错误信息:
FATAL ERROR: Could not find ./bin/my_print_defaults
If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.
If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
如果遇到此错误只需要多加两个参数指明路径就ok,如下:
root@localhost mysql#./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data (这点非常重要)
如果没有任何出错信息显示的话,那就可以了。
自动运行MySQL
在MySQL二进制包里面,有一个叫myslq.server的启动脚本程序。把它复制到/etc/rc.d/init.d目录里面:
# cd /etc/rc.d/init.d
# cp /usr/local/mysql/support-files/mysql.server mysql 把脚本更名为mysql更方便使用。
这样在/etc/rc.d/init.d就多了一个脚本文件mysql.
接着把它的属性改为“x”(executable,可执行)
# chmod +x mysql
最后,运行chkconfig把MySQL添加到你系统的启动服务组里面去。
# chkconfig —add mysql
#chkconfig —level 2345 mysql on
#chkconfig —list 查询所有的linux下的服务。
#chkconfig –list mysql
测试MySQL
MySQL里面有一个简单的数据库例子test ,而且它的内部数据库一直保持对权限和帐户的监视,因而先运行mysql看看是否可以工作。
首先启动MySQL:
# /etc/rc.d/init.d/mysql start (#/usr/local/mysql/support-files/mysql.server start)
如果一切正常,你将看到以下的信息出现:
Starting mysqld daemon with databases from /var/lib/mysql
关闭mysql:
# /etc/rc.d/init.d/mysql stop (#/usr/local/mysql/support-files/mysql.server stop)
或者这样启动mysql服务:
[root@redhat init.d]# service mysql start
Starting MySQL. [确定]
#netstat -tnlp可以发现打开3306端口。
登陆mysql
出于安全考虑,为mysql 用户 root 设置密码
[root @ test php-
在 mysql 中建立数据库 phpbb
[root@redhat ~]# /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version:
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database phpbb;
Query OK, 1 row affected (0.04 sec)
安装数据库的工作到此为止。
3、 安装并管理php环境。
[root@localhost opt]# tar zxvf php-
[root@localhost php-
./configure命令中使用了4个命令选项,含义分别是:
--prefix设置php程序的安装路径
--with-apxs2设置php为apache服务器提供的模块的安装位置
--with-mysql设置mysql服务器程序的安装位置
--with-config-file-path设置php程序的安装位置
[root@localhost php-
经过了漫长的编译和安装之后,php程序就已经按照到linux系统中了。但php程序还没有配置文件,PHP为我们提供了2个文件php.ini-development(开发版的) php.ini-production(用于生产的)一般自己电脑上测试用php.ini-development。
[root@localhost php-
至此php程序的安装过程就完成了。
接着进行apache服务器的设置。
[root@localhost ~]# vi /usr/local/apache/conf/httpd.conf
LoadModule php5_module modules/libphp5.so 确认这一行已经存在
AddType application/x-httpd-php .php 添加这一行
DirectoryIndex index.html index.html.war index.php 添加显红的部分
[root@localhost ~]# /usr/local/apache/bin/apachectl restart 重启Apache服务。
在/usr/local/apache/htdocs目录下添加test.php文件。内容如下:
Phpinfo( );
?>
默认情况下test.php的权限是600
当你在浏览器里输入:时会提示如下错误:
Forbidden
You don't have permission to access /test.php on this server.
需要将test.php的权限修改为775,才可以打开php的版本页面,这点很重要。
4、 接着安装phpbb论坛系统。
[[root@localhost opt]# unzip phpbb
[root@localhost opt]# mv phpbb
[root@localhost opt]# cp phpbb3 /usr/local/apache/htdocs/ 将论坛文件移入apache文档根目录下面。
[root@localhost htdocs]# chown -R nobody:nobody phpbb3/ 将phpbb3的所有制改为nobody,确保apache服务器有足够的权限访问。
[root@localhost phpbb3]# chmod -R 777 phpbb3 同时确保用户有读写权限,否则在安装时会出现无法继续进行下去的情况。
就会弹出phpbb的配置页面,可根据需要进行配置。