lamp环境搭建

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: PHP和Apache的安装和配置,还有指出容易出现的问题。

记录关于lamp搭建的流程,这里只介绍Apache和PHP的安装,MySQL的安装请移步:lnmp环境搭建之mysql篇

Apache的下载网址:http://httpd.apache.org/download.cgi

Apache2.4文档:http://httpd.apache.org/docs/2.4/zh-cn/

PHP官网:http://www.php.net/

这里安装的是Nginx2.4.28 PHP5.6 MySQL5.7.18

 

Linux版本:

d0bbcc8895f1740a8e2419fcc866662a656bb1f4

 

Mysql版本:

f2dabcaa480b9637b7f22bdcf9c33ca7fac8ba81

 

搭建前准备:

由于Linux是最小化安装,所以要安装一些基础的工具包:

yum grouplist # 列出可以安装的yum rpm包组合

yum -y groupinstall "Development Tools" # 安装开发工具包组合

2e70c0f06907f855afd4b0f108cfb576a367b992

yum -y install wget apr-devel apr-util-devel pcre-devel

 

Apache安装

cd /usr/local/src/ # 习惯性地进入src目录

wget -c http://www-us.apache.org/dist//httpd/httpd-2.4.28.tar.gz

tar -zxf httpd-2.4.28.tar.gz # 解压

cd httpd-2.4.28 # 进入源码目录

./configure -h|--help # 列出当前可用的所有参数,这步是多余的

./configure # 配置

make # 编译

make install # 编译安装

 

测试:

/usr/local/apache2/bin/apachectl -k start # 启动Apache服务

curl 127.0.0.1 # 测试

c2a0d968139860010972fde63169c27ae06078ff

 

启动|停止命令:

/usr/local/apache2/bin/apachectl -k start # 启动

/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf # 使用http.conf配置启动

/usr/local/apache2/bin/apachectl -k stop # 停止

/usr/local/apache2/bin/apachectl -k restart # 重启

/usr/local/apache2/bin/apachectl -k graceful # 平滑重启

/usr/local/apache2/bin/apachectl -k graceful-stop # 平滑停止

 

常见问题:

-bash: wget: command not found

yum -y install wget

 

bc4f6c99e91c175a2ce8d77071a03945b88e00c2

configure: error: APR not found.  Please read the documentation.

yum -y install apr-devel

 

a27bc5184cc1ce32f7895f89a3aa22fa0f00fd4e

configure: error: APR-util not found.  Please read the documentation.

yum -y install apr-util-devel

 

9a9d9084f67d5f46ce8986297c79836d5007c559

configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

yum -y install pcre-devel

 

e6adf2914fe0766bba7141faf39047b05328e5f7

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

vi /usr/local/apache2/conf/httpd.conf

  ServerName 127.0.0.1:80

8664478234fb5c5abcb22434c8c4f57435bf437f

 

 

PHP安装:

准备工作:

yum -y install libxml2-devel bzip2-devel libcurl-devel libjpeg-turbo-devel libpng-devel freetype-devel libmcrypt

这里libmcrypt是没有安装成功的:

adc510d6e3b4e2ca80e4356da140bf344956a78b

要找源码包手动安装:

cd /usr/local/src/ # 习惯性地把源码包放在src目录下

wget -c ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz # 下载libmcrypt源码包

tar -zxf libmcrypt-2.5.7.tar.gz # 解压

cd libmcrypt-2.5.7 # 进入源码目录

./configure # 配置

make # 编译

make install # 编译安装

 

安装:

cd /usr/local/src/ # 再次习惯性地把源码包放在src目录下

wget -c http://hk1.php.net/distributions/php-5.6.31.tar.gz # 下载源码包

tar -zxf php-5.6.31.tar.gz # 解压

cd php-5.6.31 # 进入源码目录,总是少不了这两步

./configure -h|--help # 列出当前可用的所有参数,这步是多余的

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mcrypt \

--enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath \

--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \

--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \

--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \

--with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar --with-pdo-mysql=/usr/local/mysql

make && make install # 编译并编译安装

 

测试:

/usr/local/php/bin/php -v

e4bef1ab6fd57b67c6ced13bab88cb47b9e3b5f9

 

复制php.ini配置文件:

/usr/local/php/bin/php -i|grep php.ini # 查看读取php.ini的目录:

4f6926c8da1f959066fa570504857010808fe96a

cp php.ini-development /usr/local/php/lib/php.ini # 复制php.ini-development到上面目录

 

常见问题:

6cc4ce21a1fff42f067baac4adc2aa01fc091347

configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no

配置时加上--enable-opcache=no

 

4621b640cbd6d158c83fa13cdcb9ac20264dd0f2

configure: error: off_t undefined; check your library configuration

echo "/usr/local/lib

/usr/local/lib64

/usr/lib

/usr/lib64" >> /etc/ld.so.conf && ldconfig –v

如果再次出现这个问题:

echo '/usr/local/mysql/lib' >> /etc/ld.so.conf && ldconfig –v

 

bcec8516b9d9b8cd4282e095616724f3591b7554

configure: error: PDO_MYSQL configure failed, MySQL 4.1 needed. Please check config.log for more information.

把--with-pdo-mysql=/usr /local/mysql改成--with-pdo-mysql就应该没问题,如果还有问题先去掉--with-pdo-mysql=/usr,之后再添加pdo_mysql扩展。

 

 

配置PHP和Apache

PHP手册:http://php.net/manual/zh/install.unix.apache2.php

vi /usr/local/apache2/conf/httpd.conf # 加入以下代码

  <FilesMatch \.php$>

      SetHandler application/x-httpd-php

  </FilesMatch>

1252270a0bf3149ef5b269010b49b44adaec8113

88c0ddd233b407d278d937507bc517a817061c0a

/usr/local/apache2/bin/apachectl -k graceful # 修改配置文件后都要重启服务

vi /usr/local/apache2/htdocs/test.php # 新增PHP文件

19ef0af27b7b0adbcfd8e2efa36175ac0cc0de34

curl 127.0.0.1/test.php # curl测试,下图表示测试成功:

cbf7af69d1f372109e9b07b14ccbbb8eba41cfbe

 

 

测试PDO连接mysql

/etc/init.d/mysql.server start # 启动mysql

vi /usr/local/apache2/htdocs/pdo_mysql_test.php

<?php

$db_host = '127.0.0.1';

$db_name = 'mysql';

$db_user = 'root';

$db_pass = 'root';

$db_port = 3306;

$db_charset = 'utf8';

 

try{

  $dbh = new PDO("mysql:host=$db_host;dbname=$db_name;port=$db_port;charset=$db_charset", $db_user, $db_pass);

}catch(PDOException $e){

  exit('error: '. $e->getMessage());

}

$sql = 'show databases';

$query = $dbh->query($sql);

$query->setFetchMode(PDO::FETCH_ASSOC);

$result = $query->fetchAll();

print_r($result); // 打印所有数据库名称

 

$dbh = null; // 关闭连接

abcf7a26579291410d7b7bbe4964d82be5e5364e

curl 127.0.0.1/pdo_mysql_test.php # 保存退出,运行此命令,如果出现数据库信息就说明没问题

或者

vi /usr/local/apache2/htdocs/phpinfo.php # 输入以下内容,保存退出

824ad7a10885cdd958535ff2bd747e78f56153d4

systemctl stop firewalld # 关闭防火墙

用局域网的机器访问:

ip/phpinfo.php

搜索PDO即可看到pdo_mysql是否安装成功。

 

phpMyAdmin

cd /usr/local/apache2/htdocs/ # 进入网站根目录

wget -c https://files.phpmyadmin.net/phpMyAdmin/4.7.4/phpMyAdmin-4.7.4-all-languages.tar.gz # 下载phpMyAdmin到当前目录

tar -zxf phpMyAdmin-4.7.4-all-languages.tar.gz # 解压

mv phpMyAdmin-4.7.4-all-languages phpmyadmin # 重命名

systemctl stop firewalld # 关闭防火墙

用局域网内的机器访问:

ip/phpmyadmin

 

The end.THX.

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
30天前
|
关系型数据库 MySQL Apache
LAMP源码安装配置实战
LAMP源码安装配置实战
23 3
|
关系型数据库 MySQL 应用服务中间件
LAMP & LNMP及简单环境搭建
LAMP & LNMP及简单环境搭建
150 0
|
弹性计算 关系型数据库 MySQL
基于CentOS快速搭建LAMP环境笔记
基于CentOS快速搭建LAMP环境笔记
297 0
基于CentOS快速搭建LAMP环境笔记
|
弹性计算 关系型数据库 MySQL
服务器LAMP环境搭建
搭建服务器环境
170 1
|
关系型数据库 MySQL PHP
|
关系型数据库 PHP Apache
|
Web App开发 关系型数据库 测试技术
|
关系型数据库 Linux PHP
|
关系型数据库 PHP 开发工具