欢迎光临
一个有态度、有温度的分享型博客

CentOS 7使用源码安装php

环境:

  • digitalocean CentOS 7.4 x64
  • php:php-7.0.4

下载php文件

cd ~/lnmp_pkg

wget http://php.net/distributions/php-7.0.4.tar.gz && tar -xzvf php-7.0.4.tar.gz

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz && tar -xzvf libiconv-1.14.tar.gz

wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz && tar -xzvf libmcrypt-2.5.8.tar.gz

编译libiconv

cd libiconv-1.14
./configure --prefix=/usr/local/libiconv-1.14  #安装目录
cd srclib
sed -i -e '/gets is a security/d' ./stdio.in.h
cd ..
sudo make -j2 
sudo make install

编译libmcrypt

cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt-2.5.8
sudo make -j2 
sudo make install

安装依赖

sudo yum -y install openssl-devel curl-devel

由于我之前安装了nginx的时候已经装了一些依赖了,所有我现在只安装了上面的依赖就没有报错,如果你之前没安装依赖,看看下面的哪些依赖没装,你可以选择性的安装自己需要的:

sudo yum -y install zlib-devel pcre-devel openssl-devel gcc gcc-c++  ncurses-devel perl perl-devel perl-ExtUtils-Embed libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel curl-devel

编译PHP

cd php-7.0.4

./configure --prefix=/usr/local/php-7.0.4 --with-config-file-path=/usr/local/php-7.0.4/etc --with-mysqli=mysqlnd --with-iconv-dir=/usr/local/libiconv-1.14 --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-bcmath --enable-inline-optimization --with-curl --with-fpm-user=michael --with-fpm-group=www --enable-mbstring --with-mcrypt=/usr/local/libmcrypt-2.5.8 --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-sockets --enable-zip --enable-ftp --without-pear --enable-pdo --with-pdo-mysql=mysqlnd --disable-fileinfo --with-xmlrpc --enable-opcache --enable-fpm

注意:以上各参数以空格隔开,–prefix指定你想要设置的安装目录,–with-iconv-dir指定你前面libiconv的安装目录,–with-fpm-user指定你的用户,–with-fpm-group指定你的用户组,–with-mcrypt需要指定你libmcrypt的安装目录,不然编译PHP时,就算安装了也会提示找不到libmcrypt,请重新安装的错误!

编译安装

make -j2
make test
sudo make install

配置

1)首先为php创建配置文件:

将加压后的安装包内的 php.ini-production文件复制一份到安装目录

cd /home/michael/lnmp_pkg/php-7.0.4

cp php.ini-development  /usr/local/php-7.0.4/php.ini # 如果是开发就复制php.ini-development

将安装目录/usr/local/php-7.0.4/etc下的php-fpm.conf.default文件复制一份并重名为php-fpm.conf

cd /usr/local/php-7.0.4/etc
cp php-fpm.conf.default  php-fpm.conf

做一个软链接

ln -s /usr/local/php-7.0.4/bin/php /usr/bin/

进入安装目录/usr/local/php-7.0.4/etc/php-fpm.d目录下,将www.conf.default复制一份并重命名为www.conf

cd /usr/local/php-7.0.4/etc/php-fpm.d
cp www.conf.default  www.conf

2)配置/usr/local/php-7.0.4/etc/php-fpm.conf文件

vi /usr/local/php-7.0.4/etc/php-fpm.conf

基本上不用动,具体参考:php-fpm的配置和优化

3)配置www.conf文件

vi /usr/local/php-7.0.4/etc/php-fpm.d/www.conf

需要修改的内容包括user ,group,listen.owner,listen.group ,listen 等信息是否和你自己的用户名、用户组等对应,基本不用动。

设置启动项

1)添加到系统服务

sudo vi /usr/lib/systemd/system/php-fpm.service

编辑内容如下:

[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php-7.0.4/sbin/php-fpm
PrivateTmp=true
[Install]
WantedBy=multi-user.target

2)启动php-fpm

sudo systemctl start php-fpm.service

3) 设置开机自启

sudo systemctl enable php-fpm.service

4) 查看运行状态

sudo systemctl status php-fpm.service

5) 检查是否开机启动

sudo systemctl is-enabled php-fpm.service

至此php安装完成,其他的你可能需要修改nginx配置让它支持php。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址