web服务作为互联网的支柱及应用,在各种场合应用广泛.官方提供的rpm包由于要面对的是所有用户,把有些我们不需要的功能编译进去了,某些需要的功能又没编译进去.且官方提供的rpm版本通常都比较老旧,在实际应用中大多数情况都要使用源码来安装lamp平台.
环境:
操作系统:CentOs6.4
软件安装包:
APR:apr-1.5.2.tar.gz、apr-util-1.5.4.tar.gz
Apache:httpd-2.4.12.tar.gz
Mysql:mysql-5.6.24.tar.gz
PHP:php-5.6.8.tar.gz
一.安装Apache
1.安装开发工具包,使用
yum groupinstall "Development tools"
yum -y install openssl-devel.i686
yum -y install pcre-devel.i686
2.安装apr
./configure --prefix=/usr/local/apr
make && make install
3.安装apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
4.安装httpd
./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd --enable-so --enable-rewirte --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make && make install
5.给Apache提供服务脚本
编辑配置文件/etc/httpd/httpd.conf
增加一行指定pid文件路径:PidFile "/var/run/httpd.pid"
增加一行指定ServerName:ServerName localhost:80
找台安装了默认httpd版本的服务器找到/etc/init.d/httpd这个文件,复制过来改下
改完保存,然后把脚本复制到当前服务器的/etc/init.d目录下.就可以使用service httpd start等命令来控制httpd服务器了
6.把httpd脚本加到服务列表中去
chkconfig --add httpd
chkconfig --level 35 httpd on
7.增加环境变量路径
vi /etc/profile.d/httpd.sh
在里面输入:export PATH=$PATH:/usr/local/httpd/bin
至此Apache服务器安装完成,可以在浏览器中输入地址测试下.
二.安装mysql
1.下载安装cmake
yum -y insatll cmake ncurses-devel libtool-ltdl-devel.i686
2.添加mysql用户mysql组
groupadd -r mysql
useradd -g mysql mysql
3. 在/下面创建data目录用来放置mysql的数据文件
mkdir data
chown mysql /data
chgrp mysql /data
4.编译安装
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install
漫长的等待.....
5.初始化mysql
chgrp mysql /usr/local/mysql
在mysql目录里找到scripts目录执行里面的脚本
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data --basedir=/usr/local/mysql
(ps:如果直接到scripts里面用相对路径执行的话会报错 FATAL ERROR: Could not find ./bin/my_print_defaults,找不到当前目录下./bin/目录里面的my_print_defaults文件_论使用绝对路径的重要性)
6.编辑配置文件/usr/local/mysql/
指定pid文件目录:pid-file=/data
指定data目录:datadir=/data
6.给mysql提供服务脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d
7.把httpd脚本加到服务列表中去
chkconfig --add mysqld
chkconfig --level 35 mysqld on
8.增加环境变量路径
vi /etc/profile.d/mysqld.sh
三.安装PHP
1.解决各种坑人的依赖关系,记不住等预编译报错然后一个个的解决
yum -y install libxml2-devel.i686 libxml2.i686
2.编译
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbsting --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-sockets --with-apxs2=/usr/local/httpd/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bzip2 --enable-maintainer-zts
make && make install
3.给php提供配置文件
cp php.ini-production /etc/php.ini
4.编辑Apache的配置文件让其支持php
在AddType后面增加两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
在DirectoryIndex index.html后面添上index.php
在LoadModule 后面增家一行开启php模块
LoadModule php5_module modules/libphp5.so
至此LAMP平台安装完成.
四.测试
1.测试是否能解析php文件,在apache的网站目录下放个index.php文件
结果如下:
2.测试php能否连接mysql
测试结果就不上图了...
附:
1:Apache编译参数
--prefix=/usr/local/apache :指定安装目标路径
--sysconfdir=/etc/httpd :指定配置文件安装位置
--enable-so :支持动态共享模块,如果没有这个模块PHP将无法与apache结合工作
--enable-rewirte :支持URL重写
--enable-ssl :启用支持ssl
--enable-cgi :启用支持cgi
--enable-cgid :启用支持带线状图形的CGI脚本 MPMs
--enable-modules=most :安装大多数模块
--enable-modules-shared=most :安装大多数共享模块
--enable-mpms-shared=all :支持全部多道处理方式
--with-apr=/usr/local/apr :指定apr路径
--with-apr-util=/usr/local/apr-util :指定apr-util路径
2:mysql编译参数
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
3:PHP编译参数
--prefix=/usr/local/php
指定 php 安装目录
--with-apxs2=/usr/local/apache/bin/apxs
整合 apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块
--with-config-file-path=/usr/local/php/etc
指定php.ini位置
--with-MySQL=/usr/local/mysql
mysql安装目录,对mysql的支持
--with-mysqli=/usr/local/mysql/bin/mysql_config
mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。
--enable-safe-mode 打开安全模式
--enable-ftp 打开ftp的支持
--enable-zip 打开对zip的支持
--with-bz2 打开对bz2文件的支持
--with-jpeg-dir 打开对jpeg图片的支持
--with-png-dir 打开对png图片的支持
--with-freetype-dir 打开对freetype字体库的支持
--without-iconv 关闭iconv函数,种字符集间的转换
--with-libXML-dir 打开libxml2库的支持
--with-XMLrpc 打开xml-rpc的c语言
--with-zlib-dir 打开zlib库的支持
--with-gd 打开gd库的支持
--enable-gd-native-ttf 支持TrueType字符串函数库
--with-curl 打开curl浏览工具的支持
--with-curlwrappers 运用curl工具打开url流
--with-ttf 打开freetype1.*的支持,可以不加了
--with-xsl 打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件
--with-gettext 打开gnu 的gettext 支持,编码库用到
--with-pear 打开pear命令的支持,PHP扩展用的
--enable-calendar 打开日历扩展功能
--enable-mbstring 多字节,字符串的支持
--enable-bcmath 打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-sockets 打开 sockets 支持
--enable-exif 图片的元数据支持
--enable-magic-quotes 魔术引用的支持
--disable-rpath 关闭额外的运行库文件
--disable-debug 关闭调试模式
--with-mime-magic=/usr/share/file/magic.mime 魔术头文件位置
CGI方式安装才用的参数
--enable-fpm
打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序
--enable-fastCGI
支持fastcgi方式启动PHP
--enable-force-CGI-redirect
重定向方式启动PHP
--with-ncurses
支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库
--enable-pcntl freeTDS需要用到的,可能是链接mssql 才用
mhash和mcrypt算法的扩展
--with-mcrypt 算法
--with-mhash 算法
以上函数库需要安装
--enable-inline-optimization 优化线程
--with-openssl openssl的支持,加密传输时用到的
--enable-dbase 建立DBA 作为共享模块
--with-pcre-dir=/usr/local/bin/pcre-config perl的正则库案安装位置
--disable-dmalloc
--with-gdbm dba的gdbm支持
--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-zend-multibyte 支持zend的多字节
--enable-mbregex
--enable-wddx
--enable-shmop
--enable-soap