编译安装nginx+php和php扩展脚本
简介本文主要记录在Centos7下编译安装nginx和php,还有php的扩展和Composer的安装。但是需要注意的是需要自己对脚本进行修改,还需要下载对应的包。
一、脚本使用说明
本脚本使用的软件版本如下:
- nginx-1.14.2.tar.gz
- php-7.2.16.tar.gz
- libevent-2.1.8-stable.tar.gz
如果你需要使用该脚本安装nginx和php,那么请下载对应的版本,或者下载了你自己的版本,那么就需要对脚本中的文件名进行修改。请将该脚本与软件包放在同一目录下,然后再执行脚本。
二、脚本内容,如下:
#!/bin/sh
#一、全局安装
yum -y install lrzsz git autoconf wget
#二、安装nginx部分脚本
cd ~
yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel
tar -zxf nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure --prefix=/home/nginx-1.14.2 && make && make install
cat > /etc/systemd/system/nginx.service<<EOF
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/home/nginx-1.14.2/sbin/nginx
ExecReload=/home/nginx-1.14.2/sbin/nginx -s reload
ExecStop=/home/nginx-1.14.2/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl enable nginx.service
systemctl start nginx.service
ps aux | grep nginx
#三、安装php部分脚本
cd ~
yum -y install 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
tar -zxf php-7.2.16.tar.gz
cd php-7.2.16
./configure --prefix=/home/php-7.2.16 --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --enable-zip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --without-pear --enable-bcmath --enable-opcache
make && make install
cp php.ini-development /etc/php.ini
groupadd www
useradd -M -g www -s /sbin/nologin www
cd /home/php-7.2.16/etc/
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf
sed -i "s/user = nobody/user = www/g;s/group = nobody/group = www/g;s/pm = dynamic/pm = static/g;s/pm.max_children = 5/pm.max_children = 500/g" www.conf
cat > /etc/systemd/system/php-fpm.service<<EOF
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/home/php-7.2.16/sbin/php-fpm
PrivateTmp=True
[Install]
WantedBy=multi-user.target
EOF
echo 'export PHP_HOME="/home/php-7.2.16"' >> /etc/profile
echo 'export PATH=$PHP_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
systemctl enable php-fpm.service
systemctl start php-fpm.service
ps aux | grep php-fpm
#四、php扩展安装依赖库
cd ~
tar -zxf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./configure && make && make install
#五、composer安装
#composer下载地址:https://getcomposer.org/download/
wget https://getcomposer.org/download/1.8.6/composer.phar -O /usr/local/bin/composer
chmod a+x /usr/local/bin/composer
#composer config -g repo.packagist composer https://packagist.laravel-china.org
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
#六、php扩展安装(mongodb、nsq、redis、swoole)
cd /home/php-7.2.16/bin
wget -O go-pear.php http://pear.php.net/go-pear.phar
chmod +x go-pear.php
./php go-pear.php
./pecl install mongodb
echo "extension=mongodb.so" >> /etc/php.ini
./pecl install nsq
echo "extension=nsq.so" >> /etc/php.ini
./pecl install redis
echo "extension=redis.so" >> /etc/php.ini
./pecl install swoole
echo "extension=swoole.so" >> /etc/php.ini
systemctl restart php-fpm