什么是LAMP
LAMP=Linux Apache Mysql/MariaDB PHP/Perl/Python 这些软件都是开源免费的软件,几个程序各自是独立的,经常为了达到我们需要的效果而协同工作,组成了我们常见的LAMP架构平台!LAMP是世界上最流行的组合,当然同时也有Nginx,也就是LNMP: LAMP 相对于 NGINX 来说较为安全,但是Nginx处理高并发比Apache要强,NGINX 相对于 LAMP 来说安全较为差一点,同样的配制环境负载远远高于 LAMP 向国内的一些大公司,淘宝、新浪都在用这一些 NGINX,向那么大的公司网站需要用到服务器群用LAMP搭建环境成本远远大于NGINX。打个比方本来1000000W访问量需要 10台LAMP环境服务器才能完成,但是使用NGINX也许只需要5、6台这样一来对于这样的公司来说就大大的节约了成本。
从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案,在以前这句话没有错,但是在现在,这句话有待证实!!!因为在以后的过程中,会发现我们会使用的架构是Nginx和Apache结合使用:使用Nginx可以做集群等相关配置,可以和apache一起使用,有的会用apache去跑php,然后用nginx做反向代理,比如apache运行在8080端口,nginx在80端口,访问php文件时,反向代理到apache,静态页通过nginx处理。nginx支持高并发,apache对php的运行比较稳定。
常见的网页类型:htm,html,shtml,stm.php,asp,aspx,shtm,jsp等等Apache本事只处理静态页面,处理动态页面需要使用libphp5.so这个模块去工作,编译php也其实是将一个至关重要的模块打入到apache内部,然后apache收到php请求,将请求交给这个模块来处理!
依赖组件
yum groupinstall "Development Tools" "Development Libraries" -y
yum install gcc gcc-c++ openssl-devel -y
apr和apr-util依赖
tar xf apr-1.5.2.tar.gz -C /usr/local/src/ &&tar xf apr-util-1.5.4.tar.bz2 -C /usr/local/src/
cd /usr/local/src/apr-1.5.2/ && ./configure --prefix=/usr/local/apr && make -j 2 && make install
cd ../apr-util-1.5.4/ && ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make -j 2 && make install
cd && tar xf pcre-8.37.tar.bz2 -C /usr/local/src/
cd /usr/local/src/pcre-8.37/ && ./configure --prefix=/usr/local/pcre && make -j 2 && make install && cd
Apache源码编译
tar xvf httpd-2.4.16.tar.bz2 -C /usr/local/src/ && cd /usr/local/src/httpd-2.4.16
./configure --prefix=/usr/local/apache2.4 --enable-so --enable-rewrite --enable-ssl --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event && make -j 4 && make install
–prefix=/usr/local/apache2.4 #安装路径
–enable-so #支持动态加载模块
–enable-rewrite #支持网站地址重写
–enable-ssl #支持SSL加密
–with-pcre=/usr/local/pcre #pcre路径
–with-apr=/usr/local/apr #apr路径
–with-apr-util=/usr/local/apr-util #apr-util路径
一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式。它们分别是prefork,worker和event,它们同时也代表这Apache的演变和发展。
配置Apache的启动脚本
cp /usr/local/apache2.4/bin/apachectl /etc/init.d/apache2.4
vim /etc/init.d/apache2.4 添加如下内容
#!/bin/sh
# chkconfig: 2345 64 36
#这个是启动级别的服务,2345是指那些级别启动,64是开启顺序,应该在network服务的后面,36是关闭顺序,应该在network的前面,这里并不是注释
#默认network的是:2345 10 90
# description: Apache2.4.16 start script #描述字段,有了这两个字段,就可以用chkconfig命令控制
启动
service apache2.4 start
chkconfig apache2.4 on
一个用户用来运行apache
useradd -M -s /sbin/nologin apache
vim /usr/local/apache2.4/conf/httpd.conf
User apache #运行用户
Group apache #运行组,创建apache的时候已经即时创建了apache这个组
chown -R apache:apache /usr/local/apache2.4/
MySql
依赖
yum install -y cmake ncurses-devel
安装之前使用 yum remove mysql 确保没有安装MySQL
MySql
tar xf mysql-5.6.26.tar.gz -C /usr/local/src/ ; cd /usr/local/src/mysql-5.6.26
useradd -M -s /sbin/nologin mysql
//编译
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_MEMORY_STORAGE_ENGINE=1\
-DWITH_READLINE=1\
-DENABLED_LOCAL_INFILE=1\
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL-USER=mysql
//安装
make -j 4 && make install
配置mysql
cd && chown -R mysql:mysql /usr/local/mysql/ //属主属组更改
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf //覆盖原配置文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld //启动脚本
vim /etc/init.d/mysqld //更改启动脚本中指定mysql
#修改为
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
初始化数据库
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
启动设置
ln -s /usr/local/mysql/bin/* /bin/ //这个里面是部分命令,让系统直接调用
service mysqld start
mysql_secure_installation //初始安全设
PHP
依赖
yum install -y libxml2-devel
安装
tar xf php-5.6.13.tar.bz2 -C /usr/local/src/ ; cd /usr/local/src/php-5.6.13
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php
make –j 4 ; make install ; cd /usr/local/src/php-5.6.13
cp php.ini-production /usr/local/php/php.ini ; cd
检测
ls /usr/local/apache2.4/modules/httpd.exp
ls /usr/local/apache2.4/modules/libphp5.so
配置Apache支持PHP
vim /usr/local/apache2.4/conf/httpd.conf
248 <IfModule dir_module>
249 DirectoryIndex index.html index.php #添加index.php
250 </IfModule>
……
376 AddType application/x-compress .Z
377 AddType application/x-gzip .gz .tgz #上面两行是以前有的
378 AddType application/x-httpd-php .php #下面两行是添加的,需要添加以支持PHP
379 AddType application/x-httpd-php-source .phps
vim /usr/local/apache2.4/htdocs/index.php
<?php
phpinfo();
?>
然后再浏览器中测试