ubuntu16 源码编译安装php7.0 ubuntu16 源码编译安装php7.0 ubuntu16 源码编译安装php7.0
依赖安装,安装依赖 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 apt-get install libxml2 libxml2-dev apt-get install openssl apt-get install libssl-dev apt-get install curl apt-get install libcurl4-gnutls-dev apt-get install libxslt-dev apt-get install libpng-dev apt-get install libfreetype6-dev // RetHat CentOS or Fedora 使用下面安装命令 yum install curl curl-devel ****************一般使用的依赖都是以下这些*************************** 安装相关依赖库 sudo apt-get update sudo apt-get install libxml2-dev #安装gcc sudo apt-get install build -essential sudo apt-get install openssl sudo apt-get install libssl-dev sudo apt-get install make sudo apt-get install curl sudo apt-get install libcurl4-gnutls-dev sudo apt-get install libjpeg-dev sudo apt-get install libpng-dev sudo apt-get install libmcrypt-dev sudo apt-get install libreadline6 libreadline6-dev apt-get -y install libfreetype6-dev sudo apt-get install libxslt1-dev
下载 PHP 源码 1 2 3 4 5 6 7 wget http: mv mirror php-7.0 .28 .tar .gz 解压到你指定的目录,我这里选择 /data/server/ 目录 tar -zxvf php-7.0 .28 .tar .gz -C /data/server/ mv php-7.0 .28 php7 cd php7/
查看安装帮助,执行配置脚本进行配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 # ./configure --help # ./configure --prefix=/data/server/php7 \ --with-curl \ --with-freetype-dir \ --with-gd \ --with-gettext \ --with-iconv-dir \ --with-kerberos \ --with-libdir=lib64 \ --with-libxml-dir \ --with-mysqli \ --with-openssl \ --with-pcre-regex \ --with-pdo-mysql \ --with-pdo-sqlite \ --with-pear \ --with-png-dir \ --with-xmlrpc \ --with-xsl \ --with-zlib \ --enable-fpm \ --enable-bcmath \ --enable-libxml \ --enable-inline-optimization \ --enable-gd-native-ttf \ --enable-mbregex \ --enable-mbstring \ --enable-opcache \ --enable-pcntl \ --enable-shmop \ --enable-soap \ --enable-sockets \ --enable-sysvsem \ --enable-xml \ --enable-zip \ --enable-mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-mcrypt
我的错误
Configure Command
‘./configure’ ‘–prefix=/data/server/php7’ ‘–with-gd’ ‘–with-freetype-dir’ ‘–enable-gd-native-ttf’ ‘–enable-mysqlnd’ ‘–with-pdo-mysql=mysqlnd’ ‘–with-openssl’ ‘–with-mcrypt’ ‘–enable-mbstring’ ‘–enable-zip’ ‘–enable-fpm’
Server API
FPM/FastCGI
Virtual Directory Support
disabled
Configuration File (php.ini) Path
/data/server/php7/lib
Loaded Configuration File
(none) 【正常情况这里不应该没有值的,还是之前的编译有问题,请仔细查看 正常应该是这个值 /data/server/php7/lib/php.ini】
Scan this dir for additional .ini files
(none)
Additional .ini files parsed
(none)
之前安装过依赖这里就可以不用装,然后会提示部分依赖没有安装,安装依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 apt-get install libxml2 libxml2-dev apt-get install openssl apt-get install libssl-dev apt-get install curl apt-get install libcurl4-gnutls-dev apt-get install libxslt-dev apt-get install libpng-dev apt-get install libfreetype6-dev // RetHat CentOS or Fedora 使用下面安装命令 yum install curl curl-devel ****************一般使用的依赖都是以下这些*************************** 安装相关依赖库 sudo apt-get update sudo apt-get install libxml2-dev #安装gcc sudo apt-get install build -essential sudo apt-get install openssl sudo apt-get install libssl-dev sudo apt-get install make sudo apt-get install curl sudo apt-get install libcurl4-gnutls-dev sudo apt-get install libjpeg-dev sudo apt-get install libpng-dev sudo apt-get install libmcrypt-dev sudo apt-get install libreadline6 libreadline6-dev apt-get -y install libfreetype6-dev sudo apt-get install libxslt1-dev
预处理ok后,make 编译 1 2 3 make && make install最后用 make test 测试一下【这个过程时间比较长】
安装完毕 1 2 3 4 5 #查看 php 版本 ,这个时候没有环境变量,全局还不能使用 php -v,下问有介绍 /data /server/php7/bin/php -v #查看配置文件,没有加载,需要自己复制一份 php.ini /data /server/php7/bin/php
配置PHP 1 2 3 4 5 6 cp /data/ server/php7/ php.ini-development /data/ server/php7/ lib/php.ini cp /data/ server/php7/ etc/php-fpm.conf.default / data/server/ php7/etc/ php-fpm.conf cp /data/ server/php7/ etc/php-fpm.d/ www.conf.default /data/ server/php7/ etc/php-fpm.d/ www.conf 官方这里拷贝文件有点不一样,注意一下
添加 PHP 启动用户 1 2 3 4 5 6 7 8 9 10 11 12 13 14 PHP 安装默认使用 www 用户,这里根据自己情况添加用户 groupadd managers useradd -r -g managers -s /bin/false managers 设置 PHP 启动用户 cd /data/server/php7/etc/php-fpm.d vi www.conf 修改23、24行,内容如下: user = 启动fpm的用户名 group = 启动fpm的用户所在组 user = managers group = managers修改完启动 PHP-fpm
php 启动命令 1 /data/ server/php7/ sbin/php-fpm
配置虚拟主机测试一下 在 /data/www/ 目录下创建 index.php 内容如下:
1 2 3 <?php echo phpinfo();?>
在 nginx 中配置虚拟主机
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 server { listen 80 ; server_name 127.0.0.1 192.168.1.230 ; client_max_body_size 10m ; charset utf-8 ; root /data/www/; index index.php; location ~ .+\.php($|/) { fastcgi_pass 127.0.0.1:9000 ; fastcgi_index index.php; include fastcgi.conf; } }
扩展: 使用 php -m 查看扩展,提示如下:
1 2 3 4 5 6 7 8 root@ubuntu :/data/server/php7/bin The program 'php' can be found in the following packages: * php7.0 -cli * hhvm Try: apt install <selected package>root@ubuntu :/data/server/php7/bin 安装: apt install php7.0 -cli
PHP命令
1 2 3 4 5 6 7 8 9 10 11 12 13 php --ini #查看PHP的配置文件 php -ini #查看php.ini里面的配置 php -a #进入交互模式,可以写PHP代码,demo: 输入 echo "hello world" ; 然后回车显示hello world 查询 PHP 服务 ps aux | grep php-fpm pkill -9 php php启动命令 /data/ server/php7/ sbin/php-fpm#查看PHP的编译参数 /data/ server/php7/ bin/php -i | grep configure此命令使用场景: 编译web服务器由nginx换为Apache的时候需要在Apache中添加PHP模块, PHP需要添加 --with-apxs2 后重新编译
配置 php 全局变量 1 2 3 4 5 6 7 8 9 10 11 PHP编译安装后的目录: /data/server/php7/bin vim /etc/profile 修改 /etc/profile 配置环境变量 PATH =$PATH :/data/server/php7/binexport PATH然后执行source /etc/profile 或者 ./profile 使其生效; 执行完后可以通过 echo $PATH 命令查看环境变量
PHP官网下载地址
PHP官方安装文档