PHP学习-PHP的安装

PHP的安装

php 5.6的安装

下载对应的软件

[root@test src]# wget https://github.com/skvadrik/re2c/archive/1.2.1.tar.gz # (re2c是一个用于C和C ++的免费开源词法分析器。)
[root@test src]# wget http://公司内网地址/files/php-5.6.36.tar.gz #公司内网地址就不暴露了

安装依赖

[root@test src]# yum -y install libxml2.x86_64 libxml2-devel.x86_64 openssl-devel libcurl-devel freetype.x86_64 freetype-devel.x86_64 libpng-devel libjpeg-devel libmcrypt-devel bison bison-devel libicu-devel libicu
相关依赖包解析:
libxml #是解析xml文件的库(被c,python,php等语言所需求)
OpenSSL #被openssl模块所需要
libcurl #主要是实现不同协议之间的连接跟沟通(支持php,http,https等协议)
freetype #是一款开源,可移植,高质量的字体引擎。
libpng-devel #调用png库,解析png文件
libjpeg-devel #也是一种库,解析jpeg图片文件
libmcrypt #是被php-mcrypt扩展所需要(用来加解密的)
bison #php语法分析器

创建对应目录及授权

[root@test src]# mdkir /opt/app/ #创建家目录	
[root@test src]# mkdir -p /data/logs/php #创建php日志存放目录
[root@test src]# id www	#查看www用户,存在就不创建,不存在就创建(我们以www用户来跑php)
[root@test src]# chown www.www /data/logs/php/	#授权

编译安装re2c跟php5.6

##安装re2c
[root@test src]# tar xf re2c-0.16.tar.gz
[root@test src]# cd re2c-0.16
[root@test re2c-0.16]# ./configure
[root@test re2c-0.16]# make && make install

##安装php5.6
[root@test src]# tar xf php-5.6.36.tar.gz
[root@test src]# cd php-5.6.36
[root@test php-5.6.36]# ./configure --prefix=/opt/app/php56 --with-config-file-path=/opt/app/php56/etc --with-config-file-scan-dir=/opt/app/php56/etc/ini.d --enable-fpm --with-mysql --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir=/usr/ --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --disable-ipv6 --with-regex --with-pcre-regex --enable-exif --enable-bcmath --with-curl --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --enable-zip --enable-soap --with-gettext --enable-opcache --without-pear --enable-intl
相关参数解析(捡一些不认识的说下,认识的参数就不搞了):
--with-config-file-scan-dir=PATH 	#扫描配置文件的路径
--enable-fpm #开启fpm模式(主要用来处理nginx请求)
--with-mysql	 #支持mysql函数(非持继连接函数)
--with-mysqli #支持mysqli函数(永远连接函数)
--with-pdo-mysql	#添加mysql支持	默认值是:--with-pdo-mysql=mysqlnd
--with-iconv-dir #支持iconv函数
--with-freetype-dir=/usr/ #添加字体引擎支持
--with-jpeg-dir #添加jpeg库支持
--with-png-dir 	#添加png库支持
--with-zlib	 #开启zlib支持 (zlib版本号必须大于等于 1.0.9)
--with-libxml-dir=/usr #libxml的默认安装目录(yum默认安装的软件基本是放在/usr目录下面)
--disable-ipv6 						#关闭ipv6的支持
--with-regex						#支持正则
--with-pcre-regex					#支持pcre正则表达式
--enable-exif						#启用exif支持(主要用于提供相机图片拍摄支持,记录照片拍摄的数据,属性信息)
--enable-bcmath 					#启用bcmath支持
--with-curl 						#启用curl支持
--enable-mbstring 					#启用多字节字符串的支持
--with-mcrypt 						#提供mcrypt支持
--with-gd 							#启用GD图像处理库
--enable-gd-native-ttf 				#GD: 启用TureType字符功能
--with-openssl 						#启用openssl支持 (OpenSSL版本号必须大于等于 0.9.6)
--with-mhash 						#启用mhash支持
--enable-pcntl 						#启用pcntl支持
--enable-sockets 					#启用sock支持
--enable-zip 						#提供zip读写支持
--enable-soap 						#启用soap支持
--with-gettext 						#启用GNU gettext支持
--enable-opcache 					#启用zend opcache支持
--without-pear 						#移除pear模块
--enable-intl						#提供国际化支持
 注:这位大佬php相关模块翻译的不错 https://blog.csdn.net/ztguang/article/details/51015901 感兴趣的用户可以去瞧瞧
[root@test php-5.6.36]# make
[root@test php-5.6.36]# make install

[root@test php-5.6.36]# mkdir -p /opt/app/php56/etc/ini.d
[root@test php-5.6.36]# mkdir -p /opt/app/php56/var/run/
[root@test php-5.6.36]# chown www.www /opt/app/php56/etc/ini.d/ /opt/app/php56/var/run/

[root@test php-5.6.36]# cp  /opt/app/php56/etc/php-fpm.conf.default /opt/app/php56/etc/php-fpm.conf
[root@test php-5.6.36]# cp /opt/src/php-5.6.36/php.ini-production /opt/app/php56/etc/php.ini

[root@test php-5.6.36]# vim /etc/systemd/system/php-fpm56.service	#这里可以去看我Nginx安装文档里面有system的启动脚本介绍
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/opt/app/php56/var/run/php-fpm.pid
ExecStart=/opt/app/php56/sbin/php-fpm --nodaemonize --fpm-config /opt/app/php56/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
[root@test php-5.6.36]# systemctl daemon-reload
[root@test php-5.6.36]# systemctl restart php-fpm56
[root@test php-5.6.36]# systemctl enable php-fpm56
[root@test php-5.6.36]# ps aux | grep php56 | grep -v grep			#ok php56是启动了 那php56搭建完成了
root     22697  0.1  1.0 256768 10320 ?        Ss   17:03   0:00 php-fpm: master process (/opt/app/php56/etc/php-fpm.conf)

安装Redis扩展(主要是使php支持Redis,基于php5.6版本)

[root@test bin]# cd /opt/src/
[root@test src]# wget http://pecl.php.net/get/redis-4.3.0.tgz			#根据官网信息说,此Redis模块是php5支持的最高Redis扩展模块版本
[root@test src]# tar xf redis-4.3.0.tgz
[root@test src]# cd redis-4.3.0

[root@test redis-4.3.0]# /opt/app/php56/bin/phpize 				#phpize是用来安装php扩展模块的。
[root@test redis-4.3.0]# ./configure --enable-redis --with-php-config=/opt/app/php56/bin/php-config	#  编译安装   php-config 是可以让Redis获取php相关信息
[root@test redis-4.3.0]# make && make install

[root@test redis-4.3.0]# vim /opt/app/php56/etc/ini.d/php56-redis.ini
extension=redis.so				#添加这一句即可,extendion 扩展的意思

到此的话,php-redis扩展安装到此结束,然后是安装Redis-server端了
注:对于php7安装Redis扩展模块的步骤跟php56安装步骤是差不多的(唯一区别就是下载的Redis扩展版本不同)

#报错
原因:没有在当前目录下找到config.m4这个文件
[root@test redis-4.0.14]# /opt/app/php56/bin/phpize
Cannot find config.m4.
Make sure that you run '/opt/app/php56/bin/phpize' in the top level source directory of the module
解决:从php56源码(在php源码/ext/openssl目录下)里面cp一份过来(放到你当前目录,建议cp + -a参数)
[root@test redis-4.0.14]# cp /opt/src/php-5.6.36/ext/openssl/config0.m4 ./config.m4

#在使用缓存方面,如果不是做分布式的缓存建议使用php自带的缓存系统

安装apcu扩展

简介:apc是php自己的缓存系统,然后分为系统缓存及用户缓存,系统缓存是指在php脚本执行时,增加缓存,减少php文件反复读取及编译,从而达到系统加速的目的。用户缓存是指将用户写入的数据以键值方式插入和读取。在php 5.5版本之后,用户缓存被独立出来,称为apcu,默认是不开启的,需要安装apcu扩展模块才行。

[root@test ~]# cd /opt/src/
# wget http://pecl.php.net/get/apcu-4.0.11.tgz
# tar xf apcu-4.0.11.tgz
# cd apcu-4.0.11

# /opt/app/php56/bin/phpize
# ./configure --enable-apcu --with-php-config=/opt/app/php56/bin/php-config
# make && make instal

# vim /opt/app/php56/etc/ini.d/php56-apcu.ini
extension=apcu.so						#加载apcu模块

[apcu]											#定义模块(可以自定义)
apc.enabled=1							#是否禁用APC,0 禁用;1启用
apc.shm_size=64M						#设置每个共享内存快的大小(根据实际情况调整)
apc.ttl=0										#缓存条目允许在缓冲区逗留的时间(秒),0,表示永不超时,建议值为7200~36000。设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。
apc.gc_ttl=600							#设置缓存条目在垃圾回收列表中存活的秒数,当达到此数值时,在回收列表中的缓存信息被彻底删除,0为禁用。
apc.enable_cli=1							#是为测试跟调试,主要为CLI版本的php开启apc功能。
apc.mmap_file_mask=/tmp/apc.XXXXXX		#把file-backed内存映射为文件,要设置成"/tmp/apc.xxxxxx"的样子(恰好6个x)。你还可以设为"/dev/zero"来为匿名映射的内存使用内核的"/dev/zero"接口。不定义此指令则表示强制使用匿名映射。

php7.3.9的安装请参考我的博客(php安装的那一节):https://blog.csdn.net/yts1115084429/article/details/100778227

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值