linux lamp下mysql_lamp :在Linux 下搭建apache、Mysql、php

CentOS下搭建LAMP环境

LAMP: Linux + Apache + PHP + Mysql。

系统: CentOS 7,64位。

CentOS安装

我选取了64位的CentOS 7这个Linux系统,安装过程也很简单,不再过多叙述,只稍微介绍一下我的分区情况:

Apache编译安装

我选择了httpd 2.2这个版本,可以参考官方说明文档。

安装依赖:

安装依赖需要用到的gcc、g++编译器:

########gcc、g++

sudo yum install gcc

sudo yum install gcc-c++

下面两个是apache的优化工具:

########apr

wget http://labfile.oss.aliyuncs.com/apr-1.5.1.tar.gz

tar -zxvf apr-1.5.1.tar.gz

cd apr-1.5.1/

./configure --prefix=/opt/apr

sudo make && make install

########apr-util

cd Downloads/

wget http://labfile.oss.aliyuncs.com/apr-util-1.5.4.tar.gz

tar -zxvf apr-util-1.5.4.tar.gz

cd apr-util-1.5.4

./configure --prefix=/opt/apr-util --with-apr=/opt/apr

sudo make && make install

Perl库,兼容正则表达式库:

cd Downloads/

wget http://labfile.oss.aliyuncs.com/pcre-8.36.tar.gz

tar -zxvf pcre-8.36.tar.gz

cd pcre-8.36

./configure --prefix=/opt/pcre

sudo make && make install

安装apache:

cd Downloads/

wget http://labfile.oss.aliyuncs.com/httpd-2.2.29.tar.gz

tar -zxvf httpd-2.2.29.tar.gz

cd httpd-2.2.29

./configure --prefix=/opt/apache --with-apr=/opt/apr --with-apr-util=/opt/apr-util --with-pcre=/opt/pcre

sudo make && make install

sudo sed -i 's/^#ServerName.*/ServerName localhost/' /opt/apache/conf/httpd.conf

测试:

启动:

sudo /opt/apache/bin/apachectl start

获取服务器回应(安装apache最后一步已经将服务器设为localhost):

curl -I 127.0.0.1

若安装成功则如下:

eb879c0d78bad411817611f86889749c.png

关闭:

sudo /opt/apache/bin/apachectl stop

MySQL编译安装

安装依赖:

###若先前编译过,则需要删除刚才编译生成的CMakeCache.txt文件

rm -f CMakeCache.txt

sudo yum -y install gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* cmake cmake-gui libaio-devel bison-devel make

编译安装(时间较长):

cd Downloads/

wget http://labfile.oss.aliyuncs.com/mysql-5.6.24.tar.gz

tar -zxvf mysql-5.6.24.tar.gz

cd mysql-5.6.24

cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_DATADIR=/opt/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1

sudo make

sudo make install

创建mysql用户:

id mysql > /dev/null 2>&1 || sudo useradd -r -s /sbin/nologin -M -d /opt/mysql/data mysql

初始化数据目录:

sudo chown -R mysql:mysql /opt/mysql/data

sudo /opt/mysql/scripts/mysql_install_db --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql --defaults-file=/opt/mysql/support-files/my-default.cnf

修改配置文件:

sudo sh -c 'cat >> /opt/mysql/my.cnf <

basedir = /opt/mysql

datadir = /opt/mysql/data

log-error = /opt/mysql/data/error.log

pid-file = /opt/mysql/data/mysql.pid

port = 3306

EOF'

清除残留文件:

sudo sh -c 'for file in /etc/mysql/my.cnf /etc/my.cnf ; do [ -f $file ] && rm -f $file ; done'

启动:

sudo /opt/mysql/support-files/mysql.server start

成功则显示:

25af0c6b908bd6c96807a40bd1251e9f.png

测试:

/opt/mysql/bin/mysqladmin ping

成功则显示:

7b64b1a56eca10e4500cd0f3010b7bf4.png

查看数据库:

/opt/mysql/bin/mysql -u root -e 'show databases;'

关闭:

sudo /opt/mysql/support-files/mysql.server stop

成功则显示:

25c2cf48acecab9444805415153d3ad6.png

PHP编译安装

安装依赖:

最后三个文件可以从这里下载。

cd Downloads/

sudo yum install zlib1g-dev libbz2-dev libcurl4-gnutls-dev libjpeg-dev libpng12-dev libfreetype6-dev libmcrypt-dev libxml2-dev

sudo yum install bzip2-devel.x86_64 -y

sudo yum -y install curl-devel

sudo yum install openssl.x86_64 openssl-devel.x86_64 -y

sudo yum install libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 -y

sudo yum install libjpeg libjpeg-devel libpng libpng-devel

编译安装:

cd Downloads/

wget http://labfile.oss.aliyuncs.com/php-5.5.21.tar.gz

tar -zxvf php-5.5.21.tar.gz

cd php-5.5.21

./configure --prefix=/opt/php --with-bz2 --with-curl --with-jpeg-dir --with-gd --enable-shared --enable-mbstring --with-mcrypt --with-mysql=/opt/mysql --with-pdo-mysql=/opt/mysql --with-mysqli=/opt/mysql/bin/mysql_config --enable-fpm --enable-phar --enable-bcmath --with-zlib --enable-zip --enable-ftp --with-gettext --enable-sockets --with-freetype-dir --with-config-file-path=/opt/php/etc/php.ini --with-config-file-scan-dir=/opt/php/etc/conf.d --with-apxs2=/opt/apache/bin/apxs

sudo make

sudo make install

sudo cp php.ini-production /opt/php/etc/php.ini

检查php是否支持mysql:

/opt/php/bin/php -m | grep mysql

若支持则显示:

34f440017225dc36aecc566ed8c5c16d.png

修改apache配置文件,添加php的支持配置:

sudo sh -c 'cat >> /opt/apache/conf/httpd.conf <

AddType application/x-httpd-php .php

EOF'

若关闭则开启apache,否则重新启动apache:

sudo /opt/apache/bin/apachectl -k restart

测试:

sudo sh -c 'echo "<?php echo phpinfo(); ?>" > /opt/apache/htdocs/test.php'

在浏览器输入:

http://localhost/test.php

配置成功则显示php信息:

51737bb572984d821c9563a0ada79c81.png

在php.ini中加载模块:

sudo sh -c 'echo "extension=ftp.so" >> /opt/php/etc/php.ini'

1

LAMP配置

php配置:

配置文件/opt/php/etc/php.ini:

###常规配置

engine = On

short_open_tag = Off #tags识别

asp_tags = Off #asp tags识别

precision = 14 #浮点类型数显示时的有效位数

output_buffering = 4096 #输出缓存允许你在输出正文内容之后发送 header

implicit_flush = Off #告诉输出层在每个输出块之后自动刷新自身数据

disable_functions = #关闭特定函数

display_errors = Off #显示错误信息

log_errors = On #在日志文件里记录错误

request_order = "GP" #GET POST

register_argc_argv = On #是否声明 argv和argc 变量

post_max_size = 8M #最大POST大小

file_uploads = On #是否允许HTTP方式文件上载

upload_tmp_dir = #用于HTTP上载的文件的临时目录

upload_max_filesize = 2M #上载文件的最大大小

max_file_uploads = 20 #每次最大上传文件个数

allow_url_fopen = On #是否允许把URLs当作http:.. 或把文件当作ftp:...

default_socket_timeout = 60 #默认socker超时时间

#MySQL相关

mysql.allow_persistent = On #允许持久连接

mysql.cache_size = 2000 #缓存大小

mysql.max_persistent = -1 #持久连接的最大数目 -1不限制

mysql.max_links = -1 #最大链接

mysql.connect_timeout = 60 #连接超时时间

#session相关

session.save_handler = files #用于保存/取回数据的控制方式

session.use_cookies = 1 #是否使用cookies

session.name = PHPSESSID #设置cookies名

session.use_only_cookies = 1 #强制SESSION ID必须以COOKIE传递

session.auto_start = 0 #在请求启动时初始化session

session.cookie_lifetime = 0 #cookies保持时间

#session垃圾回收参数

session.gc_probability = 1 #按百分比整理

session.gc_divisor = 1000 #每次请求时有1/1000的机会启动"垃圾回收"进程

#Session ID传递参数

session.use_trans_sid = 0 #使用URL的方式传递session id

session.hash_function = 0 #生成SID MD5算法

session.hash_bits_per_character = 5 #指定在SID字符串中的每个字符内保存多少bit

#常用配置参数

max_execution_time 30 #一个脚本可使用多少 CPU 秒

max_input_time 60 #一个脚本等待输入数据的时间有多长(秒)

memory_limit 32M #在被取消之前,一个脚本可使用多少内存(字节)

output_buffering 4096 #数据发送给客户机之前,有多少数据(字节)需要缓存

apache配置:

apache主配置文件/opt/apache/conf/httpd.conf:

#apache服务根目录

ServerRoot "/opt/apache"

#服务管理员

ServerAdmin you@example.com

#监听端口

Listen 80

#默认首页

DirectoryIndex index.php

#加载php模块

LoadModule php5_module modules/libphp5.so

#解析php

AddType application/x-httpd-php .php

#目录权限参数

DocumentRoot "/opt/apache/htdocs" #WEB文件根目录

# 官方文档链接 http://httpd.apache.org/docs/2.2/mod/core.html

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all #允许所有请求

AllowOverride参数详解:

none 不允许.htaccess使用任何指令。

AuthConfig 允许使用所有的权限指令,包括 AuthDBMGroupFile AuthDBMUserFile AuthGroupFile AuthName AuthTypeAuthUserFile 和 Require。

FileInfo 允许使用文件控制类型的指令。包括 AddEncoding AddLanguage AddType DEfaultType ErrorDocument LanguagePriority。

Indexes 允许使用目录控制类型的指令。包括 AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon DirectoryIndex FancyIndexing HeaderName IndexIgnore IndexOptions ReadmeName。

Limit 允许使用权限控制指令。包括Allow Deny和Order。

Options 允许使用控制目录特征的指令,包括Options 和XBitHack。

Options参数详解:

All 表示除MultiViews之外的所有特性。这也是Options指令的默认设置。

None 表示不启用任何的服务器特性。

FollowSymLinks 服务器允许在此目录中使用符号连接。如果该配置选项位于配置段中,将会被忽略。

Indexes 如果输入的网址对应服务器上的一个文件目录,而此目录中又没有DirectoryIndex指令

MultiViews 允许使用mod_negotiation模块提供内容协商的”多重视图”。如果客户端请求的路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件。

SymLinksIfOwnerMatch 服务器仅在符号连接与目标文件或目录的所有者具有相同的用户ID时才使用它。只有当符号连接和符号连接指向的目标文件或目录的所有者是同一用户时,才会使用符号连接。

ExecCGI 允许使用mod_cgi模块执行CGI脚本。

Includes 允许使用mod_include模块提供的服务器端包含功能

IncludesNOEXEC 允许服务器端包含,但禁用”#exec cmd”和”#exec cgi”。但仍可以从ScriptAlias目录使用”#include virtual”虚拟CGI脚本。

#日志配置参数

ErrorLog "logs/error_log"

LogLevel warn #错误日志记录等级

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common #自定义日志 名为common

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

CustomLog "logs/access_log" common #日志路径 使用名为common的自定义格式

LogLevel记录日志等级:

error 错误情况。

warn 警告情况。

info 普通信息。

debug 出错级别信息。

日志格式:

1. %h - 客户端的ip地址或主机名。

2. %l - The 这是由客户端 identd 判断的RFC 1413身份,输出中的符号 “-” 表示此处信息无效。

3. %u - 由HTTP认证系统得到的访问该网页的客户名。有认证时才有效,输出中的符号 “-” 表示此处信息无效。

4. %t - 服务器完成对请求的处理时的时间。

5. “%r” - 引号中是客户发出的包含了许多有用信息的请求内容。

6. %>s - 这个是服务器返回给客户端的状态码。

7. %b - 最后这项是返回给客户端的不包括响应头的字节数。

8. “%{Referer}i” - 此项指明了该请求是从被哪个网页提交过来的。

9. “%{User-Agent}i” - 此项是客户浏览器提供的浏览器识别信息。

#实际访问日志

192.168.1.166 - - [04/Feb/2015:12:52:35 +0800] "GET / HTTP/1.1" 200 25

#基于域名的虚拟主机

DocumentRoot /web1

ServerName web1.com

ErrorLog /app/apache/logs/error_log

CustomLog /app/apache/logs/access_log combined

DocumentRoot /web2

ServerName web2.com

#基于IP的虚拟主机

DocumentRoot /web1

ServerName web1.com

DocumentRoot web2

ServerName web2.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值