lamp环境搭建

简介: 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.

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
算法 数据可视化 前端开发
第三代软件开发-QCustomPlot核心迁移
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
8月前
|
机器学习/深度学习 人工智能 前端开发
SWEET-RL:8B小模型暴打GPT-4?Meta开源强化学习黑科技,多轮任务成功率飙升6%
Meta最新开源的SWEET-RL框架通过优化多轮交互任务的信用分配机制,使Llama-3.1-8B模型在协作推理任务中的表现提升6%,性能达到顶尖大模型水平。
445 33
SWEET-RL:8B小模型暴打GPT-4?Meta开源强化学习黑科技,多轮任务成功率飙升6%
|
10月前
|
人工智能 Cloud Native Serverless
阿里云爸爸发福利!DeepSeek-R1满血版深度体验,4种部署攻略+隐藏羊毛大公开💎
本文介绍了四种部署DeepSeek-R1模型的方式:基于百炼调用满血版API、基于PAI部署、基于函数计算部署和基于GPU云服务器部署。每种方式各有优劣,适合不同需求的用户。其中,基于百炼调用满血版API无需部署,提供满血版模型和100万免费Token,适合快速体验;基于PAI部署适合需要微调模型的用户;基于函数计算部署提供WEB交互界面;基于GPU云服务器部署则适合技术能力强、有硬件资源的用户。方案还提供了免费试用入口和实践体验总结,帮助开发者更好地理解和使用DeepSeek-R1模型。
498 62
|
8月前
|
算法 搜索推荐 大数据
数据驱动增长:大数据与营销自动化的结合之道
数据驱动增长:大数据与营销自动化的结合之道
196 3
|
9月前
|
机器学习/深度学习 人工智能 搜索推荐
AI训练师入行指南(五):模型评估
本文从珠宝鉴定类比出发,探讨AI模型从训练到优化的全流程。首先介绍模型评估的四大核心指标:准确率、精确率与召回率、F1-Score及AUC-ROC,帮助明确模型性能。接着分析阈值调节、正则化与集成学习等调优方法的实际应用,如支付宝动态人脸识别和腾讯金融风控系统。此外,针对GPT-4o、Stable Diffusion和滴滴ETA模型的具体案例,展示参数微调与审美争议解决策略。最后提供避坑指南,强调数据泄漏、过拟合和冷启动问题的应对之道,总结模型评估应以商业价值、伦理规范和用户体验为导向,确保AI模型真正成为“智能珍宝”。
505 0
|
缓存 数据库 开发者
后端开发中的性能优化策略
在后端开发领域,性能优化是提升用户体验和系统稳定性的关键。本文将探讨几种有效的后端性能优化技术,包括数据库查询优化、缓存机制的应用、代码层面的优化以及系统架构的调整。通过这些策略,开发者可以显著提高应用程序的响应速度和处理能力,从而满足现代Web应用对高性能的需求。
|
存储 供应链 监控
为什么要开发海外电商代购系统?
在全球化背景下,海外电商代购系统应运而生,不仅满足了消费者对海外商品的多元需求,提升了商品品质和价格优势,还促进了国际贸易与文化交流,创造了商业机会和就业岗位。该系统通过优化供应链管理,提高了服务质量和用户体验,适应了消费升级和电商市场的发展趋势。未来,随着全球化进程的推进,海外电商代购系统将迎来更广阔的发展前景。
271 0
|
数据可视化 JavaScript 前端开发
惊世奇迹!D3.js 铸就数据可视化辉煌,探索交互式图表与效果的奇幻之旅!
【8月更文挑战第12天】在数据驱动的时代,D3.js 作为领先的 JavaScript 库,以其强大的功能和灵活性在数据可视化领域脱颖而出。开发者可通过 D3.js 构建精美的交互式图表,如简单的柱状图或具备缩放拖拽功能的折线图,甚至将数据以地图、树形结构等独特形式展现。尽管学习曲线陡峭,但它在数据分析、商业智能等领域的广泛应用使其成为专业人士传达数据故事、辅助决策制定的强大工具。
315 1
|
SQL 移动开发 Oracle
SQL查询连续六天数据记录的技巧与方法
在数据库查询中,实现针对连续几天(如连续六天)的数据筛选是一个常见且稍具挑战性的任务
|
Java Spring 容器
深入理解Spring Boot中的容器与依赖注入
深入理解Spring Boot中的容器与依赖注入