首页 后端开发 PHP问题 linux下如何搭建php开发环境

linux下如何搭建php开发环境

Oct 16, 2020 am 09:58 AM
linux php

linux下搭建php开发环境的方法:首先安装apache并启动;然后安装php的依赖软件;接着通过命令“make && make install”安装php;最后重启apache即可。

linux下如何搭建php开发环境

推荐:《PHP视频教程

Linux 下搭建 php 开发环境完整教程

   在开始进入正题前,先普及一点基础知识。在 Linux 环境下,我们通过命令行安装软件的时候,可能会出现错误。当错误出现的时候,我们怎么撤销之前的步骤,重新安装软件呢?解决方案如下

    (1) 已经执行 configure 操作

    解决:根据正确的参数重新 configure 即可

    (2)已经执行 configure、make 操作

    解决:删除解压后的文件目录,重新解压、configure、make

    (3)已经执行 configure、make、make install 操作

    解决:首先删除安装后的文件(有指定安装目录的情况 /usr/local/http2),然后删除解压后的目录,最后重新解压、configure、make、make install 就行了。好了,下面开始进入正题了。

一、 安装 apache

1. 配置(apache 安装配置) 在安装前记得切换到 root ,否则会因权限问题安装失败

./configure --prefix=/usr/local/http2 \
--enable-modules=all \
--enable-mods-shared=all \
--enable-so
登录后复制

// --enable-mods-shared=all 模块共享类型,一次性编译所有模块到 apache 内

执行 ./configure --help 可查看默认配置及配置帮助信息,如安装目录 --prefix 等

2. 安装

执行 make && make install 就完成安装了

3. 启动 apache

进入到安装目录 /usr/local/http2/bin

执行命令 ./apachectl start 可启动 apache

启动 apache 的时候,可能会提示 Could not reliably determine the server's fully ...

其实这不是什么错误,可忽略,也可通过修改配置文件解决这个问题,

进入安装目录,/usr/local/http2/conf/ 找到 httpd.conf ,在该文件中查找 ServerName,

把它前面的 # 号去掉就行了 。

4. 访问

安装完成后,在浏览器中输入本机 ip 地址,即可访问到 apache 默认的页面

如输入本机 ip :192.168.0.141

二、 安装 php 的依赖软件

现在要把 php 依赖的一些软件(xml、gd、jpeg、png、freetype)都安装上去 ,然后才能安装 php 。

1. 安装 xml 依赖

下载 libxml2,然后安装

安装前配置:./configure --prefix=/usr/local/libxml2 --without-zlib

然后 make&&make install

2. 安装 jpeg8

安装前配置 ./configure --prefix=/usr/local/jpeg --enable-share --enable-static

然后 make && make install

--enable-share 把 jpeg 需要的函数库程序都编译到该软件里面,这样函数调用速度快,但是软件本身比较大

--enable-static 静态引入方式,这样当需要调用还没引入的函数时,会立即 include 进来,这样软件本身比较小,但是函数调用速度慢

3. 安装 libpng

./configure && make && make install
登录后复制

4. 安装 freetype 库(字体库)

./configure --prefix=/usr/local/freetype
make && make install
登录后复制

5. 安装 GD 库

gd 库下载地址: https://bitbucket.org/libgd/gd-libgd/downloads

./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg/ --with-png --with-zlib --with-freetype=/usr/local/freetype
make && make install
登录后复制

6. 安装 libXpm-3.5.10

// 有的系统可能没安装这个,要自己安装
登录后复制

直接用默认的配置就行

./configure
make && make instsall
登录后复制

三、安装配置 php

1. 安装 php

参数解析:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/http2/bin/apxs
登录后复制

apache 的支持,作用: 给 apache 生成 php 模块;修改 /usr/local/http2/conf/httpd.conf 的配置文件,使其引入 php 模块

mysqlnd 表示激活 php 本身的 mysql 驱动并使用,因还我们还没自己安装 mysql,所以这样可用默认的 mysql 。

--enable-mbstring=all 宽字节函数库对 php 的支持

./configure --prefix=/usr/local/php 
    --with-apxs2=/usr/local/http2/bin/apxs
    --with-mysql=mysqlnd
    --with-pdo-mysql=mysqlnd
    --with-mysqli=mysqlnd
    --with-freetype-dir=/usr/local/freetype
    --with-gd=/usr/local/gd
    --with-zlib
    --with-libxml-dir=/usr/local/libxml2
    --with-jpeg-dir=/usr/local/jpeg
    --with-png-dir
      --with-xpm-dir=/usr/local/libxpm
    --enable-mbstring=all
    --enable-mbregex
    --enable-shared
登录后复制

配置完成后,安装 make && make install

安装成功后,会出现如下提示

License:
This software is subject to the PHP License, ... at this point.
+---------------------------------------------------------------+
Thank you for using PHP.
登录后复制

PHP 安装完成后,/usr/local/http2/conf/httpd.conf 会把相应的 php 模块引入进来,如

LoadModule php5_module modules/libphp5.so

.... ...

2. 安装完成后,进行相关设置

把 php 解压目录里面的 php.ini 配置文件到指定目录

cp php.ini-development /usr/local/php/lib/php.ini
登录后复制

3. 配置 Apache 使其支持 php

vim /usr/local/http2/conf/httpd.conf
登录后复制

(1)在 httpd.conf(Apache 主配置文件,在 /usr/local/http2/conf 目录下)中添加

AddType application/x-httpd-php .php
登录后复制

使 apache 遇到 php 文件时懂得调用 php 模块解析

(2)设置时区

在 /usr/local/php/lib 中修改 php.ini 配置文件,设置时区

data.timezone = PRC(记得把前面的分别去掉)

设置完成后,重启 apache 服务器

/usr/local/http2/bin/apachectl restart
登录后复制

至此所有安装步骤完成,在 apache 的目录下(/usr/local/apache2/htdocs)写个测试文件如 test.php

内容:

<?php
phpinfo();
?>
登录后复制

然后在浏览器中访问:192.168.0.141/test.php

如果访问成功,说明安装配置成功

注意:在使用 ThinkPHP 的时候,可能会出现下面这个问题

thinkphp开发的项目访问的时候出现了 页面错误!请稍后再试~ 排查了很多原因,最终是这样的解决的:

开启debug模式。在入口文件处加上 define(‘APP_DEBUG‘, true); 就ok了

此外,在系统目录下创建的文件夹,没有写权限,要修改文件夹权限才能写入,才能正常访问,如

chmod -R 777 thinkphp(即让该文件夹及其所有子文件夹可读可写可执行)

四、安装配置 mysql

1. 安装 cmake(更先进的 configure)

解压后执行配置命令 ./bootstrap,配置完成后 make && make install,要以 root 权限安装 。

2. 安装 mysql

tar zxvf mysql****
cmake 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
登录后复制

(安装目录, 数据存储目录, 默认的字符集, 校对字符集 )

然后 make && make install

在进行 mysql 的 configure 操作的时候,可能会提示软件依赖错误,依赖文件 libncurses5-dev

解决方法:安装 ncurses-devel

rpm -ivh ncurses-devel-5.7-3.200090208.el6.i686.rpm(现在可能不是这个文件名了,自己 google 吧)

依赖解决好后要删除 CMakeCache.txt 文件。

3. 配置 mysql

(1)给 mysql 复制一个配置文件

在 mysql 我解压目录下,有个 support-files 文件夹,进入这个文件夹,执行复制命令

cp my-medium.cnf /etc/my.cnf

(2)useradd mysql(添加用户)

(3)chmod +x /home/lion/storm/web-php/install/mysql5.5/install

(4)chown -R mysql.mysql /home/lion/storm/web-php/install/mysql5.5/install

(5)初始化 mysql 数据库

/home/lion/storm/web-php/install/mysql5.5/install/scripts/mysql_install_db --user=mysql --basedir=/home/lion/storm/web-php/install/mysql5.5/install --datadir=/home/lion/storm/web-php/install/mysql5.5/install/data &
登录后复制

(6)把 mysql 安装文件(除了 data 之外)的主人都改为 root,避免数据库恢复为出厂设置

chown -R root /home/lion/storm/web-php/install/mysql5.5/install
chown -R mysql /home/lion/storm/web-php/install/mysql5.5/install/data
登录后复制

(7)后台运行 mysql 服务

/home/lion/storm/web-php/install/mysql5.5/install/bin/mysqld_safe --user=mysql &
登录后复制

查看 mysql 是否有启动

ps -A | grep mysql

如果启动成功,则显示以下信息

------ mysqld_safe
------ mysqld
登录后复制

(8)进入 mysql 操作终端的执行程序(在 /home/lion/storm/web-php/install/mysql5.5/install/bin 目录下)

执行命令 ./mysql 就可以运往 mysql 了。

(9)设置 mysql 用户和密码

为了数据库安全,把 localhost 之外的用户全部删除掉,并为 localhost 设置密码,设置密码时调用加密函数给密码加密;

mysql 的所有用户信息都放在 mysql 数据库中,而且这也是 mysql 的核心数据库 。所以要到这个数据库中进行用户管理操作,执行命令

use mysql
登录后复制

切换到这个数据库,执行下面的操作:

mysql> delete from user where Host != &#39;localhost&#39;;
    mysql> select Host, User, Password form user;
    mysql> update user set Password=password(123456);
    mysql> select Host, User, Password from user;
    mysql> flush privileges;(刷新,使对权限的修改立即生效)
登录后复制

(10)设置完成后,执行 flush privileges; 命令,使设置立即生效 。设置完成后,以后不要随便操作 mysql 中的 mysql 数据库了 。

(11)执行 exit 命令退出当前 mysql,然后重新登录 mysql

./mysql -uroot -p123456
登录后复制

(12)通过 php 中访问 mysql,在 apache 的 htdocs 目录下,创建一个 data.php 文件,来访问 mysql 。

<?php
    $link = mysql_connect(&#39;localhost&#39;, &#39;root&#39;, &#39;123456&#39;);
    mysql_select_db(&#39;test&#39;, $link);
    mysql_query(&#39;set name utf8&#39;);
    $sql = "select * from goods";
    $qry = mysql_query($sql);
    while($rst = mysql_fetch_assoc($qry)) {
        print_r($rst);
        echo "<br />";
    }
登录后复制

以上是linux下如何搭建php开发环境的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

说明匹配表达式(PHP 8)及其与开关的不同。 说明匹配表达式(PHP 8)及其与开关的不同。 Apr 06, 2025 am 12:03 AM

在PHP8 中,match表达式是一种新的控制结构,用于根据表达式的值返回不同的结果。1)它类似于switch语句,但返回值而非执行语句块。2)match表达式使用严格比较(===),提升了安全性。3)它避免了switch语句中可能的break遗漏问题,增强了代码的简洁性和可读性。

什么是跨站点伪造(CSRF),您如何在PHP中实施CSRF保护? 什么是跨站点伪造(CSRF),您如何在PHP中实施CSRF保护? Apr 07, 2025 am 12:02 AM

在PHP中可以通过使用不可预测的令牌来有效防范CSRF攻击。具体方法包括:1.生成并在表单中嵌入CSRF令牌;2.在处理请求时验证令牌的有效性。

描述...(SPLAT)操作员在php函数参数和数组解开包装中的目的和用法。 描述...(SPLAT)操作员在php函数参数和数组解开包装中的目的和用法。 Apr 06, 2025 am 12:07 AM

PHP中的...(splat)操作符用于函数参数和数组解包,提升代码简洁性和效率。1)函数参数解包:将数组元素作为参数传递给函数。2)数组解包:将一个数组解包到另一个数组中或作为函数参数。

您如何防止班级被扩展或方法在PHP中被覆盖? (最终关键字) 您如何防止班级被扩展或方法在PHP中被覆盖? (最终关键字) Apr 08, 2025 am 12:03 AM

在PHP中,final关键字用于防止类被继承和方法被重写。1)标记类为final时,该类不能被继承。2)标记方法为final时,该方法不能被子类重写。使用final关键字可以确保代码的稳定性和安全性。

无法以 root 身份登录 mysql 无法以 root 身份登录 mysql Apr 08, 2025 pm 04:54 PM

无法以 root 身份登录 MySQL 的原因主要在于权限问题、配置文件错误、密码不符、socket 文件问题或防火墙拦截。解决方法包括:检查配置文件中 bind-address 参数是否正确配置。查看 root 用户权限是否被修改或删除,并进行重置。验证密码是否准确无误,包括大小写和特殊字符。检查 socket 文件权限设置和路径。检查防火墙是否阻止了 MySQL 服务器的连接。

在PHP中解释严格的类型(STRICT_TYPES = 1);)。 在PHP中解释严格的类型(STRICT_TYPES = 1);)。 Apr 07, 2025 am 12:05 AM

PHP中的严格类型通过在文件顶部添加declare(strict_types=1);来启用。1)它强制对函数参数和返回值进行类型检查,防止隐式类型转换。2)使用严格类型可以提高代码的可靠性和可预测性,减少bug,提升可维护性和可读性。

C语言条件编译:新手入门到实战应用的详尽指南 C语言条件编译:新手入门到实战应用的详尽指南 Apr 04, 2025 am 10:48 AM

C语言条件编译是一种根据编译时条件选择性编译代码块的机制,入门方法有:使用#if和#else指令根据条件选择代码块。常用条件表达式包括STDC、_WIN32和linux。实战案例:根据操作系统打印不同消息。根据系统位数使用不同的数据类型。根据编译器支持不同的头文件。条件编译增强了代码的可移植性和灵活性,使其适应编译器、操作系统和CPU架构变化。

See all articles