前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LAMP环境搭建

LAMP环境搭建

作者头像
刘銮奕
发布2019-07-22 17:29:59
1.6K0
发布2019-07-22 17:29:59
举报
文章被收录于专栏:奕知伴解奕知伴解

LAMP是Linux Apache MySQL PHP 的简写,即把Apache 、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言,通常是网站。我们可以把Apache+PHP安装在一台机器上,再把MySQL安装在另外一台机器上,也可以把它们三个安装在一台机器上。但Apache和PHP需要在同一台机器上,这是因为PHP是作为Apache的一个模块存在的,它们必须在一起。

下面的执行过程如果遇到麻烦,欢迎交流。

1.安装MySQL

我们平时是通过源码包安装MySQL的,但是由于它的编译时间比较长,在这里我建议安装二进制免编译包。源码包都是可以更改的C或C++语言编写的源码文件,而免编译的二进制包就是已经编译过的文件再打包提供给我们。目前常用的mysql-5.6以上版本,所以这里使用mysql-5.6版本做演示。(我的系统是CentOS 7 64位)

建议以后把所有软件包都放在这个目录下面
#cd /usr/local/src/
下载源码包
#wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

下面进行初始化:

 解压
# tar zxf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz移动位置,自己先确认移动之前mysql这个目录是空的或者不存的
# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql建立MySQL用户,因为启动MySQL需要该用户
# useradd -s /sbin/nologin mysql进入到移动后的mysql目录中
# cd /usr/local/mysql/创建datadir,数据库文件会放到这里面
# mkdir -p /data/mysql更改权限,不该的话后续操作会出问题
# chown -R mysql:mysql /data/mysql下面一条命令的--user表示数据库以哪个用户的身份进行运行,--datadir表示定义数据的安装目录
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

在执行上面最后一条命令可能会报下面的错误信息:

FATA ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper

这是因为缺少perl-Module-Install,使用下面的命令进行安装:

yum install -y perl-Module-Install

配置MySQL

首先复制配置文件,如下所示:

# cp support-files/my-default.cnf /etc/my.cnf

因为系统中默认有my.cnf,所以会提示是否覆盖,这是我们选择直接按“y”即可。 接着使用vim进行修改配置文件

# vi /etc/my.cnf

修改成如下效果:

[mysqld]# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
log_bin = liu-server# These are commonly set, remove the # and set as required.basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
server_id = 128
socket = /tmp/mysql.sock# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

然后复制启动脚本文件并修改属性,如下所示:

# cp support-files/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld

然后修改启动脚本,如下所示:

# vim /etc/init.d/mysqld

把datadir设置成datadir=/data/mysql(前面初始化数据库时定义的目录)。把启动脚本加入系统启动项,设定开机启动并启动MySQL,如下所示:

# chkconfig --add mysqld
# chkconfig mysqld on
# service mysqld start

如果启动不了,请到/data/mysql/目录下查看错误日志,这个日志的名字通常是主机名.err。 检查MySQL是否启动,如下所示:

# ps aux | grep mysqld
root      59075  0.0  0.0 112676   984 pts/0    R+   18:04   0:00 grep --color=auto mysqld# netstat -lnp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      4088/mysqld

安装Apache

这里值得提醒的是人们说Apache的时候就是在说httpd。目前使用较多的版本是2.2或2.4,两个版本的安装大同小异,配置也差别不大。不过2.4版本有一个比较麻烦的事情就是需要手动编译安装apr以及apr-util包。

#cd /usr/local/src/下载源码包# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.34.tar.gz
# wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
# wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz

解压下载好的源码包:

# tar zxvf httpd-2.4.34.tar.gz
# tar zxvf apr-1.6.3.tar.gz
# tar zxvf apr-util-1.6.1.tar.gz

其中apr可以理解成一个通用的函数库,主要为上层应用提供支持。

接着编译安装

# cd /usr/local/src/apr-1.6.3
# ./config --prefix=/usr/local/apr
# make && make install
# cd /usr/local/src/apr-util-1.6.1
# ./config --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install

如果出现在安装apr-util时出现如下错误:

# make: ***[libaprutil-1.la] error 1

解决办法是:

yum install -y expat-devel

安装完a后重新编译安装,再继续安装httpd:

# cd /usr/local/src/httpd-2.4.34# yum install -y pcre pcre-devel# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-mods-shared=most --enable-so --with-included-apr

如果在执行上面的命令出现下面的错误命令:

make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory `/usr/local/httpd-2.4.34/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/httpd-2.4.34/support'
make: *** [all-recursive] Error 1

可以通过下面的办法解决: 把解压好的apr和apr-util 复制到 /httpd-2.4.34/srclib/ 中去

# cp -r apr-1.6.1 /usr/local/src/httpd-2.4.34/srclib/apr
# cp -r apr-util-1.6.3 /usr/local/src/httpd-2.4.34/srclib/apr-util# make
# make install

因为我的CENTOS 是 64bit的,如果在编译配置没有指定 —with-included-apr的具体引用路径,导致找不到相应的库文件,而 —with-included-apr 默认是查找/usr/lib下的库文件,而,正确的引用应该是/usr/lib64下的。这类情况在64bit下非常常见,请大家多注意!

检验是否成功:

# ls /usr/local/apache2.4/modules/

出现许多以.so结尾的文件,代表成功。

安装PHP

# cd /usr/local/src
# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2解压下载后的源码包# bzip2 -d php-5.6.32.tar.bz2
# tar xf php-5.6.32.tar
./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-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
错误1:configure: error: xml2-config not found. Please check your libxml2 installation.
解决方法:yum install -y libxml2-devel错误2:configure: error: Cannot found Openssl's <evp.h>
解决方法:yum install -y openssl openssl-devel错误3:configure: error: jpeglib.h not found.
解决方法: yum install -y libjpeg libjpeg-devel  错误4:configure: error: png.h not found.
解决方法:yum install -y libpng libpng-devel错误5:configure: error: freetype-config not found.
解决方法:yum install -y freetype freetype-devel错误6:configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决方法:yum install -y epel-release
          yum install -y libmcrypt-devel
 # make && make install

这时候请耐心等待,需要几分钟的时间。

复制配置文件

 # cp php.ini-production /usr/local/php/etc/php.ini

配置httpd支持PHP

httpd的主配置文件为 /usr/local/apache2.4/conf/httpd.conf,编辑这个文件

 # vim /usr/local/apache2.4/conf/httpd.conf

搜索Servername,把#ServerName www.example.com:80前面的#号删除。找到如下内容:

 <Directory />
   AllowOverride none
   Require all denied
</Directory>

修改成:

 <Directory />
   AllowOverride none
   Require all granted
</Directory>

修改该行的目的是,允许所有的请求。再继续搜索下面这一行:

#AddType application/x-gzip .tgz

删除前面的#,并在该行的下面添加一行:

AddType application/x-httpd-php .php

接着找到下面这一段:

<IfModule dir_module>
   DirectoryIndex index.html
</IfModule>

将该行修改为:

<IfModule dir_module>
   DirectoryIndex index.html index.php
</IfModule>

测试LAMP是否搭建成功

启动httpd之前需要检验配置文件是否正确,如下所示:

 #/usr/local/apache2.4/bin/apachectl -t

如果配置正确则会显示“Syntax OK”。否则继续修改配置文件httpd.conf。启动httpd的命令如下:

 #/usr/local/apache2.4/bin/apachectl start

查看是否启动的命令如下:

# netstat -lnp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      58352/httpd

若显示上面的结果则表示启动成功!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奕知伴解 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.安装MySQL
  • 配置MySQL
  • 安装Apache
  • 安装PHP
  • 配置httpd支持PHP
  • 测试LAMP是否搭建成功
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档