PHP开发入门:PHP7安装部署

注意:本文更新于2019-07月,改为最新PHP7版本进行安装。

PHP是常用的Web开发语言,一些常见的Web项目,如CMS/BBS系统都有比较成熟的PHP版本开源方案。本文主要介绍PHP7在Linux(Ubuntu)下的安装。

安装依赖包

因为PHP7依赖的第三包比较多,我们就不采用编译安装这些依赖包,直接采用包管理器安装。

1
2
3
4
5
6
7
8
9
10
11
12
sudo apt-get update
sudo apt-get install libxml2-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev
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
sudo apt-get install cmake
sudo apt-get install libfreetype6-dev
sudo apt-get install pkg-config

安装libzip

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 下载
wget https://libzip.org/download/libzip-1.5.2.tar.gz
# 解压
tar zxvf libzip-1.5.2.tar.gz
cd libzip-1.5.2
# 创建编译目录
mkdir build
cd build
# 构建
cmake ..
# 编译
make -j4
# 安装
sudo make install

安装PHP

1
2
3
4
5
6
7
8
9
10
11
# 下载
wget https://www.php.net/distributions/php-7.3.6.tar.gz
# 解压
tar zxvf php-7.3.6.tar.gz
cd php-7.3.6
# 配置编译参数
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-fpm --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --with-mysql --with-mysqli --with-mysql-sock --enable-pdo --with-pdo-mysql --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 --enable-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear --with-libdir=/lib/x86_64-linux-gnu --with-gd --with-jpeg-dir=/usr/lib --with-freetype-dir=/usr/include/freetype2/freetype/ --enable-xml --disable-fileinfo
# 编译,过程漫长,可以先喝杯咖啡
make
# 安装
sudo make install

修改PHP配置文件

在安装PHP时,我们通过./configure --with-config-file-path=/usr/local/php7/etc指定了配置文件php.ini的目录,但是安装完成之后,在这个目录下并没有php.ini文件,我们需要将php安装包中的php.ini文件复制到这个目录下:

1
sudo cp php.ini-production /usr/local/php7/etc/php.ini

同时,php-fpm.conf文件也不存在,但是在etc目录下存在模板文件,我们需要复制一份,并进行修改:

1
sudo cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf

下面是我修改后的php-fpm.conf的内容,可以参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[global]
pid = run/php-fpm.pid

[www]
user = www-data
group = www-data

listen = 127.0.0.1:9000
pm.start_servers = 2
slowlog = /usr/local/php7/var/log/$pool.log.slow
request_slowlog_timeout = 2
request_terminate_timeout = 60
pm = static
pm.max_children = 200
pm.start_servers = 30
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

PHP-FPM管理

PHP-FPM是FastCGI的进程管理器, 简单来说Web服务中的PHP处理器,执行PHP程序,将处理结果按照CGI协议返回给Web服务器。

  • 启动PHP-FPM:

    1
    /usr/local/php7/sbin/php-fpm
  • 关闭PHP-FPM:

    1
    kill -INT `cat /usr/local/php7/var/run/php-fpm.pid`
  • 重启PHP-FPM:

    1
    kill -USR2 `cat /usr/local/php7/var/run/php-fpm.pid`
有用就打赏一下作者吧!