阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下安装配置PHP环境(Apache2)

424次阅读
没有评论

共计 7282 个字符,预计需要花费 19 分钟才能阅读完成。

在 Linux 环境下配置安装 PHP 环境(Apache2),参考了一些别人的配置方法,遇到问题上网查。下面就是安装步骤:

一、安装 Apache2.2.22
1、到官网下载   http://httpd.apache.org/download.cgi   
2、解压
   tar  -zxvf httpd-2.2.22.tar.gz
3、建立目标文件夹(注意以下所有操作都时在 root 用户下执行的)
   mkdir /usr/local/apache2
    也就是说等下安装的 apache2 要安装到这个文件夹里面
4、配置
    回到原来解压之后产生的文件夹
   ./configure –prefix=/usr/local/apache2 –enable-module=shared
    要加上后面的参数,否则无法使用 php,-enable-module=shared 表示 Apache 可以动态的加载模块

这一步,出现了很多问题:

第一个错误为:

checking for APR... no
configure: error: APR not found.  Please read the documentation.
解决方法:

download the latest versions of both APR and APR-Util from Apache APR, unpack them into ./srclib/apr and ./srclib/apr-util (be sure the domain names do not have version numbers; for example, the APR distribution must be under ./srclib/apr/)

then do

./configure --with-included-apr
原文章地址:http://stackoverflow.com/questions/9436860/apache-httpd-setup-and-installatio
另外一种解决方法为:
分别安装 APR 和 APR-util,安装方法为:首先下载这两个文件,然后解压,进入解压后目录,然后把 APR 和 APR-util 分别安装到 /usr/local/ 文件夹的 apr 和 apr-util 文件夹下。APR 的具体安装方法为:
[root@localhost 52lamp]# tar -zxvf apr-1.4.2.tar.gz //unzip -o apr-1.4.2.zip
[root@localhost 52lamp]# cd apr-1.4.2
[root@localhost apr-1.4.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.4.2]# make
[root@localhost apr-1.4.2]# make install
安装 Apr-util 在./confiure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
其他步骤类似。

第二个错误为:no acceptable C compiler found in $Path
直接运行 yum install gcc,安装 Gcc 即可
第三个问题为:pcre-config for libpcre not found
解决方法就是 下载 prce 安装包,和 APR 类似,安装到 /usr/local/pcre 文件夹下面即可。PS:Fedora 下安装 c ++ 编译器 g ++ 的命令为:yum install gcc-c++。
5、编译
   make   
6、安装
    make install  
7、启动,重启和停止,先切换到安装完成后的目录 /usr/local/apache2/bin
    ./apachectl -k start
    ./apachectl -k restart
    ./apachectl -k stop  
8、配置文件(满足最基本的配置)
    编辑 /usr/local/apache2/conf/httpd.conf 文件    
    找到:
    AddType  application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    在后面添加:
    AddType application/x-httpd-php .php(使 Apcche 支持 PHP)
    AddType application/x-httpd-php-source .php5   
    找到:
    <IfModule dir_module>
    DirectoryIndex index.html
    </IfModule>
    添加:
    <IfModule dir_module>
    DirectoryIndex index.html index.php
    </IfModule>   
    找到:
    #ServerName www.example.com:80
    修改为:
    ServerName 127.0.0.1:80 或者 ServerName localhost:80
    记得要去掉前面的“#”   
9、测试
    在浏览器里输入 http://127.0.0.1
    如果出现 It Works! 说明成功。这是我的测试结果:O(∩_∩)O 哈哈~

Linux 下安装配置 PHP 环境(Apache2)

10、修改默认的 Web 站点目录

    默认的目录为  “/usr/local/apache2/htdocs”,修改 apache 的配置文件 httpd.conf,比如在新建一个 /home/gyw/WebSite 的目录作为 apache 的站点目录

    找到 DocumentRoot 这一行修改为:DocumentRoot “/home/gyw/WebSite”

  找到 <Directory> 这一行修改为:<Directory “/home/gyw/WebSite”> 

测试: 修改到文件夹出现错误:

“You don’t have permission to access /index.html on this server.”

解决方法:

更改文件权限;chmod 755 index.html

打开 apache 配置文件 httpd.conf,找到这么一段:
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    deny from all
    Satisfy all
</Directory>

测试结果如下:

Linux 下安装配置 PHP 环境(Apache2)

 

  二、安装 PHP 
1、下载
    http://www.php.net/downloads.php
2、解压
    tar -zxvf php-5.3.16.tar.gz
3、建立目标文件夹
    mkdir /usr/local/php
    也就是说等下安装的 php 要安装到这个文件夹里面
4、配置
    回到原来解压后的文件夹
    ./configure –prefix=/usr/local/php  –with-apxs2=/usr/local/apache/bin/apxs

    注意这里有一个 -with-apxs2=/usr/local/apache/bin/apxs 选项,其中 apxs 是在安装 Apache 时产生的,apxs是一个为 Apache HTTP 服务器编译和安装扩展模块的工具,使之可以用由 mod_so 提供的 LoadModule 指令在运行时加载到 Apache 服务器中。我的理解是通过这个工具把 PHP 模块动态加载到 Apache 中

出现错误:configure: error: xml2-config not found. Please check your libxml2 installation.

运行 yum install libxml2,然后再运行 yum install libxml2-devel 安装完毕后,重新运行上面的./configure 命令。

5、编译
    make   
6、测试编译
    make test   
7、安装
    make install

8、配置文件

    cp /usr/local/src/php-5.3.16/php.ini-development  /usr/local/php/lib/php.ini
    把原来位于源代码里面的 php.ini-development 拷贝到 /usr/local/php/lib/php.ini 下,并且重命名为 php.ini

9. 重启 apache
10、测试
    在 apache 的 htdocs 下建立一个 php 文件 test.php,里面的内容如下:
    <?php
    phpinfo();
    ?>
    然后在浏览器里输入 http://127.0.0.1/test.php
    如果出现 php 的相关配置,成功,如果什么都没有输入,说明失败,重新以上步骤或者查找原因

如果决定在安装后改变配置选项,只需重复最后的三步 configure, make, 以及 make install,然后需要重新启动 Apache 使新模块生效。Apache 不需要重新编译。

测试结果如下图:

Linux 下安装配置 PHP 环境(Apache2)

 三、安装 MySql

1、下载
    到官网下载 mysql-5.1.65.tar.gz(注意是源码包)
2、解压
    tar -zxvf mysql-5.1.65.tar.gz
3、建立目标文件夹
    mkdir /usr/local/mysql
    也就是说等下安装的 mysql 要安装到这个文件夹里面
4、配置
    ./configure –prefix=/usr/local/mysql/ 

在./configure时出现错误:error: No curses/termcap library found

下载安装相应软件包

yum list|grep ncurses

yum -y install ncurses-devel

yum install ncurses-devel

5、编译
    make
6、安装
    make install

7、启动
    MySQL 服务并不会自动启动,还需要先初始化 MySQL 数据库,操作如下:
    cd /usr/local/mysql/bin
    sudo ./mysql_install_db –user=root
    注意,这里最后的 root 是指可以操作数据库的用户,可以是当前用户,也可以新建用户,与 linux 上的 root 用户是两回事,可以自己取一个名字
    ./mysqld_safe –user=root &  这条命令负责启动 mysql 服务的守护进程,此外最后的 & 时必须的,因为希望守护进程在后台运行
    这里的 root 就是刚才的那个
8、为根用户创建密码
        ./mysqladmin -u root password‘123456’
        如果 root 已经设置过密码,采用如下方法
        ./mysqladmin -u root password oldpass‘123456’       
9、测试
    mysql -u root -p
    会提示输入密码,就用刚才设置的密码
    123456
    如果出现 mysql>,说明连接成功了, 下面通过命令 创建一个数据库、建一个表,增加一条记录,为后面的测试准备

   mysql> create database gywtest;
  mysql> use gywtest;

  mysql> create table student(id int(4) not null primary key auto_increment,stuname char(20));

  mysql> insert into student(stuname) values(‘Tom’);

  注意每条命令后面有个分号,如果上面的都成功,后面就可以用这个测试。

 四、将 PHP 与 MySql 结合起来

 1、重新配置 PHP,改变配置选项,只需重复 PHP 安装时的最后的三步 configure, make, 以及 make install,然后需要重新启动 Apache 使新模块生效,Apache 不需要重新编译。

 2、配置

./configure –prefix=/usr/local/php  –with-apxs2=/usr/local/apache2/bin/apxs –with-mysqli=/usr/local/mysql/bin/mysql_config  注意 mysql_config 的路径
3、编译 make

4、安装 make installe

5、测试 写一个页面 test.php, 放在 apache 的 web 目录下,测试上面用命令创建的数据库

    <?php 
  $mysqli=new mysqli();
  $mysqli->connect(‘localhost’,’root’,’123456′,’gywtest’);
  // 创建查询
  $sqlstr=’select * from student’;
  // 发送查询给 MySql
  $result=$mysqli->query($sqlstr);
    while($row=$result->fetch_object())
    { 
      $name=$row->stuname;
      echo $name;
    }
?>

Fatal error: Class ‘mysqli’ not found in /home/lufangtao/Project/DB.php on line 3

解决方法:

/usr/local/php/bin/phpize 这里回车运行

出错:

Cannot find config.m4. 
Make sure that you run ‘./phpize’ in the top level source directory of the module

解决方法:

PHP 源码包文件夹下的 EXT 文件夹就是放置着目前版本的可用扩展,CD 进去看看都有哪些你需要的?应该看到 mysqli 文件夹了吧~~~

在当前目录下执行 phpize

[root@localhost mysqli]#/usr/local/php/bin/phpize

Configuring for:

PHP Api Version:                    20090626

Zend Modeule Api No:            20090626

Zend Extension Api No:          220090626

Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

解决方法:

yum install autoconf 再次运行上面的命令即可。

[root@localhost mysqli]#./configure –prefix=/opt/mysqli –with-php-config=/opt/php/bin/php-config –with-mysqli=/opt/mysql/bin/mysql_config

[root@localhost mysqli]#make

[root@localhost mysqli]#make install

安装完成后会有提示扩展所在目录路径,如:

/opt/php/lib/php/extensions/no-debug-zts-20090626php

所需的 mysqli.so 便会在此目录下,接下来修改 /opt/php/etc/ 下的 php.ini 文件,加入 mysqli 扩展,即加入如下一行:

extension=/opt/php/lib/php/extensions/no-debug-zts-20090626/mysqli.so

这里还是会出现错误:

解决不用扩展连接 MySQL 的方法。

最终还是没有解决 MySQLi 连接的问题,但是可以使用 MySQL 数据库了,下面是测试程序

<?php

$link=mysql_connect('localhost','root','123456');

if(!$link) echo "F!";

else echo "S!";

mysql_select_db("students") or die("Could not select database");
$query="SELECT * FROM student;";
$result=mysql_query($query) or die("Query failed");
print "<table>\n";

 while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n"; }
print "</table>\n"; /* 释放资源 */ mysql_free_result($result); mysql_close(); ?> ~

 

Linux 下安装配置 PHP 环境(Apache2)

在 CentOS 7.x / Fedora 21 上面体验 PHP 7.0  http://www.linuxidc.com/Linux/2015-05/117960.htm

CentOS 6.3 安装 LNMP (PHP 5.4,MyySQL5.6) http://www.linuxidc.com/Linux/2013-04/82069.htm

在部署 LNMP 的时候遇到 Nginx 启动失败的 2 个问题 http://www.linuxidc.com/Linux/2013-03/81120.htm

Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm

《细说 PHP》高清扫描 PDF+ 光盘源码 + 全套教学视频 http://www.linuxidc.com/Linux/2014-03/97536.htm

CentOS 6 中配置 PHP 的 LNMP 的开发环境  http://www.linuxidc.com/Linux/2013-12/93869.htm

PHP 的详细介绍:请点这里
PHP 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-05/118062.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计7282字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7982397
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...