PHP开发环境——Composer 的安装与使用
Composer 是 PHP 的包管理(依赖管理)工具,类似 node.js 的 npm 。如果在一个PHP项目中一些库依赖于其他库,就声明所依赖的库,Composer 就会找出相应版本的包并安装,默认情况下下载到项目的某个目录中(例如 vendor)进行安装。使用 Composer 可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。
首先要确保已经安装好了 PHP 环境,在命令行输入命令:php -v 要能正确输出版本号信息。
然后在Linux系统中下载 composer.phar ,移动到全局目录中并改名为 composer ,就可以全局调用 composer 了。
首先下载安装脚本 composer-setup.php 到当前目录,然后执行安装,简单地检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告。
在 Linux 环境中,用以下命令下载最新版本的 composer.phar 文件到当前目录。然后移动到 /usr/local/bin 目录并更改名称为 composer ,这样就可以全局运行 composer 了。
用 composer –version 命令查看 composer 版本,或直接用 composer 命令查看。
由于网络原因,默认的官方 php 源码包在国内速度很慢,需要更换为国内镜像,参数 -g 表示全局配置。按自己的网络情况选择一个速度比较快的。
查看 composer 全局配置命令:
查看全局配置,可以看到仓库 URL 地址 repositories.packagist.org.url 已经变成了阿里云的镜像。
如果需要解除镜像并恢复到 packagist 官方仓库,就用 composer 默认值重置源地址。命令如下:
laravel/laravel:composer 安装包的名称,表示创建一个 laravel 项目
my_site_dir:项目目录
–prefer-dist:使用压缩版
7.2.*:表示要安装的 laravel 版本
1、警告信息:
Do not run Composer as root/super user! See https://getcomposer.org/root for details
解决方法:
某些 Composer 命令(包括exec,install和update)允许第三方代码在您的系统上执行。 这来自其“插件”和“脚本”功能。 插件和脚本对运行Composer的用户帐户具有完全访问权限。 因此,强烈建议避免以超级用户/ root身份运行Composer。
您可以在包安装或更新期间使用以下语法禁用插件和脚本,以便只执行Composer的代码,而不执行第三方代码
官方文档:https://getcomposer.org/doc/faqs/how-to-install-untrusted-packages-safely.md
2、警告信息:
As there is no \’unzip\’ command installed zip files are being unpacked using the PHP zip extension.
This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost.
Installing \’unzip\’ may remediate them.
解决方法:
表示系统需要安装 unzip ,在 CentOS 中安装命令:yum install -y unzip zip
1、命令提示符中输入 ping github.com,查看 IP 地址,简单测试一下访问 github 的情况。
2、获取 Github 相关网站的 ip
访问 https://www.ipaddress.com,在搜索框内分别输入 github.global.ssl.fastly.net 和 github.com,查询 IP 地址,得到如下 IP 和域名的映射关系:(不同的网络查询到的结果可能不一致,以自己查询到的结果为准。)
3、修改本地hosts文件
A. Windows 系统的 hosts 文件是: C:\\Windows\\System32\\drivers\\etc\\hosts(此文件没有扩展名)
以管理员身份运行记事本文本编辑器,编辑 hosts 文件,在末尾增加上一步查询到的 IP 地址与 Github 相关网站映射。
B. Linux 系统的 hosts 文件是: /etc/hosts,编辑此文件:vi /etc/hosts ,在末尾增加上一步查询到的 IP 地址与 Github 相关网站映射。
4、刷新DNS缓存,立即生效
A. 在 windows 中打开 cmd,运行命令:ipconfig /flushdns
B. 在 Linux 中运行命令:/etc/init.d/network restart
5、命令提示符中输入 ping github.com,简单测试修改后的效果。
1、composer 包依赖关系
项目目录下的 composer.json 文件,其中必须的是 require 项,描述了项目的依赖关系。此时只要运行 composer install 就可以安装 requiere 项中所有的依赖包。冒号后的符号及数字是版本约束。
2、require 命令
如果没有在 composer.json 文件手动添加某个依赖包信息,但是要快速安装此依赖包时,可以使用 require 命令。
3、update 更新包命令
4、remove 命令
移除一个包及其依赖,如果依赖被其他包使用,则无法移除。
5、search 命令:
搜索包,输出包及其描述信息,如果只想输出包名可以使用 –only-name 参数
6、show 命令
列出当前项目使用到包的信息:
7、清除缓存命令
———-END———-
PHP8.0环境详细安装教程
说明:最近在搭建个人网站,环境有用到PHP,特此记录。本文安装案例是以PHP8.0.0版本为示例,「开始安装前建议先将第三步骤抛出异常的依赖安装,这样安装的时候就无需逐个解决问题。」
建议:提前创建好压缩包地址,方便后续对文件管理,下载地址:https://www.php.net/downloads.php
在线下载(如果网速很慢,则离线下载上传到服务器):wget https://www.php.net/distributions/php-8.0.0.tar.gz
离线下载后可通过rz命令上传到服务器:rz -be 文件名
执行代码:tar -xvf php-8.0.0.tar.gz
说明:在执行编译之前,需要配置此次编译和安装后的文件的存放位置以及安装的一些组件,「在安装前务必要清楚,如果不了解,建议直接使用本文的代码,防止出现异常问题。」
了解概念:
1、源码安装需要经历步骤:配置(configure)、编译(make)、安装( make install )。
2、Configure则是一个可执行文件,可以配置很多选项(可以理解为我们在Windows安装时的图像化界面的功能),可以通过./configure –help来查看选项具体含义。
其中–prefix选项作用是配置源码安装的路径,–with-config-file-path选项作用是设置php配置文件(php.ini)的存放位置,一般来说安装的时候只需要指定这两个路径即可,其他的则是指定php支持哪一些组件了。
3、延伸说明下指定存放路径的好处,其实可以类比在Windows等图形化系统的安装软件步骤,安装时指定软件的位置,方便后续对软件进行统一管理(删除,查找等)。
4、注意:下面的代码必须处于同一行上,建议先复制到文本上查看是否在同一行,然后再复制到服务器中执行(否则会出现很多莫名其妙的问题,相信你也不想花上几天时间去处理)。
至于其他参数选项的含义,可以打官方或者使用./configure –help来查看选项具体含义,建议添加自己需要的组件即可,如果不清楚,进入到解压的文件后直接执行下面的代码。
5、配置成功后会出现下面提示:
说明,新服务器在执行configure脚本设置配置之前,需要存在的相关依赖脚本整合,下面会对每一个异常问题做具体说明:
1、异常信息:
解决方案:dnf install libxml2-devel
2、异常信息:
解决方案:yum install dnf
3、异常信息:
解决方案:dnf install sqlite-devel
4、异常信息:
解决方案:dnf -y install bzip2-devel
5、异常信息:
解决方案:dnf -y install libcurl-devel
6、异常信息:
解决方案:dnf -y install libpng-devel
7、异常信息:
解决方案:dnf -y install libjpeg-devel
8、异常信息:
解决方案:dnf -y install freetype-devel
9、异常信息:
解决方案:dnf -y install libicu-devel
10、异常信息:
解决方案:yum install oniguruma-devel -y
11、异常信息:
解决方案:dnf -y install libxslt-devel
12、异常信息:
解决方案:dnf -y install libzip-devel
13、异常信息:
解决方案:
1、先删除原来的安装:yum remove libzip-devel libzip
2、在线下载对应的版本:wget https://libzip.org/download/libzip-1.3.2.tar.gz –no-check-certificate
4、进入解压后的文件夹,执行配置脚本:./confugure
5、编译并安装:make & make install
6、安装完成后,查询/usr/local/lib目录下是否有pkgconfig目录,有的话执行命令export PKG_CONFIG_PATH=\”/usr/local/lib/pkgconfig/\”指定PKG_CONFIG_PATH,然后重新执行切换php解压之后的文件夹,执行./configure脚本即可
配置完成后,执行make指令对源代码进行编译,执行make install指令对源代码进行安装,也可以同时执行这两个指令,具体如下(注意:编译和安装都是在解压后的php文件夹下执行-即存在configure脚本的目录):
1、编译:make
2、安装:make install
3、出现异常:cc: internal compiler error: Killed (program cc1)
原因:大概率是因为内存不够使用,可以先使用交换分区来解决,编译安装后再删除掉即可。
解决:
取消交换分区:
切换到configure指定的安装路径的bin目录,执行版本查看:
执行结果:
1、生成php.ini配置文件(在php源码压缩包目录下):
2、生成www配置文件:
3、生成php-fpm配置文件:
4、生成php-fpm可执行文件:
说明:本文推荐使用php-fpm进行管理php程序,php-fpm(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器,旨在将FastCGI进程管理整合进PHP包中(来源:百度百科)。
优点:相对Spawn-FCGI,php-fpm在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而php-fpm则没有这种烦恼。
1、启动php-fpm:
2、查看php-fpm进程是否启动成功
3、查看pfp-fpm占用的端口
4、执行php –version出现php command not found异常,解决步骤
5、大功告成
「如果觉得文章有帮助,请给博主点赞、收藏、关注。」 后续博主会带来更多优质、有质量的文章。
想要学习更多知识,了解更多开源项目,请关注博主,进入技术圈子(「圈子所有资源全免费,但要求加入的小伙伴要有长久兴趣,如果只是一时冲动就不推荐加入,毕竟名额有限」)。
加入技术圈子,除了遇到搭建问题免费指导,还能第一时间收到行业最新咨询和认识各专业大佬!
关于 PHP 启动 MongoDb 找不到指定模块问题
最近有一个小 demo,需要通过 PHP 将用户行为记录储存到 MongoDB,再用 Spark 做协同过滤。由于以前处理跨语言交互是通过消息中间件,这次本地使用 MongoDB 却弄出了几个问题。首先是本地安装了扩展,启动时报找不到模块错误,再个时 PHP 进行的实例化使用时报 MongoClient 和一些函数不存在。最后也推荐一些方便快捷的 MongoDB 图形化工具。
1. Windows10
2. PHP7.4
3. MongoDB 4.4.14 Server
5. php_mongodb-1.12.1-7.4-nts-vc15-x64
1. MongoDB Server 下载
2. php_mongodb-1.12.1-7.4-nts-vc15-x64 下载
3. navicat for mongodb 下载
1. 找不到指定模块 php_mongodb
PHP 中添加扩展 php_mongodb 不正确,除了需要 php_mongodb.dll 还要 php_mongodb.pdb 复制到 php 安装目录下的 ext 中
最后在 php.ini 添加 extension=php_mongodb.dll,重启完后查看 php -m 或者浏览器中查看 phpinfo ()
2. MongoClient 类不存在
原因是这个是旧版本 php_mongo 扩展提供的类,新版本是通过后面演示代码的方式,如果不知道扩展提供的新方法或函数可以通过一下方式查看。
(1). get_declared_classes () 查看扩展里预设的函数
1. MongoDB Server
(1). 启动服务
2. Navicat for MongoDB
(1). 连接服务
1. 查询
2. 插入
3. 批量插入
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。