Ubuntu 安装 PHP 及相关扩展

在Ubuntu上安装和配置PHP环境 安装完成后,你可以通过在Web浏览器中输入服务器的IP地址来验证Apache是否正常运行。如果你看到默认的Apache欢迎页面,说明安装成功。为了验证PHP是否在Apache中正确解析,我们可以创建一个简单的PHP脚本并在浏览器中运行它。如果一切正常,你应该能够在浏览器中看到PHP信息页面,其中包含有关PHP安装和配置的详细信息。这样就完成了在Ubuntu上安装和配置PHP环境的过程。首先,我们需要更新Ubuntu系统以确保安装的软件包是最新的。接下来,我们需要安装PHP及其相关的扩展。 阅读详情

Ubuntu 安装PHP及相关扩展


1.

在http://php.net/downloads.php这里下载php最新源代码(需要注册),我的版本是php-5.3.8


2.

./configure   --prefix=/usr/local/php5  --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --with-zlib --enable-mbstring=all --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql

下面详细介绍每个参数的作用:

第一个指定php安装路径;

第二个指定apache的路径;

第三个指定mysql的路径;

第四个指定配置文件的存放路径;

第五个表示让php支持zlib压缩,这个很重要!

后一个表示让php支持mbstring,这个也很重要(由于第一次编译php的时候没有写这个参数,所以后来调用mb_strlen()的时候提示Fatal error: Call to undefined function mb_strlen(),所以后来重新编译了php,加入了这个参数就可以了)

mbstring库 全称是Multi-Byte String 即各种语言都有自己的编码,他们的字节数是不一样的,目前php内部的编码只支持ISO-8859-*, EUC-JP, UTF-8
其他的编码的语言是没办法在php程序上正确显示的。
解决的方法就是通过php的mbstring函数库来解决。

详细的可以参考这里:http://us.php.net/manual/en/mbstring.installation.php

然后一个参数表示启用mysqli支持,mysqli(i表示improvement 增强)是php新引入的,利用它可以用面向对象的方法来操作数据库,而以前的只能面向过程来操作(即调用一个一个函数来操作数据库),注意,这里要替换成你自己的mysql_config路径!


后一个参数表示让php支持pdo,PDO(PHP Data Object)是php新引入的一个数据库抽象访问层,它相当与php与数据库之间的一个中介,利用它,php可以用统一的函数来访问不同的数据库。


下图是没有安装pdo的phpinfo()输出:


我们发现,php默认安装了sqlite的pdo,而至于其他的pdo,需要我们在configure的时候手动指明。

下面是安装了mysql 的pdo后的phpinfo()输出:





3.

make -j 2       (我的是双核,这样可以编译的快一点,四核的话就 make -j 4)

make install



4.

拷贝php的配置文件,默认php.ini的位置在php安装目录下的lib子目录中。

cp php.ini-development /usr/local/php5/lib/php.ini



5.

设置httpd.conf,让apache支持php:

vi /usr/local/apache2/conf/httpd.conf
搜索AddType,找到类似AddType application/x-compress .Z
在其下增加两行:
AddType application/x-httpd-php .php .phtml            #解析php文件
AddType application/x-httpd-php-source .phps         #将.phps作为php的源文件进行语法高亮显示


6.

重启apache:

sudo apachectl restart



下面来测试一下:

1.

在/usr/local/apache2/htdocs/下新建一个test.php文件,内容如下:

<?php
  phpinfo();
?>


2.

在浏览器中:

http://localhost/test.php


看到以下界面就算成功啦!







至此,Ubuntu下的LAMP全部配置完毕了,好累啊~~不过这些配置仅仅是最基本的啦,随着以后学习的深入,完全有可能要重新配置,这里记录一下,以便日后查看,顺便占个地方,等日后补充更详细的~~





完成!


如何在Ubuntu 22.04上安装PHP 8.1并设置本地开发环境 至此,您已经在Ubuntu系统上设置了PHP 8.1编程环境,可以开始编码项目了。在开始编码之前,您可能需要设置一个集成开发环境(IDE)。虽然有许多ide可供选择,但VS Code是一个流行的选择,因为它提供了许多强大的功能,如图形界面、语法高亮和调试。 阅读详情

相关推荐

Ubuntu搭建PHP Web服务器环境

在Web浏览器中输入服务器的IP地址,后面加上/info.php,例如:http://服务器IP地址/info.php。如果一切正常,您将看到PHP的信息页面,其中列出了有关PHP的详细信息。我们将逐步指导您安装和配置所需的软件包,以便您可以运行PHP网页应用程序。默认情况下,PHP的配置文件位于/etc/php//apache2/php.ini。使用您选择的文本编辑器打开php.ini文件,并进行必要的更改。为了验证PHP是否正确安装并与Apache服务器配合使用,我们可以创建一个简单的PHP信息页面。

IsdCoding的博客 618

【Ubuntu - php环境配置】

本文记录在ubuntu环境下,分别安装php 和 php-fpm,以及如何在nginx中使用。

qq_38428433的博客 3107

告别倍福开发板:手把手教你用SSC工具为STM32生成EtherCAT从站代码

本文详细介绍了如何使用SSC工具为STM32生成EtherCAT从站代码,帮助开发者在不依赖倍福开发板的情况下实现高效的工业以太网通信。通过SSC工具的配置、XML文件设计、代码移植与硬件适配等步骤,开发者可以轻松构建自定义的EtherCAT通信系统,提升工业自动化项目的灵活性和效率。

weixin_33925615的博客 410

Ubuntu搭建PHP开发环境操作步骤(保姆级教程)

最近自购了一个阿里云服务器,系统镜像为Ubuntu 22.04 ,在编译安装LNMP(nginx+php+mysql)环境的时候,踩了不少坑,因此决定把自己安装的过程记录下来,以备后用。本篇文章基本上属于保姆级别的教程,只要你的系统也是Ubuntu,基本上无脑式复制粘贴运行,就能搭建起LNMP的环境。

码农兴哥的技术笔记 3073

OSCS开源安全周报第13期:Exchange 高危漏洞公开

OSCS 社区共收录安全漏洞31个,公开漏洞值得关注的是 Apache Commons JXPath 存在代码执行漏洞(CVE-2022-41852),Microsoft Exchange 远程代码执行漏洞(ProxyNotShell(CVE-2022-41040),Apache Tomcat 条件竞争漏洞(CVE-2021-43980),FasterXML jackson-databind 小于2.14.0-rc1拒绝服务漏洞(CVE-2022-42003)。

OSCS开源安全社区 4198

汽车电子开发必看:AUTOSAR MCAL层SPI驱动配置全解析(基于EB tresos)

本文深入解析了AUTOSAR MCAL层SPI驱动的核心配置,基于EB tresos工具详细阐述了通道、外部设备、作业与序列等关键概念。重点剖析了多设备共享总线时的资源管理与实时性调优策略,特别是SpiJobPriority参数的决定性影响,并提供了常见配置陷阱的实战排查指南,旨在帮助汽车电子工程师高效完成SPI驱动配置。

weixin_29188043的博客 293

Ubuntu 查看php已安装扩展及相关软件包

查看php已安装扩展命令 php -m

马金波 1万+

基于Python+OpenCV中文及符号检测

一、项目背景与意义在图像处理、文档识别、自动翻译等场景中,中文及符号的准确检测是一个重要且复杂的任务。传统的字符检测方法往往对英文等拉丁字母系的识别效果较好,但对中文及特殊符号的识别准确率较低。本项目旨在利用Python编程语言结合OpenCV库,开发一个能够高效、准确地检测图像中中文及符号的系统,为相关领域的研究和应用提供技术支撑。二、技术实现图像预处理:利用OpenCV的图像处理功能,对输入的图像进行灰度化、二值化、滤波去噪等预处理操作,以提高中文及符号检测的准确性[1]。

2301_79809972的博客 1120

CentOS6.8下安装php的mbstring扩展及其他扩展等等dom、simplexml

下面是安装步骤: 1.安装mbstring扩展 1 yum-yinstallphp-mbstring yum-yinstallphp-dom 2.配置php.ini支持该扩展 1 vi/etc/php.ini 文件添加 1 ...

fzxyxf1314的博客 884

告别手动处理:用 Bruker NSMatlabUtilities 工具箱批量分析 AFM 力曲线数据的实战案例

本文介绍了如何使用 Bruker NSMatlabUtilities 工具箱实现 AFM 力曲线数据的批量分析,解决传统手动处理耗时且易出错的问题。通过实战案例展示工具箱的核心功能,包括数据读取、力曲线分析和可视化,帮助科研人员提升数据处理效率和准确性。

weixin_28362173的博客 214

1.2 固态变压器:传统工频变压器的局限与SST的技术起源

本小节明确传统工频变压器在电力系统中的基础定位与核心工作特性,系统分析其在新型电力系统场景下的固有技术瓶颈,梳理固态变压器(Solid State Transformer, SST,又称电力电子变压器Power Electronic Transformer, PET)从概念提出到工程化成熟的完整演进路径,为后续SST技术优势、设计需求与规范符合性要求的讲解建立底层逻辑,同时对应GB/T 40429-2021《电力电子变压器通用技术要求》的需求制定背景。

技术工作者 660

php扩展apcu详解_详解Ubuntu安装PHP7,APCu,APCu_bc的示例代码

安装PHP7.0sudo add-apt-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get install -y php7.0sudo apt-get installphp7.0php7.0-devphp7.0-mysqlphp7.0-curlphp7.0-cliphp7.0-commonphp7.0-curlphp7.0-fpmph...

weixin_39793576的博客 346

LLC谐振变换器软启动,不只是“慢启动”,还是“智能启动”

LLC谐振变换器的软启动,不只是“慢慢来”,而是要在控制时序、限流、响应速度之间精妙权衡。而数字控制,特别是用查表法或混合信号法,为实现真正的“最佳轨迹”提供了可能。✨小Tips:如果你的系统成本敏感,选择查表法准没错;如果你的设计目标是超高速响应,那就上混合信号的高配方案!

weixin_43199439的博客 691

apt安装的PHP配置文件,Ubuntu通过apt-get方式搭建lnmp环境以及php扩展安装

一直是在用的lnmp的集成安装包搭建lnmp环境,因为工作需要需要安装ldap扩展,在网上怎么都找不到源码安装包,只能卸载掉原来的lnmp环境,用ubuntu的php5-ldap扩展,在安装中遇到一些问题,网上的文章坑爹的比较多,写篇文章记录下来。1.安装mysqlsudo apt-get install mysql-server mysql-client安装过程中要输入root用户的密码。我在安...

weixin_35687571的博客 531

数据结构课程设计--基于知识图谱的中医食疗数据管理与应用

【代码】数据结构课程设计--基于知识图谱的中医食疗数据管理与应用。

M_inherit的博客 568

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ubuntu php5 mysql拓展_ubuntu 安装PHP扩展

sudo apt-get install php7.0-bcmathsudo apt-get install php7.0-bz2sudo apt-get install php7.0-calendarsudo apt-get install php7.0-ctypesudo apt-get install php7.0-curlsudo apt-get install php7.0-domsud...

weixin_39922769的博客 205

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ubuntu 安装 php7.2

sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository ppa:ondrej/php &amp;&amp; sudo apt-get update sudo apt-get -y install php7.2 # 如果之前有其他版本PHP,在这边禁...

qq_763034592的博客 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ubuntu安装PHP7.4

文章目录一、安装 add-apt-repository 命令二、添加第三方源三、安装php四、启动PHP 一、安装 add-apt-repository 命令 apt-get install software-properties-common 二、添加第三方源 add-apt-repository ppa:ondrej/php apt-get update 三、安装php apt-get i...

wujizhishui的博客 2662

Ubuntu14-04安装redis和php5-redis扩展

redis略过,详细介绍Ubuntu14.04安装php-redis扩展。 话说优快云发篇博客真实痛苦的要死,提取摘要一点重点都没有,显示代码片段还生成些奇怪的东西,还得改!

Up_Seeker的专栏 2215

ubuntu 安装php7.4

安装依赖 sudo apt update sudo apt install gcc -y && sudo apt install make -y && sudo apt install openssl -y && sudo apt install curl -y && sudo apt install libbz2-dev -y && sudo apt install libxml2-dev -y && sudo

lt9700的博客 1160

ubuntu 下 php 安装 zip

linux(ubuntu/centos)、windows安装php-zip扩展 PHP安装zip拓展,以及libzip安装问题

james_laughing的博客 1636

ubuntu16.04安装PHP7.0的laravel必须扩展

原文:http://blog.youkuaiyun.com/Iloveyougirls/article/details/74276548原文:https://stackoverflow.com/questions/39384644/extension-gd-is-missing-from-your-system-laravel-composer-update(推荐:)英文全攻略:https://askubun...

雷雨的专栏 2076

apt-get install php5-redis,Ubuntu14-04安装redis和php5-redis扩展

PS:在系统安装完后最好执行下列命令更新下软件实际上只要软件源没什么问题的话,安装什么软件都是OK的。来开始安装Redis吧~~一:如果你的其他都OK的话,可以执行下列命令直接安装sudo apt-get install php5-redis这样安装是理想的方式,也是最简便的方式可是,人生不如意总有八九比如什么找不到安装包啊、比如缺少什么依赖啊那就要麻烦一点了二:作死法,麻烦死,当然这就是Geek...

weixin_39861955的博客 281

Ubuntu12.04安装 php7

第一步,在/etc/apt/sources.list 中加入 deb http://us.archive.ubuntu.com/ubuntu/ precise multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse deb http://us.archive.ubuntu.com/ubuntu/ p...

feng_tai_jun的专栏 494

ubuntu安装php添加php扩展

由于ubuntu默认的apt-get安装不支持pdo,需要自己添加扩展,具体如下: apt-get install php5-dev php-dev apt-get install php5-pear php-pear apt-get install libmysqlclient15-dev libmysqlclient-dev 有了上面3个扩展支持才能安装php相关扩

webdev_l的博客 1703

php安装mysql扩展 win_linux/Windows安装PHP的PDO扩展

PHP 数据对象PDO扩展为PHP访问数据库定义了一个轻量级的一致接口。PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。Linux系统篇1.CentOS系统环境:服务器系统:Centos6.5 (虚拟机演示)PHP软件包存放目录:/data/php-5.6.14/PHP安装目录:/usr/local/php/mysql安装目录:/usr/...

weixin_42525800的博客 649
上一篇: Android 模拟器快捷键
下一篇: Android模拟器的使用
htttw
博客等级 码龄18年 378粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值