Centos7.4和Ubuntu18.04安装PHP7.2
安装依赖
yum install gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
在Ubuntu 18.04下, 需要额外补充的包有
sudo apt install libxml2-dev libcurl4 libcurl4-openssl-dev libjpeg-dev libgmp-dev libreadline-dev libxslt libxslt-dev libzip-dev
安装
开发环境(在Ubuntu下貌似无效)
--enable-phpdbg\
--enable-dtrace\
生产环境:
--disable-phpdbg\
--disable-dtrace\
执行configure
./configure \
--prefix=/opt/php/php7.2.10 \
--with-config-file-path=/opt/php/php7.2.10/etc \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir \
--enable-soap \
--enable-calendar \
--enable-pdo \
--with-curl \
--with-zlib \
--with-gd \
--with-pdo-sqlite \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysql-sock \
--enable-mysqlnd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--enable-exif \
--enable-bcmath \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-jpeg-dir \
--with-png-dir \
--with-openssl \
--enable-ftp \
--with-kerberos \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--enable-fpm \
--disable-debug \
--enable-shared \
--enable-fileinfo \
--enable-filter \
--with-sqlite3 \
--with-libzip \
--with-iconv \
--with-cdb \
--enable-dom \
--with-gmp \
--enable-json \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache \
--enable-wddx \
--with-libmbfl \
--with-onig \
--with-readline \
--enable-shmop \
--enable-simplexml \
--enable-xmlreader \
--enable-xmlwriter
遇到的问题的解决
1. 关于re2c和bison的warning, 通过安装解决
yum install re2c
yum install bison
2. 关于libzip的错误, 通过centos yum安装报版本太低, 需要编译安装
wget https://libzip.org/download/libzip-1.5.1.tar.gz
tar zxvf libzip-1.5..tar.gz
cd libzip-1.5.
more INSTALL.md
mkdir build
cd build/
cmake ..
make
make test
make install
3. 编译libzip时报centos7自带的cmake版本过低, 于是编译安装cmake
wget https://cmake.org/files/v3.12/cmake-3.12.2.tar.gz
tar zxvf cmake-3.12..tar.gz
cd cmake-3.12.
./bootstrap
gmake
gmake install
whereis cmake
cd /usr/bin/
ln -s /usr/local/bin/cmake cmake
4. 出现 configure: error: off_t undefined; check your library configuration 未定义的类型 off_t错误
off_t 类型是在头文件 unistd.h中定义的, 在32位系统 编程成 long int, 64位系统则编译成 long long int, 在进行编译的时候是默认查找64位的动态链接库, 但是默认情况下 centos 的动态链接库配置文件/etc/ld.so.conf里并没有加入搜索路径, 要将 /usr/local/lib64 /usr/lib64 这些针对64位的库文件路径加进去
# 添加搜索路径到配置文件
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
# 更新配置
ldconfig -v
5. 在Ubuntu18.04下编译php5.6.38时, configure参数都和上面一样, 遇到两个问题: easy.h should be in <curl-dir>/include/curl/ 和 configure: error: Unable to locate gmp.h 都是因为在 /usr/include下无法找到对应的头文件, 并且在configure参数中通过 --with-gmp=/usr/include/x86_64-linux-gnu 指定无效, 在/usr/include/ 下 ln -s 才能通过. 在make时, 遇到了 openssl.c:1904:15: error: dereferencing pointer to incomplete type ‘X509_EXTENSION , openssl.c:3485:14: error: dereferencing pointer to incomplete type ‘EVP_PKEY 这样的问题, 原因是 PHP 5.6 is receiving only security fixes and OpenSSL 1.1 is not supported. Please use PHP 7.x if you want to use OpenSSL 1.1. 在openssl1.1下就不要再用php5.6了.
执行 make, make test, make install 完成剩下的安装
配置PHP
配置php
源码包里面有配置文件, 按刚才configure里面设置的路径, 复制到 /opt/php/php7.2.10/etc
php.ini-development 测试开发环境
php.ini-production 生产环境
配置php-fpm
# 复制一份新的php-fpm配置文件
cd /opt/php/php7.2.10/etc
cp php-fpm.conf.default php-fpm.conf
vi php-fpm.conf
# 配置错误日志:
error_log = /var/log/php-fpm.log
# 配置pid文件:
pid = /var/run/php-fpm.pid
# 保存退出 cd /opt/php/php7.2.10/etc/php-fpm.d
cp www.conf.default www.conf
添加php-fpm到系统服务
# 到源代码目录下将样例文件复制到系统服务目录下, 注意, 在Ubuntu18.04中, 这个目录是 /lib/systemd/system/
cp ./sapi/fpm/php-fpm.service /usr/lib/systemd/system/
# 配置开机启动php-fpm:
systemctl enable php-fpm
# 启动php-fpm (启动前先按下一步将用户和用户组创建好, 否则启动会失败)
systemctl start php-fpm
# 查看状态
systemctl status php-fpm
创建nginx用户
如果你在configure这一步指定的是其他的用户组和用户, 那么这里要把nginx替换掉
建立nginx 组
groupadd -r nginx
# -r 表示创建的是系统组
useradd -s /sbin/nologin -g nginx -r nginx
# -r 表示创建的是系统用户
id nginx
在Nginx中添加PHP支持
vi /opt/nginx/conf/nginx.conf # 把前面的#注释符号去掉,把script改为$document_root最终如下:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name;
include fastcgi_params;
}
安装Swoole扩展
通过pecl安装
sudo pecl install swoole
# 根据自己系统带了哪些模块选择, 我的系统里缺少http2和postgresql, 所以这两个没选
enable sockets supports? [no] : yes
enable openssl support? [no] : yes
enable http2 support? [no] :
enable mysqlnd support? [no] : yes
enable postgresql coroutine client support? [no] :
然后根据提示, 在php.ini里添加相应的扩展
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
...
;extension=pdo_sqlite
;extension=pgsql
;extension=shmop
extension=mongodb
extension=swoole
重启php-fpm后, 在phpinfo()里就能看到swoole的信息了.
Centos7.4和Ubuntu18.04安装PHP7.2的更多相关文章
- ubuntu18.04 安装 php7.2
sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository p ...
- Ubuntu18.04安装PHP7.3
因为近期需要做毕业设计,需要用到Linux系统,在此分享一下在Linux-Ubuntu系统下安装PHP环境的一小点知识,如有偏差错误的,请各位学友多多指教哈! sudo apt-get install ...
- Ubuntu18.04安装Docker, centos7安装Docker
Ubuntu18.04安装Docker 第一种方法从Ubuntu的仓库直接下载安装: 安装比较简单,这种安装的Docker不是最新版本,不过对于学习够用了,依次执行下面命令进行安装. $ sudo a ...
- Ubuntu18.04安装mysql5.7
Ubuntu18.04安装mysql5.7 1.1安装 首先执行下面三条命令: # 安装mysql服务 sudo apt-get install mysql-server # 安装客户端 sudo a ...
- Ubuntu18.04安装RabbitMQ
Ubuntu18.04安装RabbitMQ 2018年06月10日 19:32:38 dmfrm 阅读数:2492 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...
- ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题(装)
ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题 https://blog.csdn.net/NeptuneClouds/article/details/80995 ...
- ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4
1. 安装hadoop 详细请参见本人的另外一片博文<Hadoop 2.7.3 分布式集群安装> 2. 下载hive 2.3.4 解压文件到/opt/software -bin.tar.g ...
- Ubuntu18.04安装Virtualenv虚拟环境
在Ubuntu18.04安装Virtualenv虚拟环境 [实验环境]: 在这台电脑上已经安装了python3 [安装参考] 1.查看是否已安装virtualenv virtualenv --vers ...
- Ubuntu18.04安装thunderbird并设置中文
Ubuntu18.04安装thunderbird并设置中文 安装thunderbird sudo apt-get install thunderbird 安装中文包 sudo apt-get inst ...
随机推荐
- iOS:viewController 和 view 的生命周期、不错的代码设计风格
一.介绍: viwe和viewController的生命周期是最基本的知识,如果很好地理解它们的方法调用的执行顺序,就能很好地设计代码的风格.这篇博客转载自:http://www.cnblogs.co ...
- freemarker怎么把数据显示到页面中?
第一步 创建一个User.java文件 来两个变量 public class User { private String userName; private ...
- ubuntu下nodejs开发环境搭建
1.安装nodejs sudo apt install -y nodejs 2.更新npm到最新版本 sudo npm i -g npm 3.npm配置为淘宝镜像 sudo npm config se ...
- windows server 2008 r2 启用索引(转)
08r2的“windows search”服务默认是不安装的,要想启用索引执行下列步骤: 1.打开“服务器管理”——选中“角色”——右边选中“添加角色”——勾选“文件服务”. 2. ...
- asp.net 读取word 文档的方法
资料一:适合读取并显示(简单而明了) 第一种方法: Response.ClearContent(); Response.ClearHeaders(); Response.ContentTyp ...
- LeetCode295-Find Median from Data Stream && 480. 滑动窗口中位数
中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操 ...
- 使用 AutoMapper 映射 IDataReader、DataSet、DataTable 到实体类
AutoMapper是一个.NET的对象映射工具. 项目地址:https://github.com/AutoMapper/AutoMapper. 帮助文档:https://github.com/Aut ...
- SVN详细配置与使用 ——一步步教会您使用
项目管理在项目开发活动中起到非常重要的作用,而对于初学者来说学习有一定的难度,且不说如何使用,就是搭建过程恐怕也要费一般周折,介于此下面就通过图解的方式一步一步详细的教大家如何使用SVN,你只要耐心的 ...
- (转)unity使用line renderer画线
原文地址:http://www.xuanyusong.com/archives/561 任何一个无规则曲线它都是有若干个线段组成,及时是圆形它也是又若干个线段组成的,也就是说将若干个线段拼接起来就是我 ...
- Tushare数据的绘图操作
1.在代码里调试学习实在费劲,可以把数据取到df里,在交互界面里慢慢调试 2.柱状图 绘制柱状图,默认情况下乱,数据太密了 改用曲线图