原文链接:https://blog.csdn.net/m0_55116875/article/details/121981413
前言:当搭建PHP项目时,如果在搭建环境时缺少freetype,会导致访问nginx页面时,登录界面验证码无法成功刷新出等情况,如果缺少jpeg,则会导致nginx页面中的JPEG图片无法成功刷新,对此下面这个方案解决了以上问题。
1. 下载所需的环境
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel libpng libpng-devel libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel
2.安装freetype
[root@localhost ~]# cd /usr/local/src/
[root@localhost ~]# wget http://download.savannah.gnu.org/releases/freetype/freetype-2.7.1.tar.gz
[root@localhost ~]# tar -zxvf freetype-2.7.1.tar.gz
[root@localhost ~]# cd freetype-2.7.1
[root@localhost freetype-2.7.1]# ./configure --prefix=/usr/local/freetype (指定将软件安装到/usr/local/freetype目录下)
[root@localhost freetype-2.7.1]# make && make install (会在/usr/local/freetype下生成四个文件即代表成功)
3.安装jpeg
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://www.ijg.org/files/jpegsrc.v8b.tar.gz
[root@localhost src]# tar -zxvf jpegsrc.v8b.tar.gz
[root@localhost src]# cd jpeg-8b
[root@localhost jpeg-8b]# ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static (指定将软件安装在/usr/local/jpeg)
[root@localhost jpeg-8b]# make && make install (会在/usr/local/jpeg下生成四个文件即代表成功)
4.安装php
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
[root@localhost src]# tar -xf php-5.6.30.tar.gz
[root@localhost src]# cd php-5.6.30
[root@localhost php-5.6.30]# groupadd www (创建用户)
[root@localhost php-5.6.30]# useradd -g www -s /sbin/nologin www (指定登陆shell)
[root@localhost php-5.6.30]# ./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--with-readline \
--with-gd \
--with-freetype-dir=/usr/local/freetype \
--with-jpeg-dir=/usr/local/jpeg/lib (注意是/usr/local/jpeg/lib 网上的答案都是/usr/local/jpeg/最后会提示GD库安装失败!!!)
[root@localhost php-5.6.30]# make -j 4 && make install
5.配置文件
#配置文件
cp php.ini-development /usr/local/php/etc/php.ini
#php-fpm 服务
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig on php-fpm
service php-fpm start
6.配置环境变量
# vim /etc/profile
PATH=$PATH:/usr/local/php/bin
export PATH
# source /etc/profile
7.验证安装是否成功
[root@localhost src]# php -v
PHP 5.6.30 (cli) (built: Dec 12 2021 01:49:28)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
8.验证GD库有无freetype和jpeg
可通过修改nginx的配置文件来验证
server {
listen 80;
server_name 47.183.222.111;
access_log /data/wwwlog/atp.g-cloud.io-access.log main;
error_log /data/wwwlog/atp.g-cloud.io-error.log;
location / {
root html;
index index.php index.html index.htm; (加入index.php)
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
8.1 在/usr/share/nginx/html下创建一个index.php文件并写入
<?php
phpinfo();
?>
9.浏览器验证
http://ip/index.php
即代表安装成功!!!
Linux 6 下编译安装 PHP 5.6实例详解
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP以其开发源代码,免费,快捷,跨平台,高效,面向对象,强大的动态图像创建等功能深受广大开发者的喜爱。本文描述基于CentOS 6.7下编译安装PHP 5.6.9,同样也适用于CentOS 7下安装。
一、相关依赖包安装
1、演示环境 # more /etc/redhat-release CentOS release 6.7 (Final) 2、扩展支持(mcrypt、mhash扩展和libevent) 如果想让编译的php支持mcrypt、mhash扩展和libevent,需要安装以下包 libmcrypt libmcrypt-devel mhash mhash-devel 说明: mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。 mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。 mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等。 centos源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包 可以使用第三方源,这样还可以使用yum来安装 安装第三方yum源 # wget http://www.atomicorp.com/installers/atomic # sh ./atomic 使用yum命令安装 # yum install php-mcrypt libmcrypt libmcrypt-devel mhash mhash-devel 3、libevent相关包 可以根据需要安装libevent,系统一般会自带libevent,但版本有些低。因此可以升级安装如下两个rpm包。 # yum install libevent libevent-devel 说明: libevent是一个异步事件通知库文件,其API提供了在某文件描述上发生某事件时或其超时时执行回调函数的机制 它主要用来替换事件驱动的网络服务器上的event loop机制。 目前来说, libevent支持/dev/poll、kqueue、select、poll、epoll及Solaris的event ports。 4、支持xml的相关包 支持xml的rpm包 bzip2 是一个基于Burrows-Wheeler 变换的无损压缩软件能够高效的完成文件数据的压缩 libcurl主要功能就是用不同的协议连接和沟通不同的服务器,也就是相当封装了的sockPHP libcurl允许你用不同的协议连接和沟通不同的服务器 # yum install libxml2 libxml2-devel bzip2-devel libcurl-devel 5、图形相关的rpm包 通常对应的错误提示:JIS-mapped Japanese font support in GD # yum install libjpeg-devel libpng-devel freetype-devel标签:php,--,30,devel,usr,linux,PHP5.6,root,localhost From: https://www.cnblogs.com/wjsqqj/p/17029723.html