一 关于LAMP
LAMP:Linux + Apache + MySQL + PHP
WAMP:Windows + Apache + MySQL + PHP
安装顺序:首先MySQL,然后Apache,最后PHP
二 搭建LAMP
第一步,安装MySQL
--1.安装Development tools和ncurses-devel [root@serv01 ~]# yum grouplist|grep Devel Additional Development Desktop Platform Development Development tools Server Platform Development [root@serv01 ~]# yum groupinstall"Development tools" -y [root@serv01 ~]# yum install ncurses-devel-y --2.解压 [root@serv01 ~]# tar -xf mysql-5.1.58.tar.gz-C /usr/src/ #文件错误,重新拷贝 [root@serv01 ~]# tar -xf mysql-5.1.58.tar.gz-C /usr/src/ tar: Skipping to next header tar: Exiting with failure status due toprevious errors [root@serv01 ~]# cd /usr/src/mysql-5.1.58/ #帮助文件 [root@serv01 ~]#./configure —help --3.配置 [root@serv01 mysql-5.1.58]# ./configure--prefix=/usr/local/mysql --with-extra-charsets=gbk,gb2312—with-plugins=partition,innobase,innodb_plugin,myisam --4.编译 [root@serv01 mysql-5.1.58]# make --5.安装 [root@serv01 mysql-5.1.58]# make install --6.拷贝配置文件和执行脚本 [root@serv02 mysql-5.1.58]# cpsupport-files/my-medium.cnf /etc/my.cnf cp: overwrite `/etc/my.cnf'? y [root@serv02 mysql-5.1.58]# cpsupport-files/mysql.server /etc/init.d/mysqld [root@serv02 mysql-5.1.58]# chmod a+x/etc/init.d/mysqld [root@serv02 mysql-5.1.58]# ls -l/etc/init.d/mysqld -rwxr-xr-x. 1 root root 12302 Aug 15 23:36/etc/init.d/mysqld --7.创建数据文件的存放路径,并修改my.cnf和mysqld文件 [root@serv02 mysql-5.1.58]# mkdir /usr/local/mysql/data [root@serv02 mysql-5.1.58]# vim /etc/my.cnf [root@serv02 mysql-5.1.58]# grep"^datadir" /etc/my.cnf -n 27:datadir =/usr/local/mysql/data [root@serv02 mysql-5.1.58]# vim/etc/init.d/mysqld [root@serv02 mysql-5.1.58]# sed"46,47p" /etc/init.d/mysqld -n basedir=/usr/local/mysql datadir=/usr/local/mysql/data --8.新增用户,并加入MySQL的用户 [root@serv02 mysql-5.1.58]# groupadd mysql [root@serv02 mysql-5.1.58]# useradd -g mysqlmysql [root@serv02 mysql-5.1.58]#./scripts/mysql_install_db --user=mysql --9.启动MySQL,进入/usr/local/mysql/bin/,执行mysql,查询MySQL版本 [root@serv02 mysql-5.1.58]#/etc/init.d/mysqld start Starting MySQL. SUCCESS! [root@serv02 mysql-5.1.58]# cd/usr/local/mysql/bin/ [root@serv02 bin]# ./mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.1.58-log Sourcedistribution Copyright (c) 2000, 2010, Oracle and/or itsaffiliates. All rights reserved. This software comes with ABSOLUTELY NOWARRANTY. This is free software, and you are welcome to modify andredistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' toclear the current input statement. mysql> select version(); +------------+ | version() | +------------+ | 5.1.58-log | +------------+ 1 row in set (0.00 sec) mysql> create database larry defaultcharset utf8; Query OK, 1 row affected (0.00 sec) mysql> use larry; Database changed mysql> show tables; Empty set (0.00 sec) mysql> create table t_user(id int(11)primary key auto_increment, name varchar(20)); Query OK, 0 rows affected (0.01 sec) mysql> insert into t_user(name)values('larrywen'); Query OK, 1 row affected (0.00 sec) mysql> insert into t_user(name)values('justdb'); Query OK, 1 row affected (0.00 sec) mysql> insert into t_user(name)values('wgb'); Query OK, 1 row affected (0.00 sec) mysql> select * from t_user; +----+----------+ | id | name | +----+----------+ | 1 |larrywen | | 2 |justdb | | 3 |wgb | +----+----------+ 3 rows in set (0.00 sec) mysql> create table t_log(id int(11)primary key auto_increment, content varchar(20), t_user_id int(11), constraintfk_larry_t_log_usr_id foreign key(t_user_id) references t_user(id)); Query OK, 0 rows affected (0.01 sec) mysql> insert into t_log(content,t_user_id) values('Logining System', 1); Query OK, 1 row affected (0.01 sec) mysql> select * from t_log; +----+-----------------+-----------+ | id | content | t_user_id | +----+-----------------+-----------+ | 1 |Logining System | 1 | +----+-----------------+-----------+ 1 row in set (0.00 sec) mysql> exit Bye --10.修改mysql目录的所有者和组拥有者 [root@serv02 mysql-5.1.58]# cd/usr/local/mysql [root@serv02 mysql]# chown -R mysql . [root@serv02 mysql]# chgrp -R mysql .
第二步,安装Apache
--1.解压 [root@serv02 httpd-2.2.21]# tar -xfhttpd-2.2.21.tar.gz -C /usr/src --2.进入安装目录,检查配置 [root@serv02 httpd-2.2.21]# cd/usr/src/httpd-2.2.21/ [root@serv02 httpd-2.2.21]# ./configure--help [root@serv02 httpd-2.2.21]# ./configure--prefix=/usr/local/apache --enable-modules=all --enable-mods-shared=all--enable-so --with-mpm=worker checking for zlib location... not found #如果出现zlib not found,安装zlib-devel [root@serv02 httpd-2.2.21]# yum installzlib-devel -y --3.编译 [root@serv02 httpd-2.2.21]# make --4.安装 [root@serv02 bin]# make install --5.进入/usr/local/apache/bin/目录,启动 [root@serv02 apache]# cd/usr/local/apache/bin/ [root@serv02 bin]# ./apachectl -k start httpd: apr_sockaddr_info_get() failed forserv02.host.com httpd: Could not reliably determine theserver's fully qualified domain name, using 127.0.0.1 for ServerName [root@serv02 bin]# netstat -langput | grephttpd #出现上述问题,编辑httpd.conf文件,加上ServerName serv02.host.com;编辑hosts文件,加上192.168.1.12 serv02.host.com(注意,本机IP是192.168.1.12) [root@serv02 bin]# vim ../conf/httpd.conf [root@serv02 bin]# grep"ServerName" /usr/local/apache/conf/httpd.conf # ServerName gives the name and port that theserver uses to identify itself. #ServerName www.example.com:80 ServerName serv02.host.com [root@serv02 bin]# echo "192.168.1.12serv02.host.com" >> /etc/hosts hosts hosts.allow hosts.deny [root@serv02 bin]# echo "192.168.1.12serv02.host.com" >> /etc/hosts [root@serv02 bin]# tail -n1 /etc/hosts 192.168.1.12 serv02.host.com #再次启动,查看端口,成功 [root@serv02 bin]# ./apachectl -k start [root@serv02 bin]# netstat -langput | grephttpd tcp 0 0 :::80 :::* LISTEN 20441/httpd --6.测试 浏览器输入http://192.168.1.12/ 如果出现“It works”则成功
第三步,安装PHP
--1.解压 [root@serv02 ~]# tar -xf php-5.3.6.tar.bz2 -C/usr/src/ --2.进入/usr/src/php-5.3.6/目录,配置 [root@serv02 php-5.3.6]# cd/usr/src/php-5.3.6/ [root@serv02 php-5.3.6]# ./configure —help [root@serv02 php-5.3.6]# ./configure--prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs--with-mysql-sock=/tmp/mysql.sock --with-mysql=/usr/local/mysql/ checking libxml2 install dir... no checking for xml2-config path... configure: error: xml2-config not found.Please check your libxml2 installation. #如果出现上述错误,安装libxml2 [root@serv02 php-5.3.6]# yum install libxml2*-y +--------------------------------------------------------------------+ | License: | | This software is subject to the PHPLicense, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of thislicense agreement. | | If you do not agree with the terms of thislicense, you must abort | | the installation process at thispoint. | +--------------------------------------------------------------------+ #如果出现如下文本,则证明配置成功 Thank you for using PHP. --3.编译 [root@serv02 php-5.3.6]# make --4.安装 [root@serv02 php-5.3.6]# make install --5.拷贝php.ini文件,修改httpd.conf文件 [root@serv02 bin]# cp php.ini-development/usr/local/php5/lib/php.ini [root@serv02 bin]# grep -e"AddHandler" -e "AddType" /usr/local/apache/conf/httpd.conf AddHandler php5-script .php AddType text/html .php
三 测试
--1.修改root用户密码,创建测试数据库和表 [root@serv02 bin]# ./mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.58-log Sourcedistribution Copyright (c) 2000, 2010, Oracle and/or itsaffiliates. All rights reserved. This software comes with ABSOLUTELY NOWARRANTY. This is free software, and you are welcome to modify andredistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' toclear the current input statement. mysql> set password=password("helloworld"); Query OK, 0 rows affected (0.00 sec) mysql> exit Bye [root@serv02 bin]# ./mysql -uroot-phelloworld Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.1.58-log Sourcedistribution Copyright (c) 2000, 2010, Oracle and/or itsaffiliates. All rights reserved. This software comes with ABSOLUTELY NOWARRANTY. This is free software, and you are welcome to modify andredistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' toclear the current input statement. mysql> use larry Database changed mysql> show tables; +-----------------+ | Tables_in_larry | +-----------------+ | t_log | | t_user | +-----------------+ 2 rows in set (0.00 sec) mysql> select * from t_user; +----+----------+ | id | name | +----+----------+ | 1 |larrywen | | 2 |justdb | | 3 |wgb | +----+----------+ 3 rows in set (0.00 sec) --2.新建测试php文件 [root@serv02 php5]# cd/usr/local/apache/htdocs/ [root@serv02 htdocs]# vim index.php [root@serv02 htdocs]# cat index.php <?php phpinfo(); ?> [root@serv02 htdocs]# vim user_list.php [root@serv02 htdocs]# pwd /usr/local/apache/htdocs [root@serv02 htdocs]# vim user_list.php [root@serv02 htdocs]# cat user_list.php <?php $conn=mysql_connect("localhost","root", "helloworld"); mysql_select_db("larry",$conn); $users=mysql_query("select* from t_user"); while(!!$user=mysql_fetch_array($users)){ echo$user["id"]."------->".$user["name"]."<br>"; } mysql_close(); ?> [root@serv02 htdocs]# --3.浏览器输入http://192.168.1.12/index.php,如果出现php相关的配置信息,则证明配置成功。输入http://192.168.1.12/user_list.php,如果能出现以下的信息,则证明PHP、MySQL、Apache整合成功。 1------->larrywen 2------->justdb 3------->wgb
我的邮箱:wgbno27@163.com 新浪微博:@Wentasy27 微信公众平台:JustOracle(微信号:justoracle) 数据库技术交流群:336882565(加群时验证 From CSDN XXX) By Larry Wen
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客] |