LAMP介绍
LAMP指的Linux(操作系统)、ApacheHTTP服务器,MySQL(有时也指MariaDB,数据库软件)和(有时也是指Perl或Python)的第一个字母,一般用来建立web 服务器。
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。当一起使用的时候,它们表现的像一个具有活力的解决方案包。其他的方案包有苹果的WebObjects(最初是应用服务器),Java/J2EE和微软的.NET架构。
LAMP包的脚本组件中包括了CGIweb接口,它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序,并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流,甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言。
LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和 Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台
LAMP架构的实现
下面开始安装LAMP
图中
httpd服务器的IP为172.16.25.1
php服务器的IP为172.16.25.4
mysql服务器的IP为172.16.25.3
一、使用httpd-2.4.9版本的安装包配置httpd服务 1、先需要解决依赖关系包 #yuminstall pcre-devel –y #yuminstall gcc –y 还需要较新版本的apr和apr-util,这两个安装包需要编译安装,httpd在编译安装的时候需要用到apr和apr-util (1)编译安装apr # tar xf apr-1.5.0.tar.bz2 # cd apr-1.5.0 # ./configure --prefix=/usr/local/apr # make && make install (2) 编译安装apr-util # tar xf apr-util-1.5.3.tar.bz2 # cd apr-util-1.5.3 # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr # make && make install 2、编译安装httpd安装包 # tar xfhttpd-2.4.9.tar.bz2 # cd httpd-2.4.9 # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24--enable-so --enable-mod_ssl --enable-cgi --enable-rewrite --with-zlib--with-pcre --with-apr=/usr/local/apr --with -apr-util=/usr/local/apr-util--enable-modules=most --enable-mpms-shared=all --with-mpm=event # make && make install (注:--sysconfdir=/etc/httpd24,因httpd服务是本来就有的,为了避免和原版的发生冲突,需要再创建一个文件夹存放) 3、修改httpd的主配置文件,设置其Pid文件的路径 编辑/etc/httpd/httpd.conf,添加如下行即可: PidFile "/var/run/httpd.pid" 4、添加新版本httpd的服务脚本 #vim /etc/rc.d/init.d/httpd24 而后为此脚本赋予执行权限: # chmod +x /etc/rc.d/init.d/httpd24 加入服务列表: # chkconfig --add httpd 接下来就可以启动服务进行测试了。 5、启用httpd的相关模块 在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模 块的扩充,因此,这两个模块都要加载 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 6、配置虚拟主机支持使用fcgi <VirtualHost 172.16.25.1:80> ServerNamewww.learning.com DocumentRoot"/usr/local/apache/htdocs/wordpress" ServerAliaswww.learning.com ProxyRequestsOff ProxyPassMatch^/(.*\.php)$ fcgi://172.16.25.4:9000/web/wordpress/$1 <Directory"/usr/local/apache/htdocs/wordpress"> Options none require allgranted </Directory> </VirtualHost>ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI, 所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。 7、编辑apache配置文件httpd.conf,让apache能识别php格式的页面,并支持php格式的主页 # vim /etc/httpd/httpd.conf 1)、添加如下二行 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps 2)、 定位至DirectoryIndex index.html 修改为: DirectoryIndex index.php index.html 二、配置php服务器 编译安装php-5.4.26 1、解决依赖关系: 请配置好yum源(可以是本地系统光盘)后执行如下命令: # yum -y groupinstall "X SoftwareDevelopment" #yum install libxml2-devel #yum install openssl-devel 2、编译安装php-5.4.26 #[root@localhost ~]# tar xf php-5.4.26.tar.bz2 #[root@localhost ~]# cd php-5.4.26 #./configure --prefix=/usr/local/php5--with-mysql=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir--with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets--enable-fpm --with-mcrypt --with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d --with-bz2 #make && make install 3、复制脚本文件,并开启开机自动启动 [root@localhost php-5.4.26]# cp php.ini-production /etc/php.ini [root@localhost php-5.4.26]# cp sapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm [root@localhost php-5.4.26]# chmod +x /etc/rc.d/init.d/php-fpm [root@localhost php-5.4.26]# chkconfig --add php-fpm [root@localhost php-5.4.26]# chkconfig php-fpm on 4、复制php-fpm的主配置文件,并添加相关配置项 [root@localhost ~]# cp/usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf [root@localhost ~]# vim /usr/local/php/etc/php-fpm.conf pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8 在[global]下配置pid pid = /usr/local/php5/var/run/php-fpm.pid 5、然后启动并查看端口号是否处于监听状态 [root@localhost ~]# netstat -tnlp | grep php-fpm 6、配置wordpress-3.2.1-zh_CN.zip安装包 #unzip wordpress-3.2.1-zh_CN.zip 将解压过的文件放在web文件中,等配置httpd服务时指向本目录 #mkdir web #mv wordpress web 进入目录内复制wordpress文件的主文件 #cp wp-config-sample.php wp-config.php 7、配置wordpress主配置文件 /** WordPress 数据库的名称 */ define('DB_NAME', 'via'); /** MySQL 数据库用户名 */ define('DB_USER', 'via'); ** MySQL 数据库密码 */ define('DB_PASSWORD', '123'); /** MySQL 主机 */ define('DB_HOST', '172.16.25.3'); 8、wordpress文件压缩并发送给httpd服务器的默认页面目录中 #[root@localhost web]# tar jcvf wordpress.tar.bz2 wordpress/ #[root@localhost web]# scp wordpress.tar.bz2 root@172.16.25.1:/usr/local/apache/htdocs/ 三、解压配置mariadb-5.5.36 1、先将数据库包解压至/usr/local目录下,然后在另一块硬盘上创建新建一个逻辑卷,并将其挂载至特定目录即可 (安装MySQL时一定要安装在与操作系统不同的磁盘的逻辑卷上,以免当操作系统磁盘损坏时,导致MySQL数据的丢失; 放在逻辑卷已方便当数据不断增大导致数据不够用时可动态可以使用快照的方式进行方便的备份数据) #dd if=/dev/zero of=/dev/sdb bs=512count=1(当磁盘中有数据时可使用此命令清零) [root@localhost ~]# pvcreate /dev/sdb1 [root@localhost~]# vgcreate myvg /dev/sdb1 [root@localhost ~]# lvcreate -L 10G -n mydatamyvg [root@localhost ~]# mke2fs -t ext4 -L MYDATA -b 4096 -m 3/dev/myvg/mydata 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。 [root@localhost ~]# mkdir mydata [root@localhost ~]# vim /etc/fstab [root@localhost ~]# mount -a 创建一个mysql数据的目录 [root@localhost ~]# mkdir mydata/data 2、新建用户以安全方式运行进程并更改目录属组,属主 [root@localhost ~]# groupadd -r mysql [root@localhost ~]# useradd -g mysql -r -s /sbin/nologin -M -d/mydata/data mysq [root@localhost ~]# chown -R mysql:mysql mydata/data 3、创建解压文件的软链接 [root@localhost local]# tar xf mariadb-5.5.36-C /usr/local [root@localhost local]# ln -sv mariadb-5.5.36-linux-x86_64 mysql 4、进入mysql目录内,更改所有文件的权限 [root@localhost local]# cd mysql [root@localhost mysql]# chown -R root.mysql ./* 5、将suport-files目录中的my-large.cnf文件复制到etc目录下,并编辑此文件添加选项 [root@localhost mysql]# mkdir /etc/mysql [root@localhost mysql]# cp support-files/my-large.cnf/etc/mysql/my.cnf [root@localhost mysql]# vim /etc/mysql/my.cnf (在[mysqld]下添加datadir = /mydata/data) 6、执行初始化命令 [root@localhost mysql]# scripts/mysql_install_db --user=mysql--datadir=/mydata/data 7、复制运行脚本到init.d目录下 [root@localhost mysql]# cpsupport-files/mysql.server /etc/rc.d/init.d/mysqld 8、复制完样本目录后在在查看是否有执行权限 [root@localhost mysql]# ll /etc/rc.d/init.d 9、添加环境变量 [root@localhost mysql]# vim /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin:$PATH 10、设置是否自动开启然后启动服务 [root@localhost mysql]# chkconfig --add mysqld [root@localhost mysql]# service mysqld start 11、进入数据库中,创建数据库,并授权用户 mysql> CREATE DATABASE via; 创建数据库 mysql> use via 进入via数据库 mysql> GRANT ALL ON via.* TO via@172.16.25.4 IDENTIFIEDBY '123'; 授权用户,授权时要指向PHP服务器 配置完成,使用客户端访问httpd服务器,查看配置结果 四、使用客户端看出配置结果 使用IP访问httpd服务器,可以看到wordpress时配置完成