继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

简单LAMP的实现及测试

largeQ
关注TA
已关注
手记 960
粉丝 92
获赞 585

简单LAMP的实现

LAMP是Linux Apache Mysql PHP 这四款自由软件首字母的缩写,这四款开源软件虽然不是专门设计用来一起工作的,但由于开源软件的低廉价格和表现出的不俗实力,越来越受到人们的青睐。随着开源潮流的蓬勃发展,LAMP已经与J2EE和在web应用程序市场形成鼎立之势。

 

废话不多说,下面介绍一下简单LAMP的具体实现过程:

 

Linux上的Mysql安装及配置

1. 给Mysql的数据目录创建单独的逻辑卷

mkdir /mydata 

#创建存放数据的目录 

fdisk /dev/sda 

#新建分区属性为8e 

pvcreate /dev/sda5 

vgcreate myvg /dev/sda5 

lvcreate –L 4G –n mylv myvg 

mke2fs –L MYDATA –j /dev/myvg/mylv  

vim /etc/fstab    

LABEL=MYDATA                    /mydata                ext3        defaults                0 0    

#加入这一行实现开机自动挂载 

mount –a 

mkdir /mydata/data 

2. 创建mysql用户

groupadd –g 3306 mysql 

useradd –g 3306 –u 3306 –M –s /sbin/nologin 

chown –R mysql:mysql /mydata

3. 解压mysql-5.5.15-linux2.6-i686.tar.gz,使用其中脚本进行初始化

tar xvf mysql-5.5.15-linux2.6-i686.tar.gz –C /usr/local/ 

cd /usr/local 

ln –vs mysql-5.5.15-linux2.6-i686 mysql 

cd /usr/local/mysql 

chown –R mysql:mysql ./* 

scripts/mysql_install_db --user=mysql --datadir=/mydata/data 

#初始化Mysql用户和数据路径 

chown –R root ./* 

#再将属主交还给root

4. 创建mysqld服务

cp /usr/local/mysql/support-files/mysql.server    /etc/init.d/mysqld 

#导入服务脚本 

chkconfig –add mysqld

5. 创建Mysql的配置文件

cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf 

vim /etc/my.cnf 

#找到[mysqld]下面的内容添加 

datadir= /mydata/data

6. 加入mysql命令

vim /etc/profile 

PATH=$PATH:/usr/loca/mysql/bin 

#添加这一行

7. 加入mysql库文件的路径

vim /etc/ld.so.conf.d/mysql.conf 

/usr/local/mysql/lib 

#写入这一行

8. 设置头文件

ln –vs /usr/local/mysql/include /usr/include/mysql

9. 添加man文件(如果你以后不想使用mysql的man文件不添加也是可以的)

vim /etc/man.conf 

MANPATH /usr/local/mysql/man 

#添加这一行

service mysql start

#启动mysql服务

netstat –tnl

#查看3306端口处于监听状态,说明已经配置成功。

编译安装Apache

 1.解压httpd-2.2.19.tar.bz2软件包

tar xvf httpd-2.2.19.tar.bz2

2. 设置安装规则、编译、安装

./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable=ssl --enable-modules=most --enable-mods-share=most --enable-so 

make 

make install

3. 制作服务启动脚本

vim /etc/init.d/httpd

#!/bin/bash 

. /etc/rc.d/init.d/functions 

 

if [ -f /etc/sysconfig/httpd ]; then 

                . /etc/sysconfig/httpd 

fi 

 

HTTPD_LANG=${HTTPD_LANG-"C"} 

 

INITLOG_ARGS="" 

 

apachectl=/usr/local/apache/bin/apachectl 

httpd=${HTTPD-/usr/local/apache/bin/httpd} 

#注意此上两行中路径要与你的安装路径一致 

prog=httpd 

pidfile=${PIDFILE-/var/run/httpd.pid} 

lockfile=${LOCKFILE-/var/lock/subsys/httpd} 

RETVAL=0 

 

start() { 

                echo -n $"Starting $prog: " 

                LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS 

                RETVAL=$? 

                echo 

                [ $RETVAL = 0 ] && touch ${lockfile} 

                return $RETVAL 

 

stop() { 

                echo -n $"Stopping $prog: " 

                killproc -p ${pidfile} -d 10 $httpd 

                RETVAL=$? 

                echo 

                [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} 

 

reload() { 

        echo -n $"Reloading $prog: " 

        if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then 

                RETVAL=$? 

                echo $"not reloading due to configuration syntax error" 

                failure $"not reloading $httpd due to configuration syntax error" 

        else 

                killproc -p ${pidfile} $httpd -HUP 

                RETVAL=$? 

        fi 

        echo 

 

case "$1" in 

    start) 

                start 

                ;; 

    stop) 

                stop 

                ;; 

    status) 

                status -p ${pidfile} $httpd 

                RETVAL=$? 

                ;; 

    restart) 

                stop 

                start 

                ;; 

    condrestart) 

                if [ -f ${pidfile} ] ; then 

                                stop 

                                start 

                fi 

                ;; 

    reload) 

                reload 

                ;; 

    graceful|help|configtest|fullstatus) 

                $apachectl $@ 

                RETVAL=$? 

                ;; 

    *) 

                echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" 

                exit 1 

esac 

 

exit $RETVAL

vim /etc/httpd/httpd.conf

PidFile "/var/run/httpd.pid"

#添加这一行

chkconfig --add httpd

service httpd start

#启动httpd服务

netstat -tnl

#查看80端口处于监听状态,说明已经配置成功。

PHP的编译安装

1. 解压php-5.3.6.tar.bz2软件包

tar xvf php-5.3.6.tar.bz2

2. 设置安装选项、编译、安装

./configure --prefix=/usr/local/php5 --sysconfdir=/etc/php --enable-mbstring --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-libmcrypt --with-gd --with-mysqli 

 

make    

makeinstall

3. 加入命令路径

vim /etc/profile 

PATH=$PATH:/usr/loca/php5/bin 

#添加这一行

4. 加入php库文件路径

vim /etc/ld.so.conf.d/php.conf 

/usr/local/php5/lib

5. 创建php配置文件

cp php.ini-production /usr/local/php5/lib/php.ini 

#注意php.ini-production文件位于php-5.3.6.tar.bz2的解压目录

6.  修改httpd服务配置文件使其支持php

vim /etc/httpd/httpd.conf 

AddType Application/x-httpd-php .php 

AddType Application/x-httpd-php-source .phps 

#添加这两行在AddType xxxxxx行附近位置 

DirectoryIndex index.php index.html 

#添加index.php 

 

service httpd restart 

#重启httpd服务

到此简单的LAMP就配置成功了

LAMP的测试

为了测试LAMP,作者在这里选用了

wordpress-3.0.4-zh_CN.zip

phpMyAdmin-3.4.3.2-all-languages.tar.bz2

要使这两个网站都能在新搭建的LAMP运行,就得虚拟主机来实现。

这里作者选用基于主机名的虚拟主机(基于ip的虚拟主机过于消耗ipv4资源;基于端口的虚拟主机只有一个主页能使用默认80端口)

使用于主机名的虚拟主机配置网站:

1. 配置虚拟主机

vim /etc/httpd/httpd.conf    

#DocumentRoot "/usr/local/apache/htdocs" 

#把此行注释 

Include /etc/httpd/extra/httpd-vhosts.conf 

#把此行启用 

 

vim /etc/httpd/extra/httpd-vhosts.conf 

#添加内容 

<VirtualHost *:80> 

DocumentRoot "/web/phpmyadmin"    #网站所在目录 

ServerName "phpmyadmin.redhat_hu.com" #虚拟主机名 

ErrorLog "logs/phpmyadmin.error"    #错误日志 

CustomLog "logs/phpmyadmin.access" combined #访问日志 

</VirtualHost> 

 

<Directory "/web/phpmyadmin"> 

Order allow,deny 

Allow from all 

</Directory> 

#设置访问控制为允许所有 

<VirtualHost *:80> 

DocumentRoot "/web/wordpress" 

ServerName "wordpress.redhat_hu.com" 

ErrorLog "logs/wordpress.error" 

CustomLog "logs/wordpress.access" combined 

</VirtualHost> 

 

<Directory "/web/wordpress"> 

Order allow,deny 

Allow from all 

</Directory>

2.配置网站链接数据库

mkdir /web/{phpmyadmin,wordpress} 

#创建网页所在目录 (此目录最好挂载逻辑卷,具体步骤见上文) 

 

tar xvf phpMyAdmin-3.4.3.2-all-languages.tar.bz2 

cp -R phpMyAdmin-3.4.3.2/* /web/phpmyadmin 

unzip wordpress-3.0.4-zh_CN.zip 

cp -R wordpress/* /web/ wordpress 

#将两个网站文件放入对应文件夹 

 

mv /web/wordpress/wp-config-simple.php /web/wordpress/wp-config.php 

vim /web/wordpress/wp-config.php 

define('DB_NAME', 'wordpress'); 

define('DB_USER', 'root'); 

define('DB_PASSWORD', 'redhat'); 

#设置对应数据库名登录用户以及密码 

 

 

在mysql中创建数据库 

mysql 

#未设置密码可以直接登录 

mysql>CREATE DATABASE wordpress; 

mysql>SET PASSWORD FOR root@localhost=PASSWORD('redhat'); 

mysql>FLUSH PRIVILEGES; 

#设置密码redhat 

mysql>quit

全部配置完成

打开浏览器输入网址进行测试。

Ps:由于作者使用的是VMware虚拟机,C:\WINDOWS\system32\drivers\etc\hosts

中加入如下两行实现域名解析。

192.168.0.20 phpmyadmin.redhat_hu.com

192.168.0.20 wordpress.redhat_hu.com

©著作权归作者所有:来自51CTO博客作者redhat_hu的原创作品,如需转载,请注明出处,否则将追究法律责任

职场测试休闲Linux 服务


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP