|
一、何为LAMP
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案
二、软件组合
Linux
Linux 是免费开源软件,这意味着源代码可用的操作系统。
Apache
Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。
MySQL
MySQL 是多线程、多用户的SQL数据库管理系统。
MySQL 已由Oracle公司自 2010 年 1 月 27 日通过SUN购买。SUN 最初于 2008 年 2 月 26 日收购 MySQL。
MariaDB
MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发。MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。由于不满MySQL被Oracle收购后的日渐封闭与缓慢的更新,众多Linux发行版逐渐抛弃了这个人气开源数据库,而转向了MariaDB。其中Centos 7默认已经采用MariaDB。互联网中维基百科,互联网巨头谷歌纷纷放弃MySQL转向MariaDB。
PHP
PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件。
三、编译安装Apache
[root@localhost ~]# yum groupinstall -y "Development Tools" "Server Platform Development"
#通过“包组”提供开发工具(make, gcc等)及开发环境(开发库,头文件,标准库等)
由于httpd-2.4需要依赖于apr-1.4和apr-util-1.4以上的版本,所以我们先编译安装此两个源码。apr全称apache portable runtime(Apache可移植运行库)。主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
[root@localhost ~]# tar xf apr-1.5.2.tar.bz2
[root@localhost ~]# cd apr-1.5.2
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.2]# make -j 4 && make install apr-1.5.2下载地址:http://mirrors.aliyun.com/apache/apr/apr-1.5.2.tar.bz2
[root@localhost ~]# tar xf apr-util-1.5.4.tar.bz2
[root@localhost ~]# cd apr-util-1.5.4
[root@localhost apr-util]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util]# make -j 4 && make install apr-util-1.5.4下载地址:http://mirrors.aliyun.com/apache/apr/apr-util-1.5.4.tar.bz2
由于httpd-2.4.16编译过程依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带,因此,可以直接挂载光盘使用yum安装。
[root@localhost ~]# yum install -y pcre-devel
[root@localhost ~]# tar xf httpd-2.4.16.tar.bz2
[root@localhost ~]# cd httpd-2.4.16
[root@localhost httpd-2.4.16]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24
--enable-so --enable-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
#--prefix:安装目录,--sysconfdir:配置文件目录,--enable-so:支持模块化机制,--enable-ssl:启动ssl
#--enable-cgi:启动cgi,--enable-rewrite:支持url重新,--with-zlib:支持传送压缩,--with-pcre:支持正则表达式
#--with-apr:指明apr安装路径,--with-apr-util:指明apr-util安装路径,--enable-modules:指明启用的模块
#--enable-mpms-shared:把所有支持的MPM都编译进来,--with-mpm:默认使用的MPM
[root@localhost httpd-2.4.16]# make -j 4 && make install httpd-2.4.16下载地址:http://mirrors.aliyun.com/apache/httpd/httpd-2.4.16.tar.bz2
为了后期管理方便,我们这里为编译安装的httpd-2.4提供一个管理脚本,可以复制通过yum源安装的httpd-2.2的配置文件进行修改。
[root@localhost ~]# cd /etc/rc.d/init.d/
[root@localhost init.d]# cp httpd httpd24
[root@localhost init.d]# vim httpd24
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
pidfile=${PIDFILE-/var/run/httpd/httpdi24.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
[root@localhost init.d]# chkconfig --add httpd24
#把httpd2.4设置为系统服务
[root@localhost init.d]# vim /etc/profile.d/httpd24.sh
export PATH=/usr/local/apache/bin:$PATH
[root@localhost init.d]# . /etc/profile.d/httpd24.sh
#把刚编译好的httpd2.4的脚本运行命令添加到环境变量中
[root@localhost init.d]# httpd -t
Syntax OK
[root@localhost init.d]# /etc/init.d/httpd24 start
Starting httpd: [ OK ]
[root@localhost init.d]# ss -anl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::80 :::*
#查看80端口已经处于监听状态
四、编译安装Mariadb
[root@wlw ~]# mkdir -pv /mariadb/data
[root@wlw ~]# chown -R mysql:mysql /mariadb/data/
#创建mariadb存放数据的位置
[root@wlw /]# groupadd -r mysql
[root@wlw /]# useradd -g mysql -r -s /sbin/nologin -M -d /mariadb/data mysql
#为mariadb新建用户以安全方式运行进程
[root@wlw ~]# tar xf mariadb-5.5.42.tar.gz -C /usr/local/
root@wlw ~]# cd /usr/local/
[root@wlw local]# ln -sv mariadb-5.5.42 mysql
`mysql' -> `mariadb-5.5.42'
[root@wlw local]# cd mysql/
[root@wlw mysql]# chown -R root:mysql ./*
[root@wlw mysql]# scripts/mysql_install_db --user=mysql --datadir=/mariadb/data
#--user:运行mariadb的用户名,--datadir:制定数据存放位置,由于数据库数据较大,一般单独分区存放(LVM)
[root@wlw mysql]# mkdir /etc/mysql
[root@wlw mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
#为mariadb提供主配置文件,存放在/etc/mysql中
[root@wlw mysql]# vim /etc/mysql/my.cnf
thread_concurrency = 2
datadir = /mariadb/data
#thread_concurrency:的值建议为你的CPU个数乘以2,datadir:数据库存放位置 Mariadb下载地址:http://archive.mariadb.org//mariadb-5.5.43/bintar-linux-x86_64/mariadb-5.5.43-linux-x86_64.tar.gz
为了后期管理方便,我们这里同样为mariadb提供服务脚本,这里mariadb中已经为我们提供好了,存放在 support-files/mysql.server 中
[root@wlw mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@wlw mysql]# chkconfig --add mysqld
[root@wlw mysql]# /etc/init.d/mysqld start
Starting MySQL.. [确定]
[root@wlw mysql]# ss -tnl
LISTEN 0 50 *:3306 *:*
[root@wlw mysql]# ./bin/mysql_secure_installation
#按照配置完成后建议对mariadb进行安全初始化,为root提供密码和删除匿名用户,使用mariadb默认提供的脚本 为了使mariadb的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤
[root@wlw mysql]# vim /etc/man.config
MANPATH /usr/local/mysql/man
#输出mysql的man手册至man命令的查找路径
[root@wlw mysql]# ln -sv /usr/local/mysql/include /usr/include/mysql
#输出mysql的头文件至系统头文件路径/usr/include
[root@wlw mysql]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
#输出mysql的库文件给系统库查找路径
[root@wlw mysql]# ldconfig
#让系统重新载入系统库
[root@localhost init.d]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
[root@localhost init.d]# . /etc/profile.d/mysql.sh
#把刚编译好的mysql的脚本运行命令添加到环境变量中
五、编译安装PHP
[root@wlw ~]# yum -y groupinstall "Desktop Platform Development"
[root@wlw ~]# yum -y install bzip2-devel libmcrypt-devel libxml2-devel
#解决php编译依赖关系,bzip2-devel在光盘中有提供,libmcrypt-devel在epel源中
[root@wlw ~]# tar xf php-5.4.40.tar.bz2
[root@wlw ~]# cd php-5.4.40
[root@wlw php-5.4.40]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-
openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir
--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets
--with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
#--prefix:默认安装路径,--with-mysql:指定mysql安装路径,--with-openssl:支持openssl,--with-mysqli:指定mysqli安装目录
#--enable-mbstring:开启多字节字符串的支持,支持中文必须开启,--with-zlib:支持压缩库,--enable-xml:支持处理xml文档
#--with-apxs2:把php编译成apache的模块,--with-mcrypt:开启加解密,--enable-maintainer-zts:这里为了支持apache的worker或event这两个MPM,编译成zts模块
[root@wlw php-5.4.40]# make -j 4 && make install
[root@wlw php-5.4.40]# cp php.ini-production /etc/php.ini
#为php提供配置文件
[root@wulewei ~]# vim /etc/httpd24/httpd.conf
LoadModule php5_module modules/libphp5.so
#编译php过程中自动添加的php模块(支持zts功能)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#让.php结尾的文件都识别为application/x-httpd-php-source的MINE类型,这种类型需要调用php模块处理
DirectoryIndex index.php index.html
#添加index.php到首页次序中
[root@wulewei ~]# /etc/init.d/httpd24 reload
#修改完配置文件后让httpd重读配置文件,让配置生效
[root@wulewei ~]# vim /usr/local/apache/htdocs/index.php |
|
|
|
|
|
|