LAMP是Linux Apache MySQL PHP的缩写,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言。Apache是最常用的Web服务软件,而MySQL是比较小型的数据库软件。三个角色可以安装在一台机器上,也可以分开(但httpd和php要在一起的)
步骤一、安装Mysql
1)下载源码包到/usr/local/src/目录
[root@localhost lamp]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
2)解压源码包
[root@localhost lamp]# tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
3)检测/usr/local/目录下有没有mysql这个文件夹,有的话修改名字为mysql_old
[root@localhost lamp]# [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old
4)移动解压后的mysql到/usr/local目录下
[root@localhost lamp]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
5)创建MySQL用户,启动MySQL需要该用户
[root@localhost lamp]# useradd -s /sbin/nologin mysql
6)创建MySQL数据库文件存放目录/data/mysql并更改权限
[root@localhost ~]# mkdir -p /data/mysql [root@localhost ~]# chown -R mysql:mysql /data/mysql/
7)进入/usr/local/mysql目录,初始化
[root@localhost ~]# cd /usr/local/mysql/ [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
报错
解决方法:yum install perl gcc kernel-devl
报错
解决方法:yum install -y perl-Module-Install
报错
解决方法:yum install libaio* -y
8)安装完成后执行echo $? 输出结果为0,则表示初始化成功
9)复制配置文件:cp support-files/my-default.cnf /etc/my.cnf; (因为系统默认有my.cnf文件,所以会提示覆盖)
[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
10)修改配置文件:vim /etc/my.cnf
11)复制启动脚本,并修改其属性
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld
12)修改启动脚本:vim /etc/init.d/mysqld
13)启动服务
[root@localhost mysql]# chkconfig --add mysqld 加入系统服务列表 [root@localhost mysql]# chkconfig mysqld on 设置开机自启 [root@localhost mysql]# service mysqld start 启动服务
ln -s /usr/local/mysql/bin/mysql /usr/bin
14)检查是否启动成功
[root@localhost mysql]# ps aux | grep mysqld
步骤二、安装Apache
1)下载源码包与两个必须的依赖包
[root@localhost lamp]# wget http://mirrors.sohu.com/apache/httpd-2.4.37.tar.gz [root@localhost lamp]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.gz [root@localhost lamp]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
2)解压三个包
[root@localhost lamp]# tar -zxvf apr-1.6.5.tar.gz [root@localhost lamp]# tar -zxvf apr-util-1.6.1.tar.gz [root@localhost lamp]# tar -zxvf httpd-2.4.37.tar.gz
3)安装apr(友情提示:安装软件时,最好每执行一步,就echo $?看看是否执行成功!)
[root@localhost apr-1.6.5]# cd apr-1.6.5 [root@localhost apr-1.6.5]# ./configure --prefix=/usr/local/apr [root@localhost apr-1.6.5]# make &&make install [root@localhost apr-1.6.5]# echo $? 0
4)安装apr-util
报错
解决方法:yum install -y expat-devel
[root@localhost apr-util-1.6.1]# cd apr-util-1.6.1 [root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@localhost apr-util-1.6.1]# make && make install
5)安装httpd
报错
解决方法:yum install -y pcre pcre-devel
报错
说明:缺少了xml相关的库,需要安装libxml2-devel包。直接安装并不能解决问题,因为httpd调用的apr-util已经安装好了,但是apr-util并没有libxml2-devel包支持
解决办法
# 安装libxml2-devel包 yum install -y libxml2-devel # 删除apr-util安装目录,并重新编译安装 rm -rf /usr/local/apr-util cd /usr/local/src/apr-util-1.6.1 # 这一步很重要,必须清除之前配置时的缓存 make clean ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install # 重新编译安装httpd cd /usr/local/src/httpd-2.4.29 # 同样要清理之前的缓存十分重要 make clean
重新安装httpd
[root@localhost httpd-2.4.37]# cd httpd-2.4.37 [root@localhost httpd-2.4.37]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most [root@localhost httpd-2.4.37]# make && make install [root@localhost httpd-2.4.37]# echo $? 0
步骤三、安装PHP
1)下载源码包
[root@localhost lamp]# wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz
2)解压源码包
[root@localhost lamp]# tar -zxvf php-5.6.9.tar.gz
3)编译安装
[root@localhost php-5.6.9]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --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
[root@localhost php-5.6.9]# make && make install
报错
解决方法
:yum install -y openssl openssl-devel
报错
解决方法:yum install -y bzip2 bzip2-devel
报错
解决方法:yum install -y libjpeg libjpeg-devel
报错
解决方法:yum install -y libpng libpng-devel
报错
解决方法:yum install -y lfreetype freetype-devel
报错
解决方法:yum install -y epel-release yum install -y libmcrypt-devel 两个必须分开装,因为centosyum源里没有libmcrypt-devel这个包
4)复制配置文件
[root@localhost php-5.6.9]# cp php.ini-production /usr/local/php/etc/php.ini
步骤四、让http支持php
1)修改httpd主配置文件/usr/local/apache2.4/conf/httpd.conf
搜索ServerName,删除前面的 '#'
找到<Directory />,修改成
在AddType增加一行:
定义默认首页
步骤五、测试LAMP是否成功
1)测试配置文件是否正确
[root@localhost conf]# /usr/local/apache2.4/bin/apachectl -t Syntax OK
2)启动服务
[root@localhost conf]# /usr/local/apache2.4/bin/apachectl start
3)客户端测试是否成功解析php代码
HTTP配置:
(1)配置虚拟主机
编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf
在末尾加入
#Virtual hosts Include conf/extra/httpd-vhosts.conf 导入这个配置文件
然后编辑虚拟主机的配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80> DocumentRoot "/usr/local/apache2.4/htdocs/aa" //定义网站的位置 ServerName defaule.com //网站的域名 ServerAlias www.defaule.com ErrorLog "logs/dummy-host.example.com-error_log" //错误日志 CustomLog "logs/dummy-host.example.com-access_log" common //访问日志 </VirtualHost>
这样一个<VirtualHost>***</VirtualHost>就是一个虚拟主机了
重启httpd服务
[root@localhost aa]# /usr/local/apache2.4/bin/apachectl restart
创建虚拟网站,客户端测试访问
2)配置用户认证
编辑httpd虚拟主机配置文件httpd-vhosts.conf:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
接下来就是创建密码文件:(-c为create, -m为MD5加密;第二次就不用-c了,否则会清空密码文件)
[root@localhost aa]# /usr/local/apache2.4/bin/htpasswd -cm /usr/local/apache2.4/htdocs/aa/.htpasswd admin New password: Re-type new password: Adding password for user admin
[root@localhost aa]# /usr/local/apache2.4/bin/apachectl -t 检测配置文件是否正确
Syntax OK
[root@localhost aa]# /usr/local/apache2.4/bin/apachectl graceful 动态加载配置文件
3)配置域名跳转
编辑httpd虚拟主机配置文件httpd-vhosts.conf:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
在<VirtualHost>站点加入下面的代码
编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf
打开rewrite模块
4)配置访问日志
定义访问日志的格式在主配置文件httpd.conf
这里为日志的输出格式
再修改虚拟主机配置文件
修改之后日志会详细很多
日志过滤掉图片、js、css等静态文件,节约磁盘容量,并且做日志切割,一天一个文件! 在站点的配置文件vhost中加入过滤代码:
5)配置静态文件过期时间
在虚拟主机配置文件中添加
PHP配置:
(1)查看php配置文件所在路径:/usr/local/php/bin/php -i |grep -i "loaded configaration file"
设置时区:vim /usr/local/php/etc/php.ini
(2)禁用一些php内置的危险函数
(3)配置日志error_log
打开php配置文件php.ini:vim /usr/local/php/etc/php.ini
然后创建错误日志存放目录,并修改权限
(4)配置open_basedir
open_basedir的作用是将网站限定在指定的目录里,万一一个站点被黑了,也不会影响其他的站点。
如果直接在php配置文件设置open_basedir参数的,就是所有的站点都定义在一起了,起不到open_basedir的作用。
下面介绍在每个站点的独立虚拟主机上配置open_absedir:
(5)PHP动态扩展模块安装
查看php加载了哪些功能模块:
/usr/local/php/bin/php -m
安装php的redis扩展模块:
①下载模块:wget https://codeload.github.com/phpredis/phpredis/zip/develop
②重命名:mv develop phpredis-develop.zip; 解压:unzip phpredis-develop.zip
③生成可执行文件:cd phpredis-develop/ ; /usr/local/php/bin/phpize
报错:
安装:yum install -y autoconf
④编译安装 三部曲:./configure make make install
⑤查看安装的模块文件:ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
⑥编辑php配置文件:echo "extension = redis.so" >> /usr/local/php/etc/php.ini
⑦检验:/usr/local/php/bin/php -m|grep redis