一,LAMP的安装流程:mysql、apache、php或者apache、mysql、php。php放到最后的原因是,php在编译安装的时候是依赖于前2者的。
二,Mysql的安装:
1.下载mysql,可以通过http://mirrors.sohu.com/下载mysql软件。
wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz
2.解压并重命名
tar -zxvf mysql-5.1.73-linux-i686-glibc23.tar.gz
mv mysql-5.1.73-linux-i686-glibc23 /usr/local/mysql/
3.建立MySQL用户,创建datadir目录。
useradd -s /sbin/nologin mysql
mkdir -p /data/mysql/
chown mysql /data/mysql/
4,初始化数据库。
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ 查看是否有2个OK或者echo $?以此判断初始化数据库是否成功。
初始化成功后会在/data/mysql生成mysql和test的2个目录。
5,拷贝配置文件、启动脚本,并将mysql添加到服务列表设置开机启动。
cp support-files/mysql-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld 修改/etc/init.d/mysqld的配置文件中的basedir datadir。
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
/etc/init.d/mysqld start
三,安装apache
1,下载httpd并解压。
wget http://mirrors.sohu.com/apache/httpd-2.2.31.tar.gz
tar -zxvf httpd-2.2.31.tar.gz
2,编译前的参数配置
cd /usr/local/ httpd-2.2.31
./configure\
--prefix=/usr/local/apache2 \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre
其中 --prefix 指定安装到哪里, --enable-so 表示启用DSO,这个是用来支持安装扩展模块的,比如你rewrite这个模块没有安装但是你是在编译启动了DSO,这个时候你就可以扩展安装rewrite模块了,使用的工具是apache自动的apxs扩展工具。其实这个就是一个perl脚本,具体如何扩展安装其他模块,后续会在此处添加链接。
--enable-deflate=shared 表示共享的方式编译deflate,后面的参数同理。
上述操作是否成功,可以通过echo $?的返回值来确认。
3,编译
make make后会在当前目录生成一个makefile的一个文件,如果没有编译前的配置,直接make就会出现找不到makefile。
4,安装
make install 将软件安装到你指定的目录。
5,启动httpd
/usr/local/apache2/bin/apachectl start,会有一行提示,
httpd: Could not reliably determine the server‘s fully qualified domain name, using localhost.localdomain for ServerName
这个是因为没有开启ServerName,修改httpd的配置文件,vim /usr/local/apache2/conf/httpd.conf将ServerName注释取消掉即可。
ps aux|grep httpd 用浏览器访问,是否显示It works.
四,安装php
4.1 ,下载php并解压。
wgethttp://mirrors.sohu.com/php/php-5.3.28.tar.gz
tar -zxvf php-5.3.28.tar.gz
cd php-5.3.28
4.2,编译前的参数配置
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-bz2 \
--with-openssl \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-mbstring \
--enable-sockets \
--with-apxs2=/usr/local/apache2/bin/apxs 让系统自动加载phplib5.so的扩展模块 ,并且在httpd.conf添加php模块,是个扩展工具。
编译前的参数配置会出现各种报错,但是都是缺少库文件而已。可以根据报错信息,安装对应的库文件即可。
configure: error: xml2-config not found. Please check your libxml2 installation.
解决办法是:
yum install -y libxml2-devel
还有错误:
configure: error: Cannot find OpenSSL‘s <evp.h>
解决办法是:
yum install -y openssl openssl-devel
错误:
checking for BZip2 in default path... not found configure: error: Please reinstall the BZip2 distribution
解决办法:
yum install -y bzip2 bzip2-devel
错误:
configure: error: png.h not found.
解决办法:
yum install -y libpng libpng-devel
错误:
configure: error: freetype.h not found.
解决办法:
yum install -y freetype freetype-devel
错误:
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决办法:
yum install -y epel-release yum install -y libmcrypt-devel
因为centos6.x 默认的yum源没有libmcrypt-devel 这个包,只能借助第三方yum源。另外,这里安装的包都是*-devel的包。
4.3,编译
make
4.4,安装
make install
4.5 拷贝配置文件
cp php.ini-production /usr/local/php/etc/php.ini
五,Apache与PHP结合
Apache主配置文件为:/usr/local/apache2/conf/httpd.conf
vim/usr/local/apache2/conf/httpd.conf
找到:
AddType application/x-gzip .gz .tgz
在该行下面添加:
AddType application/x-httpd-php .php 添加可以对php脚本解析,必须添加上对应的类型
找到:
<IfModule dir_module> DirectoryIndex index.html </IfModule>
将该行改为:
<IfModule dir_module> DirectoryIndex index.html index.htm index.php </IfModule> 增加对PHP的索引 自动索引页
PHP测试代码
<?php
echo "What fucking is PHP!";
?>
/usr/local/php/bin/php -m 查看模块
/usr/local/php/bin/php -i 查看配置信息
/usr/local/php/bin/php |grep -i ‘configure‘
/usr/local/php/bin/php -v 查看版本
/usr/local/php/bin/php -i |head 查看编译参数 也可以查看php源码中的config.nice
/usr/local/php/bin/php -i |grep configure
打开浏览器进行访问,查看能否正常解析PHP。