01-手动编译部署PHP

手动编译部署PHP

检查MySQL和NGINX

netstat -lntup|egrep "nginx|mysql"
ps aux|egrep "nginx|mysql"|egrep -v grep

检查安装php所需的lib库

rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
yum install -y freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

yum安装无法安装的libiconv库

cd /home/nameke/tools/ && wget -c -q http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz && cd /home/nameke/tools/libiconv-1.14 && ./configure --prefix=/usr/local/libiconv
sed -i 's#_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");#/*_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");*/#g' $TOOLS_PATH/libiconv-1.14/srclib/stdio.in.h
sed -i '2a #if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)\n_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");\n#endif\n' $TOOLS_PATH/libiconv-1.14/srclib/stdio.in.h
make && make install && echo -e "\033[32m make and make install libiconv succ! \033[0m"
cd /home/nameke/tools/

安装libmcrypt库

cd /etc/yum.repos.d/ && wget -c -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install libmcrypt-devel && echo "\033[32m Step5:Install libmcrypt succ! \033[0m"

安装mhash与mcrypt加密扩展库

yum install -y mhash mcrypt && echo "\033[32m Step6:Install mhash and mcrypt succ! \033[0m"

下载解压配置PHP

cd /home/nameke/tools/ && wget -c -q https://www.php.net/distributions/php-7.2.30.tar.gz
tar zxf php-7.2.30.tar.gz && cd /home/nameke/tools/php-7.2.30 && ./configure \
--prefix=/data/php7.2.30 \
--with-config-file-path=/etc/php7.2.30 \
--with-mysql-sock=/data/mysql3306/var/mysql.sock \
--with-pdo-mysql=shared,mysqlnd \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--with-gd \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--enable-fpm \
--with-fpm-user=nameke \
--with-fpm-group=nameke \
--enable-ftp

编译安装PHP

ln -s /data/mysql3306/lib/libmysqlclient.so.20 /usr/lib64
cd /home/nameke/tools/php-7.2.30 && touch ext/phar/phar.phar
make && make install

配置PHP引擎配置文件php.ini

ln -s /data/php7.2.30 /data/php 
#&& ls -l /data/php/php.ini*
cd /home/nameke/tools/php-7.2.30 && cp php.ini-production /data/php/lib/php.ini
ls -l /data/php/lib/php.ini && echo -e "\033[32m Step8:Config php-7.2.30 link file succ! \033[0m"

配置PHP服务配置文件php-fpm.conf

cd /data/php/etc && \cp -f php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf && echo -e "\033[32m Step9:Config php_fpm succ! \033[0m"

启动PHP-FPM

/data/php/sbin/php-fpm -t && /data/php/sbin/php-fpm
lsof -i:9000
netstat -antlp|grep 9000|egrep -v grep
ps aux|grep php-fpm|egrep -v grep

配置nginx支持php程序请求访问

\cp -f $CONF_PATH/test_php.php /webroot/webdemo/
\cp -f $CONF_PATH/test_mysql.php /webroot/webdemo/
cat >>/webroot/webdemo/test_mysql.php<<EOF
<?php
    $servername = "localhost";
    $username = "root";
    $password = "13.14xiaoCY";
    //$link_id=mysql_connect('主机名','用户','密码');
    //mysql -u用户 -p密码 -h 主机
    $conn = mysqli_connect($servername, $username, $password);
    if ($conn) {
        echo "mysql successful by root !\n";
    }
    else{
        die("Connection failed: " . mysqli_connect_error());
    }
?>
EOF

chown -R nameke:nameke /webroot/webdemo/
ls -l /webroot/webdemo/

设置开机自启动PHP-FPM

echo -e "#start nginx+php-fpm by oldboy at 20200913" >>/etc/rc.local
echo -e "/data/php/sbin/php-fpm -t && /data/php/sbin/php-fpm">>/etc/rc.local

 

posted @ 2021-04-29 22:20  西瓜的春天  阅读(103)  评论(0)    收藏  举报