1. LAMP之“MySQL”安装
1. MySQL下载
官方下载地址:http://dev.mysql.com/downloads/mysql/#downloads
镜像文件下载:http://dev.mysql.com/downloads/mirrors.html- 下载MySQL安装程序
cd /usr/local/src/
wget ftp://ftp.stu.edu.tw/pub/Unix/Database/Mysql/Downloads/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz
2. 初始化安装
- 解压:
tar zxvf /usr/local/src/mysql-5.1.73-linux-i686-glibc23.tar.gz
- 移动解压的安装文件到/usr/local 目录下,并重修改名称为mysql
mv mysql-5.1.73-linux-i686-glibc23 /usr/local/mysql
- 建立MySQL账户:
useradd -s /sbin/nologin mysql
- 创建数据存放目录:
mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql
- 初始化数据库
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
这一步骤很关键,出现两个“OK” 说明执行正确;--user
定义数据库的所属主,--datadir
定义数据库数据存放位置,建议放到大空间的分区上,这个目录需要自行创建。
3. 修改配置、启动文件等
- 拷贝配置文件
cp support-files/my-large.cnf /etc/my.cnf
- 拷贝启动脚本文件、并修改属性
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
修改启动脚本文件
vim /etc/init.d/mysqld
将配置文件中这两个参数修改一下
basedir=/usr/local/mysql
datadir=/data/mysql
(basedir
mysql的安装程序目录;datadir
mysql数据存放目录,前面初始化数据库时定义的目录)
4. 启动
将启动脚本加入系统服务项,设置开机启动、并开启服务
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
如果启动不了,请到 /data/mysql/ 下查看错误日志,这个日志通常是主机名.err
检查mysql是否启动的命令为:ps aux |grep mysqld
至此MySQL安装完成
2. LAMP之“Apache”安装
1. Apache下载
Apache官网下载地址:http://apache.fayea.com/httpd/
- 下载Apache安装程序
cd /usr/local/src/
wget http://apache.fayea.com/httpd/httpd-2.2.31.tar.gz
- 解压:
tar jvxf httpd-2.2.31.tar.bz2
2. 编译安装
配置编译参数
cd httpd-2.2.31
./configure \--prefix=/usr/local/apache \--with-included-apr \--enable-so \--enable-deflate=shared \--enable-expires=shared \--enable-rewrite=shared \--with-pcre
--prefix
指定安装位置,--with-included-apr
apache依赖包 能让httpd跨平台运行,--enable-so
表示启用DSO,--enable-deflate=shared
表示共享的方式编译deflate
,后面的参数同理,--with-pcre
正则相关的运行库。- 如果这一步你出现了这样的错误:
error: mod_deflate has been requested but can not be built due to prerequisite failures
- 解决方法:
yum install -y zlib-devel
- 为了避免在make的时候出现错误,所以最好是提前先安装好一些库
yum install -y pcre pcre-devel apr apr-devel
编译安装:
make && make install
以上操作可以使用 echo $? 来检查是否正确执行,返回值为‘0’为正常;否则需要根据错误提示去解决问题。
3. Apache 相关参数
- Apache模块 *
/usr/local/apache/bin/apache/ -M
列出相关模块(-l 列出静态模块、-t查看配置文件是否有语法错误), * 显示的模块名(shared)为动态模块,显示的模块名(static)是静态模块;- 动态(shared)模块文件存放位置
/usr/local/apache/modules/
; - 动态模块文件为绿色.so结尾模块文件(动态文件为共享文件) 如:
httpd.exp libphp5.so mod_deflate.so mod_expires.so mod_rewrite.so
- 静态(static)模块编译后文件存放位置
/usr/local/apache/bin/httpd
;
- 动态(shared)模块文件存放位置
4. 启动Apache
启动:/usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl restart
停止:/usr/local/apache/bin/apachectl stop
重新加载配置:/usr/local/apache/bin/apachectl graceful
(重新加载配置,没有重新启动进程) DSO:是Dynamic Shared Objects(动态共享目标)的缩写,它提供了一种在运行时将特殊格式的代码在程序运行需要时,将需要的部分从外存调入内存执行的方法。Apache 支持动态共享模块,也支持静态模块,静态的话,会把需要的目标直接编译进apache的可执行文件中,相比较动态,虽然省去了加载共享模块的步骤,但是也加大了二进制执行文件的空间,变得臃肿。
至此Apache安装完成。
3. LAMP之“PHP”安装
1. 下载php:
PHP官方下载地址:http://php.net/downloads.php
- 下载php安装程序:
cd /usr/local/src
wget http://cn2.php.net/distributions/php-5.5.38.tar.gz
- 解压:
tar zxf php-5.5.38.tar.gz
2. 编译安装
- 配置编译参数:
cd php-5.5.38
./configure \ --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache/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 --enable-exif --disable-ipv6
- 编译安装:
make && make install
- 如遇到以下报错,可安装对应程序
- 1
configure: error: xml2-config not found. Please check your libxml2 installation.
yum install -y libxml2-devel
- 2
configure: error: Cannot find OpenSSL's <evp.h>
yum install -y openssl openssl-devel
- 3
checking for BZip2 in default path... not found<br>configure: error: Please reinstall the BZip2 distribution
yum install -y bzip2 bzip2-devel
- 4
configure: error: jpeglib.h not found.
yum install -y libjpeg libjpeg-devel
- 5
configure: error: png.h not found.
yum install -y libpng libpng-devel
- 6
configure: error: freetype.h not found.
yum install -y freetype freetype-devel
- 7
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
rpm -ivh "https://mirrors.tuna.tsinghua.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm"
因为centos6.x 默认的yum源没有 这个包,所以需要借助第三方yum源。yum install -y libmcrypt libmcrypt-devel
- 1
3. 拷贝配置文件:cp php.ini-production /usr/local/php/etc/php.ini
- PHP配置文件(php.ini) 在
/usr/local/php/etc/
目录下,默认这个配置文件是空的,需要在源文件中拷贝预配置文件然后进行配置修改; - 预配置文件目录:
/usr/local/src/php-5.5.38
,此目录下有两个预配置文件:- 开发使用:
php.ini-development
- 是生产使用
php.ini-production
- 开发使用:
- 正常Web服务器使用直接拷贝
php.ini-production
文件并命名为php.ini
cp /usr/local/src/php-5.5.38/php.ini-production /usr/local/php/etc/php.ini
- 拷贝后重新加载Apache:
/usr/local/apache/bin/apachectl graceful
4. 启动
- 拷贝启动文件:
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
- 设置权限:
chmod 755 /etc/init.d/php-fpm
- 设置开机启动:
chkconfig --add php-fpm
chkconfig php-fpm on
启动php:service php-fpm start
至此PHP安装完成
4. LAMP之“Apace结合PHP”、“LAMP是否成功”
1. apache结合php
- 编辑Apache主配置文件:
vim /usr/local/apache/conf/httpd.conf
- 找到:
AddType application/x-gzip .gz .tgz
在该行下面添加:AddType application/x-httpd-php .php
- 找到:
<IfModule dir_module> DirectoryIndex index.html </IfModule>
将该行改为:<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
- 找到:
#ServerName www.example.com:80
修改为:ServerName localhost:80
2. 测试LAMP是否成功
- 启动Apache
- 启动apache之前先检验配置文件是否正确:
/usr/local/apache/bin/apachectl -t
- 如果有错误,继续修改httpd.conf, 如果是正确的则显示为 “
Syntax OK
” - 启动apache的命令为:
/usr/local/apache/bin/apachectl start
- 启动apache之前先检验配置文件是否正确:
- 查看是否启动:
netstat -lnp |grep httpd
如果有显示这行,则启动了。tcp 0 0 :::80 :::* LISTEN 7667/httpd
- 使用curl命令简单测试:
curl localhost
显示以下字样;配置正确<html><body><h1>It works!</h1></body></html>[root@CentOS-1 ~]#
测试是否正确解析php:
写入:vim /usr/local/apache/htdocs/1.php
<?php echo "php解析正常"; ?>
保存后,继续测试:curl localhost/1.php
看是否能看到如下信息:php解析正常[root@localhost ~]#
只有显示如上才正确。-
初次使用浏览器访问我们的web服务的时候,你可能无法访问,这是因为防火墙的缘故。请运行下面的命令:
[root@localhost ~]# iptables -F
这样就可以清除系统默认的防火墙规则,放行80端口。
LAMP环境是搭建好了,这其实仅仅是安装上了软件而已,而具体的配置还是有很多工作要做的呢?也就是说,你虽然搭建出来了环境,但是如果不会配置细节的东西,相当于没有任何工作经验,所以还是多配置配置apache或者php