内容简介:LAMP是Linux Apache MySQL PHP的缩写,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言。Apache是最常用的Web服务软件,而MySQL是比较小型的数据库软件。三个角色可以安装在一台机器上,也可以分开(但httpd和php要在一起的)下面来介绍如何构建LAMP环境:
LAMP是Linux Apache MySQL PHP的缩写,即把Apache、 MySQL 以及 PHP 安装在 Linux 系统上,组成一个环境来运行PHP的脚本语言。Apache是最常用的Web服务软件,而MySQL是比较小型的数据库软件。三个角色可以安装在一台机器上,也可以分开(但httpd和php要在一起的)
下面来介绍如何构建LAMP环境:
安装MySQL:(Mariadb安装几乎一样)
(1)MySQL/Mariadb介绍
MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被Oracle公司收购(74亿刀)
MySQL官网https://www.mysql.com 最新版本5.7GA/8.0DMR
MySQL5.6变化比较大,5.7性能上有很大提升
Mariadb为MySQL的一个分支,官网https://mariadb.com/最新版本10.2
MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立.
Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6
Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本
(2)MySQL安装过程:
①下载源码包到/usr/local/src/目录下:
进入该目录:cd /usr/local/src/
下载源码包:wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
②解压,然后挪动位置/usr/local/mysql
解压:tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old 这一步意思:是否存在mysql目录了,有的话,修改就mysql目录名称!
挪动位置:mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
③创建MySQL用户,启动MySQL需要该用户:useradd -s /sbin/nologin mysql
④创建MySQL数据库文件存放目录/data/mysql并更改权限:mkdir -p /data/mysql; chown -R mysql:mysql /data/mysql;
⑤进入/usr/local/mysql目录,初始化:./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
这里会出现FATAL ERROR报错,这是因为缺少 perl 包导致的,我们yum安装就好了:yum install -y perl-Module-Install
安装完成后,重新执行上一条命令;接下来你会看见两个OK,并且会在/data/mysql目录下生成了几个文件和目录,说明执行成功了。或者echo $?查看是否成功!
⑥复制配置文件:cp support-files/my-default.cnf /etc/my.cnf; (因为系统默认有my.cnf文件,所以会提示覆盖)
⑦修改配置文件:vim /etc/my.cnf
⑧复制启动脚本,并修改其属性
⑨修改启动脚本:vim /etc/init.d/mysqld
⑩到这里安装就完成了,接下来就是启动和检查了
从上图看见已经是启动成功了,还提示了mysql错误日志文件。
使用之前的命令检查MySQL是否启动了:
安装Apache:
(1)Apache介绍
Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache;Apache官网 www.apache.org
(2)Apache安装过程
①下载源码包存放在/usr/local/src/:
进入src目录:cd /usr/local/src
下载源码包以及两个依赖包:
httpd:wget http://mirrors.sohu.com/apache/httpd-2.4.29.tar.gz
apr:wget http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.3.tar.gz
apr-util:wget http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
②解压
tar -zxvf apr-1.6.3.tar.gz
tar -zxvf apr-util-1.6.1.tar.gz
tar -zxvf httpd-2.4.29.tar.gz
③安装依赖库,如果不安装这两个依赖,httpd2.4就无法工作(如果是httpd2.2是不用手动安装的)
安装apr:
cd /usr/local/src/apr-1.6.3
./configure --prefix=/usr/local/apr
make && make install
可能出错:(友情提示:安装软件时,最好没执行一步,就echo $?看看是否执行成功!)
错误提示很明显了,缺少gcc包;那我们就yum安装:yum install -y gcc;安装完成后,重新执行上面的命令!
安装apr-util:
cd /usr/local/src/apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
可能报错:
缺少expat.h文件,yum安装:yum install -y expat-devel;安装完成后,重新执行上面的命令!
④安装httpd:
cd /usr/local/src/httpd-2.4.29
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/lcal/apr-util --enable-so --enable-mods-shared=most
make && make install
可能报错:
解决办法: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
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
make && make install
⑤安装完成后,查看httpd的木目录结构和modules目录下的模块文件:
ls /usr/local/apache2.4/
bin build cgi-bin conf error htdocs icons include logs man manual modules
ls /usr/local/apache2.4/modules/
# 查看已经加载了哪些模块
/usr/local/apache2.4/bin/apachectl -M
安装PHP:
(1)下载源码包/usr/local/src/:wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz
(2)解压:tar -zxvf php-5.6.9.tar.gz
(3)配置编译参数:
./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
(4)编译和安装: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 libmcrypt-devel
(5)最后是复制配置文件:cp php.ini-production /usr/local/php/etc/php.ini
配置httpd支持PHP:
(1)修改httpd主配置文件/usr/local/apache2.4/conf/httpd.conf
搜索ServerName,删除前面的 '#'
找到<Directory />,修改成
<Directory />
AllowOverride none
Require all granted
</Directory>
在AddType增加一行:
测试LAMP是否成功:
(1)测试配置文件是否正确
(2)启动apache服务
(3)使用curl命令简单测试:
(4)测试是否正确解析php
添加测试php脚本!
到这里,LAMP环境就搭建好了,下面熟悉一下httpd的配置!
httpd配置:
(1)默认虚拟主机
编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf
然后编辑虚拟主机的配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
这样一个<VirtualHost>***</VirtualHost>就是一个虚拟主机了。
还要创建网站目录呢
mkdir -p /data/www/default.com
echo "This is the default site." > /data/www/default.com/index.html
(2)用户认证
编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf
接下来就是创建密码文件:(-c为create, -m为MD5加密;第二次就不用-c了,否则会清空密码文件)
用户认证效果:(当然你需要在本机的hosts文件加入虚拟机的IP和default.com才能在浏览器访问了)
当然你也可以对网站的文件进行用户认证了,新建了一个站点进行文件的用户认证。
效果:
(3)配置域名跳转
编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf
在<VirtualHost>站点加入下面的代码
当然还需要去httpd主配置文件,打开rewrite模块
验证是否开启:
配置完成后,使用curl进行测试
(4)配置访问日志
定义访问日志的格式在主配置文件httpd.conf
继续修改vhost配置文件:(默认是common,我们现在修改成combined)
当有访问时,会产生日志文件:(记录的信息明显变多了)
日志过滤掉图片、js、css等静态文件,节约磁盘容量,并且做 日志切割 ,一天一个文件!
在站点的配置文件vhost中加入过滤代码:
(5)配置静态元素过期时间
修改vhost:
(6)配置防盗链
(7)访问控制
①通过限制IP访问:
修改vhost配置文件:
效果:(192.168.159.131和127.0.0.1都是本机IP)
②也可以针对某个文件做限制
同样是修改vhost
效果:
③针对user_agent来做访问控制
修改vhost:(OR:或者;NC:不区分大小写;F:Forbidden)
效果:(curl -A指定user_agent)
④上传目录 禁止解析php代码
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
# 修改一下的设置项
log_errors = On
error_log = /var/log/php/php_errors.log
error_reporting = E_ALL & ~E_NOTICE
display_errors = Off
然后创建错误日志存放目录,并修改权限
(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
./configure --with-php-config=/usr/local/php/bin/php-config
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
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-10/154913.htm
以上所述就是小编给大家介绍的《LAMP环境搭建与配置》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Flutter开发环境搭建配置
- Docker 搭建与配置检查
- webpack入门(2) - 安装,配置,环境搭建
- 快速安装与配置kubernetes集群搭建
- NFS网络文件存储系统搭建配置详解
- RabbitMQ默认集群模式搭建配置实现步骤
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Where Wizards Stay Up Late
Katie Hafner / Simon & Schuster / 1998-1-21 / USD 16.00
Twenty five years ago, it didn't exist. Today, twenty million people worldwide are surfing the Net. "Where Wizards Stay Up Late" is the exciting story of the pioneers responsible for creating the most......一起来看看 《Where Wizards Stay Up Late》 这本书的介绍吧!
MD5 加密
MD5 加密工具
HSV CMYK 转换工具
HSV CMYK互换工具